MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブル名に「group」を使うと構文エラーになる理由とバッククォートによる回避方法

MySQLにおいて「group」は予約語(リザーブドキーワード)です。そのため、テーブル名としてそのまま使用すると構文エラーが発生します。このエラーを回避するには、テーブル名「group」をバッククォート(`)で囲む必要があります。

テーブルの作成例

まず、バッククォートで囲んだテーブル名を使ってテーブルを作成してみましょう。

mysql> create table `group`
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (1.26 sec)

INSERTコマンドでレコードを挿入する

続いて、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into `group`(Name) values('Chris');
Query OK, 1 row affected (0.47 sec)
mysql> insert into `group`(Name) values('David');
Query OK, 1 row affected (0.36 sec)
mysql> insert into `group`(Name) values('Mike');
Query OK, 1 row affected (0.26 sec)
mysql> insert into `group`(Name) values('Sam');
Query OK, 1 row affected (0.16 sec)

SELECT文ですべてのレコードを表示する

SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。

mysql> select * from `group`;

上記のクエリを実行すると、次のような出力が得られます。

+----+-------+
| Id | Name |
+----+-------+
| 1 | Chris |
| 2 | David |
| 3 | Mike |
| 4 | Sam |
+----+-------+
4 rows in set (0.00 sec)

補足:予約語を扱う際の注意点

バッククォートはMySQL特有の記法です。PostgreSQLなどでは識別子をダブルクォート(")で、SQL Serverでは角括弧([ ])で囲みます。また、実務では「groups」のように予約語と衝突しないテーブル名を選ぶことで、エスケープ処理自体を不要にでき、SQLの可読性・保守性も向上します。

  1. MySQLでテーブルの重複を除いたレコードから平均値を取得するクエリの書き方

    MySQLで平均値を求めるには AVG() 関数を使用します。さらに DISTINCT と組み合わせることで、重複しているレコードを除外した状態で平均を計算することができます。この記事では、実際にサンプルテーブルを作成しながら、個別(ユニーク)なレコードから平均値を取得する方法を解説します。サンプルテーブルの作成まず、以下のクエリでテーブルを作成します。mysql> create table DemoTable1934 ( StudentName varchar(20), StudentMarks int ); Query OK, 0 rows affec

  2. MySQLの構文エラーとは?予約済みキーワードでテーブルを作成する方法

    MySQLの予約済みキーワードによる構文エラーとはMySQLでは、テーブル名に予約済みキーワード(reserved keyword)を使用すると、そのままではSQL構文エラーが発生します。ここでは例として、「groups」という名前のテーブルを作成しようとした場合を見てみましょう。「groups」はMySQLの予約済みキーワードであるため、通常の記述方法ではテーブルを作成できません。エラーが発生するケース以下のように、予約語「groups」を使ってテーブルを作成しようとすると、ERROR 1064という構文エラーが出力されます。mysql> create table groups->