はじめに
MySQL 8.0の環境にテーブルを作成する手順を紹介します。
本記事は、MySQL 8.0の下記マニュアルを参考に作成しました。
3.3.2 テーブルの作成
動作確認環境
mysql> status
--------------
mysql Ver 8.0.32 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 14
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.32 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 26 days 22 hours 19 min 37 sec
Threads: 2 Questions: 41 Slow queries: 0 Opens: 148 Flush tables: 3 Open tables: 67 Queries per second avg: 0.000
--------------
テーブル作成
チュートリアル用データベースに接続します。
[root@mdb01 ~]# mysql -uchibatty -p menagerie
Enter password:
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
1 row in set (0.00 sec)
petテーブルを作成します。
mysql> CREATE TABLE pet (
-> name VARCHAR(20),
-> owner VARCHAR(20),
-> species VARCHAR(20),
-> sex CHAR(1),
-> birth DATE,
-> death DATE
-> );
Query OK, 0 rows affected (0.03 sec)
テーブル名は、SHOW TABLESコマンドで確認できます。
また、列定義は、DESCRIBEコマンドで確認できます。
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| pet |
+---------------------+
1 row in set (0.00 sec)
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
DESCRIBEコマンドは、DESCと省略できます。
mysql> DESC pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
CREATE TABLEのDDLは、SHOW CREATE TABLE文を実行すると確認できます。
ストレージエンジンがInnoDBである事がわかります。
mysql> SHOW CREATE TABLE pet \G
*************************** 1. row ***************************
Table: pet
Create Table: CREATE TABLE `pet` (
`name` varchar(20) DEFAULT NULL,
`owner` varchar(20) DEFAULT NULL,
`species` varchar(20) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`birth` date DEFAULT NULL,
`death` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql>
データベースディレクトリに、テーブル名.ibd のデータファイルが作成されている事が確認できます。
# ls /var/lib/mysql/menagerie
pet.ibd