MySQL 5.7 のキーワードと予約語の詳細な説明

MySQL 5.7 のキーワードと予約語の詳細な説明

序文

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 で追加 (非予約)

[d] 圧縮: 5.7.8 で追加 (非予約)

[e] 暗号化: 5.7.11 で追加 (非予約)

[f] FILE_BLOCK_SIZE: 5.7.6 で追加 (非予約)

[g] FILTER: 5.7.3 で追加 (非予約)

[h] FOLLOWS: 5.7.2 で追加 (非予約)

[i] 生成: 5.7.6 で追加 (予約済み)

[j] GROUP_REPLICATION: 5.7.6 で追加 (非予約)

[k] インスタンス: 5.7.11 で追加 (非予約)

[l] JSON: 5.7.8で追加(非予約)

[m] MASTER_TLS_VERSION: 5.7.10 で追加 (非予約)

[n] MAX_STATEMENT_TIME: 5.7.4 で追加 (非予約)、5.7.8 で削除

[o] 決して: 5.7.4 で追加 (非予約)

[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 で非予約になった。

[t] 前: 5.7.2 で追加 (非予約)

[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 で追加 (予約済み)

[広告] 検証: 5.7.5 で追加 (非予約)

[ae] VIRTUAL: 5.7.6 で追加 (予約済み)

[af] なし: 5.7.5 で追加 (非予約)

[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フィールドとキーワードの競合を解決する方法

<<:  NestJsはMongooseを使用してMongoDBを操作する

>>:  Dockerコンテナ相互接続の予備的な実践についての簡単な説明

推薦する

Ubuntu 20.04 ファイアウォール設定の簡単なチュートリアル (初心者)

序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...

VueはExcelデータをエクスポートするパブリック関数メソッドをカプセル化します

vue+element UI は Excel データをエクスポートするためのパブリック関数をカプセル...

vuex の補助関数 mapGetters の基本的な使い方の詳細な説明

mapGettersヘルパー関数mapGettersヘルパー関数は、ストア内のゲッターをローカルの計...

フォームの送信イベントが応答しない

1. 問題の説明<br />JS を使用してフォームの送信メソッドを呼び出してフォームを...

MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

1.MySQLの複数インスタンスMySQL マルチインスタンスとは、1 台以上のマシン上で複数の M...

CSS を使用して物流の進行状況のスタイルを実装するためのサンプルコード

効果: CSS スタイル: <スタイル タイプ="text/css">...

Linux システムでの CPU 使用率が高い場合のトラブルシューティングのアイデアと解決策

序文Linux 運用保守エンジニアとして、日々の業務の中で Linux サーバーの CPU 負荷が ...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

MySQL データをエクスポートする際の secure-file-priv 問題の解決方法

エラー 1290 (HY000) : MySQL サーバーは –secure-file-priv オ...

CentOS 7.4 で MySQL 5.7.28 バイナリモードをインストールする方法

Linuxシステムバージョン: CentOS7.4 MySQL バージョン: 5.7.28 Linu...

Vue3 を使用してアップロード コンポーネントを実装するためのサンプル コード

目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...

Linux ncコマンドの概要

NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit &a...

srcまたはcss背景画像のurl値はbase64でエンコードされたコードです

ウェブ上の一部の画像の src または CSS 背景画像 URL の後に、data:image/pn...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

Vue が DingTalk の出勤カレンダーを実装

この記事では、DingTalkの勤怠カレンダーを実装するためのVueの具体的なコードを参考までに共有...