创建数据库是一个简单的部分,正如SHOW TABLES告诉你的那样,现在它还是空的:

1
2
mysql> SHOW TABLES;
Empty set (0.01 sec)

较难的部分是决定你的数据库应该是什么框架:你需要什么样的表,每个表中有多少列.

你希望这个表包含每个宠物的记录,可以使用pet作为表名.这里使用name,owner,species,sex,birth和death作为表的列.在表中包含宠物的年龄age,可能很有趣,但在数据库中存放年龄并不是一件好事.年龄一直随时间在改变,这意味着你不得不经常更新记录,相反,存储一个固定的值,比如出生日期更好,那样,当你需要年龄的时候你可以通过计算出生日期与当前时间的差值,MySQL提供了用于日期计算的函数,所以这并不难,存储出生日期而不是年龄有更多的好处:

  • 你可以使用数据库来完成工作,比如提醒一个宠物生日的到来(在商业数据库中,你可能被要求识别生日即将到来的用户,并向他们发出生日问候),
  • 不只是计算出生日期和当前日期之间的差值,如果你存储了死亡日期,你可以很容易的计算它死亡时候的年龄.

使用CREATE TABLE来指定表的布局:

1
2
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

因为name,owner,species列值的长度差别较大,定义为VARCHAR是更好的选择.

其他类型的值也可以用来表示动物的性别,使用'm''f'是最简单的.

定义birth,death列值的类型为DATA是很显然的选择.

创建表后,SHOW TABLES应该会有如下的输出:

1
2
3
4
5
6
mysql> SHOW TABLES;
+—————————————————————+
| Tables in menagerie |
+—————————————————————+
| pet |
+—————————————————————+

为了确认你的表是按照所期望的方式创建的,使用DESCRIBE:

1
2
3
4
5
6
7
8
9
10
11
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 | |
+—————————+—————————————+——————+—————+—————————+———————+

你可以在任意时刻使用DESCRIBE,例如,当你忘记你表中列的名字或类型时.

英文原文:

Creating a Table