MySQL創建表

在本教程中,我們將向您展示如何使用MySQL CREATE TABLE語句在數據庫中創建新表。

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子句中的表指定存儲引擎。可以使用任何存儲引擎,如:InnoDBMyISAMHEAPEXAMPLECSVARCHIVEMERGEFEDERATEDNDBCLUSTER。如果不明確聲明存儲引擎,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 NULLNULL表示該列是否接受NULL值。
  • DEFAULT值用於指定列的默認值。
  • AUTO_INCREMENT指示每當將新行插入到表中時,列的值會自動增加。每個表都有一個且只有一個AUTO_INCREMENT列。

如果要將表的特定列設置爲主鍵,則使用以下語法:

PRIMARY KEY (col1,col2,...)

MySQL CREATE TABLE語句示例

下面讓我們練習一個例子,在示例數據庫(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語句在數據庫中創建新表。