在本教學中,我們將向您展示如何使用MySQL CREATE TABLE
語句在資料庫中建立新表。
要在資料庫中建立一個新錶,可以使用MySQL CREATE TABLE
語句。 CREATE TABLE
語句是MySQL中最複雜的語句之一。
下面以簡單的形式來說明CREATE TABLE
語句的語法:
CREATE TABLE [IF NOT EXISTS] table_name(
column_list
) engine=table_type;
我們來更詳細地來檢視其語法:
首先,指定要在CREATE TABLE
子句之後建立的表的名稱。表名在資料庫中必須是唯一的。 IF NOT EXISTS
是語句的可選部分,允許您檢查正在建立的表是否已存在於資料庫中。 如果是這種情況,MySQL將忽略整個語句,不會建立任何新的表。 強烈建議在每個CREATE TABLE
語句中使用IF NOT EXISTS
來防止建立已存在的新表而產生錯誤。
其次,在column_list
部分指定表的列表。欄位的列用逗號(,
)分隔。我們將在下一節中向您展示如何更詳細地列(欄位)定義。
第三,需要為engine
子句中的表指定儲存引擎。可以使用任何儲存引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明確宣告儲存引擎,MySQL將預設使用InnoDB。
註:InnoDB自MySQL 5.5之後成為預設儲存引擎。 InnoDB表型別帶來了諸如ACID事務,參照完整性和崩潰恢復等關聯式資料庫管理系統的諸多好處。在以前的版本中,MySQL使用MyISAM作為預設儲存引擎。
要在CREATE TABLE
語句中為表定義列,請使用以下語法:
column_name data_type[size] [NOT NULL|NULL] [DEFAULT value]
[AUTO_INCREMENT]
以上語法中最重要的組成部分是:
column_name
指定列的名稱。每列具有特定資料型別和大小,例如:VARCHAR(255)
。NOT NULL
或NULL
表示該列是否接受NULL
值。DEFAULT
值用於指定列的預設值。AUTO_INCREMENT
指示每當將新行插入到表中時,列的值會自動增加。每個表都有一個且只有一個AUTO_INCREMENT
列。如果要將表的特定列設定為主鍵,則使用以下語法:
PRIMARY KEY (col1,col2,...)
下面讓我們練習一個例子,在範例資料庫(testdb)中建立一個名為tasks
的新表,如下所示:
可以使用CREATE TABLE
語句建立這個tasks
表,如下所示:
CREATE TABLE IF NOT EXISTS tasks (
task_id INT(11) NOT NULL AUTO_INCREMENT,
subject VARCHAR(45) DEFAULT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
description VARCHAR(200) DEFAULT NULL,
PRIMARY KEY (task_id)
) ENGINE=InnoDB;
在本教學中,您已經學習了如何使用MySQL CREATE TABLE
語句在資料庫中建立新表。