mysql 创建表_MySQL创建表(十一)
在本教程中,我們將向您展示如何使用MySQL CREATE TABLE語(yǔ)句在數(shù)據(jù)庫(kù)中創(chuàng)建新表。
MySQL CREATE TABLE語(yǔ)法
要在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新表,可以使用MySQL CREATE TABLE語(yǔ)句。 CREATE TABLE語(yǔ)句是MySQL中最復(fù)雜的語(yǔ)句之一。
下面以簡(jiǎn)單的形式來(lái)說(shuō)明CREATE TABLE語(yǔ)句的語(yǔ)法:
CREATE TABLE [IF NOT EXISTS] table_name( column_list) engine=table_type;SQL我們來(lái)更詳細(xì)地來(lái)查看其語(yǔ)法:
- 首先,指定要在CREATE TABLE子句之后創(chuàng)建的表的名稱。表名在數(shù)據(jù)庫(kù)中必須是唯一的。 IF NOT EXISTS是語(yǔ)句的可選部分,允許您檢查正在創(chuàng)建的表是否已存在于數(shù)據(jù)庫(kù)中。 如果是這種情況,MySQL將忽略整個(gè)語(yǔ)句,不會(huì)創(chuàng)建任何新的表。 強(qiáng)烈建議在每個(gè)CREATE TABLE語(yǔ)句中使用IF NOT EXISTS來(lái)防止創(chuàng)建已存在的新表而產(chǎn)生錯(cuò)誤。
- 其次,在column_list部分指定表的列表。字段的列用逗號(hào)(,)分隔。我們將在下一節(jié)中向您展示如何更詳細(xì)地列(字段)定義。
- 第三,需要為engine子句中的表指定存儲(chǔ)引擎。可以使用任何存儲(chǔ)引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明確聲明存儲(chǔ)引擎,MySQL將默認(rèn)使用InnoDB。
注:InnoDB自MySQL 5.5之后成為默認(rèn)存儲(chǔ)引擎。 InnoDB表類型帶來(lái)了諸如ACID事務(wù),引用完整性和崩潰恢復(fù)等關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的諸多好處。在以前的版本中,MySQL使用MyISAM作為默認(rèn)存儲(chǔ)引擎。
要在CREATE TABLE語(yǔ)句中為表定義列,請(qǐng)使用以下語(yǔ)法:
column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] [AUTO_INCREMENT]SQL以上語(yǔ)法中最重要的組成部分是:
- column_name指定列的名稱。每列具有特定數(shù)據(jù)類型和大小,例如:VARCHAR(255)。
- NOT NULL或NULL表示該列是否接受NULL值。
- DEFAULT值用于指定列的默認(rèn)值。
- AUTO_INCREMENT指示每當(dāng)將新行插入到表中時(shí),列的值會(huì)自動(dòng)增加。每個(gè)表都有一個(gè)且只有一個(gè)AUTO_INCREMENT列。
如果要將表的特定列設(shè)置為主鍵,則使用以下語(yǔ)法:
PRIMARY KEY (col1,col2,...)SQLMySQL CREATE TABLE語(yǔ)句示例
下面讓我們練習(xí)一個(gè)例子,在示例數(shù)據(jù)庫(kù)(testdb)中創(chuàng)建一個(gè)名為tasks的新表,如下所示:
可以使用CREATE TABLE語(yǔ)句創(chuàng)建這個(gè)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;SQL在本教程中,您已經(jīng)學(xué)習(xí)了如何使用MySQL CREATE TABLE語(yǔ)句在數(shù)據(jù)庫(kù)中創(chuàng)建新表。
總結(jié)
以上是生活随笔為你收集整理的mysql 创建表_MySQL创建表(十一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 服务器需要指定dns吗,Windows
- 下一篇: linux cmake编译源码,linu