序文 MySQL と Oracle のキーワードはまったく同じではありません。Oracle データベースでは、データ テーブルに主キーを表す多数のコード フィールドを定義しますが、MySQL ではコードはキーワードであり、以前の処理方法は多少「互換性がありません」。 MySQL のキーワードと予約語を見てみましょう。 キーワードと予約語とは何か
キーワードは SQL で意味を持つ単語です。 SELECT、DELETE、BIGINT などの特定のキーワードは予約されており、テーブル名や列名などの識別子として使用するには特別な処理が必要です。 これは組み込み関数の名前にも適用されます。 キーワードと予約語の使い方
予約されていないキーワードは識別子として許可されており、引用符で囲む必要はありません。 予約語を識別子として使用する場合は、引用符を使用する必要があります。 たとえば、BEGIN と END はキーワードですが予約語ではないため、識別子として使用する場合は引用符は必要ありません。 INTERVAL は予約キーワードであり、識別子として使用するには引用符で囲む必要があります。
マイSQL>
mysql>hoeghを使用します。
データベースが変更されました
マイSQL>
mysql> CREATE TABLE 間隔 (開始 INT、終了 INT);
エラー 1064 (42000):
マイSQL>
mysql> CREATE TABLE `interval` (begin INT, end INT);
クエリは正常、影響を受けた行は 0 行 (0.42 秒)
マイSQL>
mysql> show create table `interval`;
+----------+----------------------------------------------------------------------
| テーブル | テーブルの作成
+----------+----------------------------------------------------------------------
| 間隔 | CREATE TABLE `間隔` (
`begin` int(11) デフォルト NULL,
`end` int(11) デフォルト NULL
) エンジン=InnoDB デフォルト文字セット=latin1 |
+----------+----------------------------------------------------------------------
セット内の 1 行 (0.00 秒)
マイSQL> 最初のステートメントのテーブル名に予約語 interval が使用されており、実行が失敗していることがわかります。
2 番目のステートメントは、間隔に引用符を追加し、正常に実行されます。 ここで重要なのは、引用符は単一引用符ではなくバックティックである必要があるということです。それ以外の場合は、次のようにエラーが報告されます。
マイSQL>
mysql> drop table `interval`; -- バックティックを使用します クエリは正常です。0 行が影響を受けました (0.11 秒)
マイSQL>
mysql> create table 'interval' (begin INT, end INT); --一重引用符を使用します。エラー ERROR 1064 (42000):
マイSQL> 例外が1つあります
修飾名 (データベース名) 内のピリオドの後に識別子が続く場合、予約キーワードであっても引用符は必要ありません。 hoegh データベースを例に挙げてみましょう。テーブル名が hoegh.interval と記述されている場合、予約語 interval を引用符で囲む必要はありません。
マイSQL>
mysql> テーブル hoegh.interval (begin INT、end INT) を作成します。
クエリは正常、影響を受けた行は 0 行 (0.19 秒)
マイSQL>
mysql> show テーブル hoegh.interval;
+----------+----------------------------------------------------------------------
| テーブル | テーブルの作成
+----------+----------------------------------------------------------------------
| 間隔 | CREATE TABLE `間隔` (
`begin` int(11) デフォルト NULL,
`end` int(11) デフォルト NULL
) エンジン=InnoDB デフォルト文字セット=latin1 |
+----------+----------------------------------------------------------------------
セット内の 1 行 (0.00 秒)
マイSQL> 組み込み関数名の使用について
組み込み関数名は識別子として使用できますが、注意して使用する必要があります。たとえば、COUNT は有効な列名です。ただし、デフォルトでは、関数呼び出しでは関数名とそれに続く ( の間に空白を入れることはできません。この制限により、パーサーは名前が関数呼び出しで使用されているか、関数以外のコンテキストで使用されているかを区別できます。 付録
ある時点で、新しいバージョンにアップグレードする必要があるかもしれないので、将来の予約語を確認することをお勧めします。これらは、MySQL の新しいバージョンをカバーしているマニュアルに記載されています。ほとんどの予約語は、標準 SQL では列名またはテーブル名として使用することが禁止されています (GROUP など)。これらの一部は MySQL で必須であり、yacc パーサーを使用するため、予約語になっています。 3 つのテーブルは以下のとおりです。
最初の表 10.2 は、MySQL 5.7 のキーワードと予約語を示しています。予約キーワードには (R) マークが付いています。さらに、_FILENAME は予約されています。
2 番目の表 10.3 は、MySQL 5.6 と比較して MySQL 5.7 で追加された予約語を示しています。
3 番目の表 10.4 は、MySQL 5.6 と比較して MySQL 5.7 で削除された予約語を示しています。 表 10.2 MySQL 5.7 のキーワードと予約語 アクセス可能(R) | アカウント[a] | アクション | 追加(R) | 後 | に対して | 集計 | アルゴリズム | すべて (R) | アルター(R) | いつも[b] | 分析 | 分析 (R) | そして(R) | どれでも | AS(R) | ASC(右) | アスキー | 無感覚(R) | で | 自動拡張サイズ | 自動インクリメント | 平均 | 平均行の長さ | バックアップ | 前(右) | 始める | 間 (R) | ビギント(R) | バイナリ(R) | ビンログ | 少し | ブロブ(R) | ブロック | ブール | ブール | 両方(R) | BTREE | BY (R) | バイト | キャッシュ | コール(R) | カスケード(R) | カスケード | ケース(R) | カタログ名 | 鎖 | 変化(R) | 変更 | チャンネル[c] | チャー(R) | キャラクター(R) | 文字セット | チェック(R) | チェックサム | 暗号 | クラス_ORIGIN | クライアント | 近い | 合体 | コード | 収集 (R) | 照合 | コラム(右) | コラム | 列フォーマット | 列名 | コメント | 専念 | コミット | コンパクト | 完了 | 圧縮 | 圧縮[d] | 同時 | 状態 (R) | 繋がり | 一貫性のある | 制約 (R) | 制約カタログ | 制約名 | 制約スキーマ | 含まれるもの | コンテクスト | 続行 (R) | 変換 (R) | CPU | 作成 (R) | クロス(R) | キューブ | 現在 | 現在の日付 (R) | 現在の時間 (R) | CURRENT_TIMESTAMP (R) | 現在のユーザー (R) | カーソル(R) | カーソル名 | データ | データベース(R) | データベース (R) | データファイル | 日付 | 日時 | 日 | 曜日_時間 (R) | デイ_マイクロセカンド (R) | 曜日_分 (R) | DAY_SECOND (R) | 割り当て解除 | 12月(R) | 小数点 (R) | 宣言する (R) | デフォルト (R) | デフォルト認証 | 定義者 | 遅延(R) | 遅延キー書き込み | 削除 (R) | 説明 (R) | 記述する (R) | DES_KEY_FILE | 決定論的(R) | 診断 | ディレクトリ | 無効にする | 破棄 | ディスク | 明確 (R) | ディスティンクトロウ(R) | 部門 (R) | する | ダブル(R) | ドロップ(R) | デュアル(R) | ダンプファイル | 重複 | 動的 | 各(R) | そうでなければ(R) | エルセイフ(R) | 有効にする | 封入(R) | 暗号化[e] | 終わり | 終了 | エンジン | エンジン | 列挙 | エラー | エラー | 逃げる | 脱出(R) | イベント | イベント | 毎 | 交換 | 実行する | 存在する(R) | 終了(右) | 拡大 | 期限切れ | 説明 (R) | 輸出 | 延長 | エクステントサイズ | 誤り(R) | 速い | 欠陥 | フェッチ(R) | フィールド | ファイル | ファイルブロックサイズ[f] | フィルター[g] | 初め | 修理済み | フロート(R) | フロート4(R) | フロート8(R) | フラッシュ | フォロー[h] | 賛成(R) | フォース(R) | 外国人(R) | 形式 | 見つかった | (R)より | 満杯 | 全文(R) | 関数 | 一般的な | 生成[i] (R) | 幾何学 | ジオメトリコレクション | ゲット (R) | GET_FORMAT | グローバル | グラント(R) | 助成金 | グループ(R) | グループレプリケーション | ハンドラ | ハッシュ | 持つこと(R) | ヘルプ | 高優先度(R) | ホスト | ホスト | 時間 | 時間_マイクロ秒 (R) | 時間_分 (R) | 時間_秒 (R) | 特定された | IF(R) | 無視(R) | サーバーIDを無視 | 輸入 | (R) | インデックス(R) | インデックス | インファイル(R) | 初期サイズ | インナー(右) | インアウト(R) | 無感覚(R) | 挿入(R) | 挿入メソッド | インストール | インスタンス[k] | INT (R) | INT1(右) | INT2(R) | INT3 (R) | INT4 (R) | INT8 (R) | 整数 (R) | インターバル(R) | に (R) | インボーカー | IO | IO_AFTER_GTIDS (R) | IO_BEFORE_GTIDS (R) | IO_スレッド | 国際PC | IS(R) | 分離 | 発行者 | 繰り返し (R) | 参加する (R) | JSON[l] | キー(R) | キーズ(R) | キーブロックサイズ | キル(R) | 言語 | 最後 | リーディング(右) | 去る(R) | 葉 | 左(右) | 少ない | レベル | いいね(R) | リミット(R) | リニア(R) | ライン(R) | ラインストリング | リスト | ロード(R) | 地元 | 現地時間 (R) | ローカルタイムスタンプ (R) | ロック(R) | ロック | ログファイル | ログ | ロング(右) | ロングブロブ(R) | ロングテキスト(R) | ループ(R) | 低優先度(R) | マスター | マスター自動位置 | マスターバインド (R) | マスター接続再試行 | マスター遅延 | マスターハートビート周期 | マスターホスト | マスターログファイル | マスターログPOS | マスターパスワード | マスターポート | マスター再試行回数 | マスターサーバーID | マスターSSL | マスターSSLCA | MASTER_SSL_CAPATH | マスターSSL証明書 | マスターSSL暗号 | マスターSSLCRL | マスターSSLCRLPATH | マスターSSLキー | MASTER_SSL_VERIFY_SERVER_CERT(R) | MASTER_TLS_VERSION[m] | マスターユーザー | マッチ(R) | マックスバリュー(R) | 1時間あたりの最大接続数 | 1時間あたりのクエリの最大数 | 最大行数 | 最大サイズ | MAX_STATEMENT_TIME[n] | 1時間あたりの最大更新回数 | 最大ユーザー接続数 | 中くらい | ミディアムブロブ(R) | ミディアムミント(R) | 中テキスト(R) | メモリ | マージ | メッセージテキスト | マイクロ秒 | ミドルイント(R) | 移行 | 分 | 分_マイクロ秒 (R) | 分_秒 (R) | 最小行数 | MOD(R) | モード | 変更 (R) | 修正する | 月 | マルチラインストリング | マルチポイント | マルチポリゴン | ミューテックス | エラー | 名前 | 名前 | 全国 | ナチュラル(R) | ンチャー | NDB | NDBCLUSTER | 決して[o] | 新しい | 次 | いいえ | ノードグループ | 非ブロッキング[p] | なし | いいえ(R) | 待機なし | BINLOG への書き込みなし (R) | NULL (R) | 番号 | 数値 (R) | ネヴァーチャル | オフセット | 古いパスワード[q] | オン(R) | 1つ | のみ | 開ける | 最適化 (R) | オプティマイザーコスト[r] (R) | オプション(R) | オプション(R) | オプション | または(R) | 注文 (R) | アウト(R) | アウター(右) | アウトファイル (R) | 所有者 | パックキー | ページ | パーサー | PARSE_GCOL_EXPR[s] | 部分的 | パーティション(R) | パーティショニング | パーティション | パスワード | 段階 | プラグイン | プラグイン | プラグインディレクトリ | ポイント | ポリゴン | ポート | 前[t] | プレシジョン(R) | 準備する | 保存する | 前へ | プライマリー(R) | 特権 | 手順(R) | プロセスリスト | プロフィール | プロフィール | プロキシ | パージ(R) | 四半期 | クエリ | 素早い | レンジ(R) | 読む (R) | 読む (R) | 読み取り専用 | 読み取り書き込み (R) | リアル(R) | 再構築 | 回復する | やり直し | 再実行バッファサイズ | 冗長 | 参考文献(R) | 正規表現 (R) | リレー | リレーログ | リレーログファイル | リレーログPOS | リレースレッド | リリース(R) | リロード | 取り除く | 名前を変更 (R) | 再編成 | 修理 | 繰り返し(R) | 繰り返し可能 | 置換 (R) | REPLICATE_DO_DB[u] | REPLICATE_DO_TABLE[v] | REPLICATE_IGNORE_DB[w] | REPLICATE_IGNORE_TABLE[x] | REPLICATE_REWRITE_DB[y] | REPLICATE_WILD_DO_TABLE[z] | REPLICATE_WILD_IGNORE_TABLE[aa] | 複製 | 必要 (R) | リセット | リシグナル(R) | 復元する | 制限する (R) | 再開する | 戻る (R) | 返されたSQLSTATE | 返品 | 逆行する | 取り消し(R) | 右(R) | RLIKE (R) | ロールバック | ロールアップ | 回転する[ab] | ルーティーン | 行 | 行 | 行数 | 行フォーマット | RTREE | セーブポイント | スケジュール | スキーマ(R) | スキーマ(R) | スキーマ名 | 2番 | 秒_マイクロ秒 (R) | 安全 | 選択 (R) | センシティブ(R) | セパレーター(R) | シリアル | シリアル化可能 | サーバ | セッション | セット(R) | 共有 | 表示 (R) | シャットダウン | シグナル(R) | 署名済み | 単純 | 奴隷 | 遅い | スモールイント(R) | スナップショット | ソケット | いくつかの | ソナメ | サウンド | ソース | 空間(R) | スペシフィック(R) | SQL (R) | SQL例外 (R) | SQL状態 (R) | SQL警告 (R) | SQL_AFTER_GTIDS | SQL_AFTER_MTS_GAPS | SQL_BEFORE_GTIDS | SQL_BIG_RESULT (R) | SQL_BUFFER_RESULT | SQL_CACHE | SQL_CALC_FOUND_ROWS (R) | SQL_NO_CACHE | SQL_SMALL_RESULT (R) | SQL_THREAD | SQL_TSI_DAY | SQL_TSI_時間 | SQL_TSI_分 | SQL_TSI_MONTH | SQL_TSI_QUARTER | SQL_TSI_SECOND | SQL_TSI_WEEK | SQL_TSI_YEAR | SSL(R) | 積み重ね | 始める | スターティング(R) | スタート | STATS_AUTO_RECALC | 統計_永続 | 統計サンプルページ | 状態 | 停止 | ストレージ | ストアド[ac] (R) | ストレート結合(R) | 弦 | サブクラス_ORIGIN | 主題 | サブパーティション | サブパーティション | 素晴らしい | つるす | スワップ | スイッチ | 表(R) | テーブル | テーブルスペース | テーブルチェックサム | テーブル名 | 一時的 | 誘惑的 | 終了しました (R) | 文章 | よりも | その後(R) | 時間 | タイムスタンプ | タイムスタンプ追加 | タイムスタンプ差分 | タイニーブロブ(R) | タイニーン(R) | 小さなテキスト(R) | へ(右) | トレーリング(R) | 取引 | トリガー(R) | トリガー | 真実(R) | 切り捨て | タイプ | 種類 | 未確定 | 未定義 | 元に戻す (R) | 元に戻す | UNDO_BUFFER_SIZE | ユニコード | アンインストール | ユニオン(R) | ユニーク(R) | 未知 | ロック解除(R) | 未署名(R) | それまで | アップデート (R) | アップグレード | 使用法 (R) | 使用(R) | ユーザー | ユーザーリソース | USE_FRM | (R) の使用 | UTC_DATE (日付) | UTC_TIME (時刻) | UTC_タイムスタンプ (R) | 検証[広告] | 価値 | 価値観(R) | ヴァーバイナリー(R) | ヴァルチャー(R) | ヴァーチャルキャラクター(R) | 変数 | 変化する(R) | ビュー | バーチャル[ae] (R) | 待って | 警告 | 週 | 重量文字列 | いつ (R) | どこ (R) | ながら(R) | ウィズ(R) | なし[af] | 仕事 | ラッパー | 書く (R) | X509 | 1000 | XID[ag] | テキスト | 排他的論理和 (R) | 年 | 年_月 (R) | ゼロフィル(R) | | | [a] ACCOUNT: 5.7.6 で追加 (非予約) [b] ALWAYS: 5.7.6 で追加 (非予約) [c] CHANNEL: 5.7.6 で追加 (非予約) [e] 暗号化: 5.7.11 で追加 (非予約) [f] FILE_BLOCK_SIZE: 5.7.6 で追加 (非予約) [g] FILTER: 5.7.3 で追加 (非予約) [h] FOLLOWS: 5.7.2 で追加 (非予約) [j] GROUP_REPLICATION: 5.7.6 で追加 (非予約) [k] インスタンス: 5.7.11 で追加 (非予約) [m] MASTER_TLS_VERSION: 5.7.10 で追加 (非予約) [n] MAX_STATEMENT_TIME: 5.7.4 で追加 (非予約)、5.7.8 で削除 [p] ノンブロッキング: 5.7.6 で削除されました [q] OLD_PASSWORD: 5.7.5 で削除されました [r] OPTIMIZER_COSTS: 5.7.5 で追加 (予約済み) [s] PARSE_GCOL_EXPR: 5.7.6 で追加 (予約済み)。5.7.8 で非予約になった。 [u] REPLICATE_DO_DB: 5.7.3 で追加 (非予約) [v] REPLICATE_DO_TABLE: 5.7.3 で追加 (非予約) [w] REPLICATE_IGNORE_DB: 5.7.3 で追加 (非予約) [x] REPLICATE_IGNORE_TABLE: 5.7.3 で追加 (非予約) [y] REPLICATE_REWRITE_DB: 5.7.3 で追加 (非予約) [z] REPLICATE_WILD_DO_TABLE: 5.7.3 で追加 (非予約) [aa] REPLICATE_WILD_IGNORE_TABLE: 5.7.3 で追加 (非予約) [ab] ROTATE: 5.7.11 で追加 (非予約) [ac] STORED: 5.7.6 で追加 (予約済み) [ae] VIRTUAL: 5.7.6 で追加 (予約済み) [ag] XID: 5.7.5 で追加 (非予約) |
表 10.3 MySQL 5.6 と比較して MySQL 5.7 で追加されたキーワードと予約語 アカウント | いつも | チャネル | 圧縮 | 暗号化 | ファイルブロックサイズ | フィルター | フォロー | 生成 (R) | グループレプリケーション | 実例 | 翻訳 | マスターTLSバージョン | 一度もない | オプティマイザーコスト (R) | PARSE_GCOL_EXPR | 先行する | レプリケートする | レプリケートDOテーブル | レプリケート_IGNORE_DB | レプリケート_無視_テーブル | レプリケート_REWRITE_DB | レプリケート_ワイルド_DO_テーブル | REPLICATE_WILD_IGNORE_TABLE | 回転 | 積み重ね | 保存済み (R) | 検証 | バーチャル(R) | それなし | XID | | |
表 10.4 MySQL 5.6 と比較して MySQL 5.7 で削除されたキーワードと予約語 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:- PythonはMySQLの特殊文字を処理する
- Python3 を Mysql8.0 に接続する際に発生する問題とその解決方法
- Python MySQLフィールドとキーワードの競合を解決する方法
|