CREATE TABLEステートメントの列名として「When」を使用できますか?
始める前に、CREATETABLEステートメントを使用しているときに列名として「when」を設定してみましょう-
mysql> create table DemoTable693( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100), When datetime );
これにより、次の出力が生成されます。エラーが表示されます:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'When datetime at line 5
`when`などのバッククォートを使用して予約語をラップする必要があります。最初にテーブルを作成して、同じものを実装しましょう:
mysql> create table DemoTable693 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100), `When` datetime ); Query OK, 0 rows affected (0.63 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します:
mysql> insert into DemoTable693(StudentName,`When`) values('Chris',NOW()); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable693(StudentName,`When`) values('Robert',CURDATE()); Query OK, 1 row affected (0.22 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示します-
mysql> select *from DemoTable693;
これにより、次の出力が生成されます-
+-----------+-------------+---------------------+ | StudentId | StudentName | When | +-----------+-------------+---------------------+ | 1 | Chris | 2019-07-21 18:57:19 | | 2 | Robert | 2019-07-21 00:00:00 | +-----------+-------------+---------------------+ 2 rows in set (0.00 sec)
-
MySQLの列名として予約語「index」を使用できますか?
はい。ただし、列名として使用する際のエラーを回避するために、予約語(インデックス)にバックティック記号を追加する必要があります。 まずテーブルを作成しましょう- mysql> create table DemoTable ( `index` int ); Query OK, 0 rows affected (0.48 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(1000); Query OK, 1 row affected (0.18 sec) m
-
MySQL8で列名として「ランク」を使用できますか?
ランクは、MySQLバージョン8.0.2で定義されているMySQLの予約語です。したがって、ランクを列名として使用することはできません。ランクの周りでバッククォートを使用する必要があります。 まず、作業中のMySQLのバージョンを確認しましょう。ここでは、MySQLバージョン8.0.12を使用しています- mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec) 列名に「ランク」を使用し