1.3.2 创建数据表

我们很容易的创建了一个数据库,并取得了该库的管理员权限,此时使用 show tables; 查看该库中的数据表是空的。

mysql> SHOW TABLES;
Empty set (0.00 sec)

那么应该如何设计您的数据库结构?库中应该具有哪些数据表,以及每个表中应该包含哪些数据列?

假设您需要一个数据库表来存储您的宠物信息,那么您可以创建一个名为 pet 的数据库。表中可以包含一些您想记录的信息,比方说宠物的name、owner、species、sex、birth、 death等;

那么,您可以使用 create table 的语法,来创建 pet 数据表:

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
    -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
Query OK, 0 rows affected (0.02 sec)

在这个数据库表的设计中,name、owner、species 列的值长度是不确定的,所以数据类型使用 VARCHARVARCHAR 的长度范围在 1 - 65535 之间。如果某个列设置错误,您可以使用 ALTER TABLE 语法来更改。

sex 我们用 mf 来表示性别,所以设计成1个固定长度。

birth 、death 我们使用 DATE 来保存。

数据库表创建成功后,您可以使用 show tables 查看输出:

mysql> show tables;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| pet                 |
+---------------------+
1 row in set (0.00 sec)

您也可以使用 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    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

如果您忘记了数据表中的列名、数据类型,那么您也可以通过 describe 语法查看。

desc 语法是 describe 的简写模式,上面的 SQL 语句,也可以写成:

mysql> desc 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    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

results matching ""

    No results matching ""