創建數據庫是很容易的部分,但是在這時它是空的,正如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、owner和species列,因為列值是變長的。這些列的長度不必都相同,而且不必是20。你可以挑選從1到65535的任何長度,從中選擇一個最合理的值。(如果選擇得不合適,后來證明你需要一個更長的字段,MySQL提供一個ALTER TABLE語句。)
可以用多種類型的值來表示動物記錄中的性別,例如,"m"和"f",或"male"和"female"。使用單字符"m"和"f"是最簡單的方法。
很顯然,birth和death列應選用DATE數據類。
創建了數據庫表后,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,例如,如果你忘記表中的列的名稱或類型時。