相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  建立資料表

5.3.2 建立資料表

建立資料庫是簡單的部分,但此時它是空的,因為 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);

VARCHARnameownerspecies 欄的好選擇,因為欄值長度不同。這些欄定義中的長度不一定都相同,也不必是 20。您通常可以選擇從 165535 的任何長度,無論您認為哪個最合理。如果您選擇不佳,而且之後發現需要更長的欄位,MySQL 提供了 ALTER TABLE 陳述式。

可以選擇幾種類型的值來表示動物記錄中的性別,例如 'm''f',或者可能是 'male''female'。最簡單的方法是使用單個字元 'm''f'

針對 birthdeath 欄使用 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 章,資料類型