创建数据库是非常简单的部分,但在这一点上它是空的,因为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'
和 'f'
,或者可能'male'
和 '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 | |
+---------+-------------+------+-----+---------+-------+