创建数据库是比较容易的部分,但此时它是空的,正如SHOW TABLES
告诉您的那样:
mysql> SHOW TABLES;
Empty set (0.00 sec)
更难的部分是决定数据库的结构应该是什么:您需要哪些表以及每个表中应该包含哪些列。
您想要一个包含您的每只宠物的记录的表。这可以称为pet
表格,它应该至少包含每只动物的名字。因为名称本身不是很有趣,所以该表应该包含其他信息。例如,如果您的家庭中不止一个人养宠物,您可能需要列出每只动物的主人。您可能还想记录一些基本的描述信息,例如物种和性别。
年龄呢?这可能很有趣,但存储在数据库中并不是一件好事。年龄随着时间的推移而变化,这意味着您必须经常更新您的记录。相反,最好存储一个固定值,例如出生日期。然后,只要您需要年龄,就可以将其计算为当前日期与出生日期之间的差值。MySQL 提供了做日期运算的函数,所以这并不难。存储出生日期而不是年龄还有其他优点:
您可以使用该数据库执行任务,例如为即将到来的宠物生日生成提醒。(如果您认为这种类型的查询有些愚蠢,请注意,您可能会在业务数据库的上下文中提出相同的问题,以识别您需要在当前周或月份向其发送生日祝福的客户,因为计算机辅助的个人风格。)
您可以计算与当前日期以外的日期相关的年龄。例如,如果将死亡日期存储在数据库中,则可以轻松计算出宠物死亡时的年龄。
您可能会想到pet
表中有用的其他类型的信息,但目前确定的信息就足够了:姓名、所有者、物种、性别、出生和死亡。
使用CREATE TABLE
语句指定表格的布局:
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR
是
、 和
列的不错选择name
,因为列值的长度各不相同。这些列定义中的长度不必全部相同,也不必是. 您通常可以选择从到 的
任意长度,只要您觉得最合理即可。如果你做出了错误的选择,后来发现你需要一个更长的字段,MySQL 会提供一个声明。
owner
species
20
1
65535
ALTER
TABLE
可以选择几种类型的值来表示动物记录中的性别,例如'm'
and
'f'
,或者也许'male'
and
'female'
。使用单个字符'm'
和是最简单的'f'
。
和列的DATE
数据类型
的使用
是一个相当明显的选择。
birth
death
一旦你创建了一个表,SHOW
TABLES
应该产生一些输出:
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
要验证您的表是否按照您预期的方式创建,请使用DESCRIBE
语句:
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
,例如,如果您忘记了表中列的名称或它们的类型。
有关 MySQL 数据类型的更多信息,请参阅 第 11 章,数据类型。