メモ⑥-テーブルへのDDL処理(CREATE)-


~テーブルへの処理
【CREATE】
以下のように入力し、テーブルを生成する。

テーブルを追加したいDBに切り替えておく↓
MariaDB [world]> use company;
Database changed

テーブル内の情報を入力していく↓
MariaDB [company]> CREATE TABLE tbl_employee2(
-> code INTEGER, ←フィールド名と変数を指定している
-> name VARCHAR(40),
-> birthday DATETIME,
-> dpt_code INTEGER,
-> post_code INTEGER,
-> manager INTEGER
-> )
-> ;
Query OK, 0 rows affected (0.015 sec)

確認すると…
MariaDB [company]> DESC TBL_EMPLOYEE2;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| code | int(11) | YES | | NULL | |←テーブルが生成されている
| name | varchar(40) | YES | | NULL | | (ただしキーやNullの指定はまだできていない)
| birthday | datetime | YES | | NULL | |
| dpt_code | int(11) | YES | | NULL | |
| post_code | int(11) | YES | | NULL | |
| manager | int(11) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.014 sec)

また、Nullを許さない(文字の空白を認めない)項目を設定したい場合、
以下のような形で入力する。

MariaDB [company]> CREATE TABLE tbl_employee3(
-> code INTEGER NOT NULL, ←変数名の直後に、「NOT NULL」と
-> name VARCHAR(40) NOT NULL, ←追記することで設定ができる。
-> birthday DATETIME,
-> dpt_code INTEGER,
-> post_code INTEGER,
-> manager INTEGER)
-> ;
Query OK, 0 rows affected (0.015 sec)

この形で生成したテーブルを確認すると…
MariaDB [company]> desc tbl_employee3;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| code | int(11) | NO | | NULL | |←Nullの項目が
| name | varchar(40) | NO | | NULL | |←NOになっている
| birthday | datetime | YES | | NULL | |
| dpt_code | int(11) | YES | | NULL | |
| post_code | int(11) | YES | | NULL | |
| manager | int(11) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.023 sec)

次に、初期値(Default)の異なるテーブルを生成したい場合、
以下のような形で入力する。↓
MariaDB [company]> CREATE TABLE tbl_employee4(
-> code INTEGER NOT NULL DEFAULT 101, ←上記に加えて
-> name VARCHAR(40) NOT NULL DEFAULT "伊藤英樹",  デフォルト値を追記している。
-> birthday DATETIME DEFAULT "1972-02-01",
-> dpt_code INTEGER DEFAULT 10,
-> post_code INTEGER DEFAULT 1,
-> manager INTEGER)
-> ;
Query OK, 0 rows affected (0.015 sec)

MariaDB [company]> desc tbl_employee4;
+-----------+-------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------------------+-------+
| code | int(11) | NO | | 101 | |
| name | varchar(40) | NO | | 伊藤英樹 | |
| birthday | datetime | YES | | 1972-02-01 00:00:00 | |
| dpt_code | int(11) | YES | | 10 | |
| post_code | int(11) | YES | | 1 | |
| manager | int(11) | YES | | NULL | |
+-----------+-------------+------+-----+---------------------+-------+
6 rows in set (0.011 sec) ↑デフォルト値が設定された

試しに、データを一人分入力し、
確認してみる。↓
MariaDB [company]> INSERT INTO tbl_employee4 (manager) VALUES (1);
Query OK, 1 row affected (0.002 sec)

確認すると…
MariaDB [company]> SELECT * FROM tbl_employee4;
+------+----------+---------------------+----------+-----------+---------+
| code | name | birthday | dpt_code | post_code | manager |
+------+----------+---------------------+----------+-----------+---------+
| 101 | 伊藤英樹 | 1972-02-01 00:00:00 | 10 | 1 | 1 |←初期値の状態で一人分
+------+----------+---------------------+----------+-----------+---------+ データが追加されている。
1 row in set (0.000 sec)

・・・メモ⑦へ続く