摘要:在本教學中,您將學習如何使用 SQL CREATE TABLE
陳述式來建立新表格。
SQL CREATE TABLE 陳述式簡介
到目前為止,您已經學習了各種方法來從一個或多個表格中查詢資料 在範例資料庫中。 現在是時候學習如何建立自己的表格了。
表格是儲存在資料庫中的資料集合。 表格由欄位和列組成。 若要建立新表格,您可以使用 CREATE TABLE
陳述式,其語法如下:
CREATE TABLE table_name(
column_name_1 data_type default value column_constraint,
column_name_2 data_type default value column_constraint,
...,
table_constraint
);
Code language: SQL (Structured Query Language) (sql)
建立新表格所需的最少資訊是表格名稱和欄位名稱。
由 table_name
指定的表格名稱在資料庫中必須是唯一的。 如果您建立的表格名稱與已存在的表格名稱相同,資料庫系統將會發出錯誤。
在 CREATE TABLE
陳述式中,您指定以逗號分隔的欄位定義清單。 每個欄位定義都包含欄位名稱、欄位的資料類型、預設值以及一個或多個欄位約束。
欄位的資料類型指定該欄位可以儲存的資料類型。 欄位的資料類型可以是數值、字元、日期等。
欄位約束控制可以在欄位中儲存哪種值。 例如,NOT NULL
約束確保該欄位不包含任何 NULL 值。
一個欄位可能有多個欄位約束。 例如,users
表格的 username
欄位可以同時具有 NOT NULL
和 UNIQUE
約束。
如果約束包含多個欄位,您可以使用表格約束。 例如,如果表格的主鍵由兩個欄位組成,在這種情況下,您必須使用 PRIMARY KEY
表格約束。
SQL CREATE TABLE 範例
假設您必須將員工的訓練資料儲存在資料庫中,要求每個員工可能修習零或多個訓練課程,並且每個訓練課程可能被零或多個員工修習。
您查看了目前的資料庫,發現沒有地方可以儲存此資訊,因此您決定建立新表格。
以下陳述式建立 courses
表格
CREATE TABLE courses (
course_id INT AUTO_INCREMENT PRIMARY KEY,
course_name VARCHAR(50) NOT NULL
);
Code language: SQL (Structured Query Language) (sql)

courses
表格有兩個欄位:course_id
和 course_name
。
course_id
是 courses
表格的主鍵欄位。 每個表格都有一個且只有一個主鍵,用於唯一識別表格中的每一列。 為每個表格定義主鍵是一個好習慣。
course_id
的資料類型是由 INT
關鍵字表示的整數。 此外,course_id
欄位的值為 AUTO_INCREMENT
。 這表示當您將新列插入 courses
表格而不提供 course_id
欄位的值時,資料庫系統將為該欄位產生一個整數值。
course_name
儲存課程的名稱。 其資料類型是最大長度為 50 的字串 (VARCHAR
)。 NOT NULL
約束確保 course_name
欄位中沒有儲存 NULL 值。
現在您有了儲存課程資料的表格。 若要儲存訓練資料,您可以建立一個名為 training 的新表格,如下所示。
CREATE TABLE trainings (
employee_id INT,
course_id INT,
taken_date DATE,
PRIMARY KEY (employee_id , course_id)
);
Code language: SQL (Structured Query Language) (sql)

trainings
表格由三個欄位組成
employee_id
欄位儲存修習課程的員工 ID。course_id
欄位儲存員工修習的課程。taken_date
欄位儲存員工修習課程的日期。
由於 trainings
表格的主鍵由兩個欄位組成:employee_id
和 course_id
,因此我們必須使用 PRIMARY KEY
表格約束。
在本教學中,您已經學習如何使用 SQL CREATE TABLE
陳述式在資料庫中建立新表格。