建立資料庫是簡單的部分,但此時它是空的,因為 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
,例如,如果您忘記資料表中的欄名稱或它們的類型。
如需有關 MySQL 資料類型的詳細資訊,請參閱 第 13 章,資料類型。