メモ⑥-テーブルへの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)


・・・メモ⑦へ続く