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

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)

  1. 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

  2. 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) 列名に「ランク」を使用し