@[toc]
MySQL約束概述
MySQL約束是一種限制屎债,它通過限制表中的數(shù)據(jù)仅政,來確保數(shù)據(jù)的完整性和唯一性。使用約束來限定表中的數(shù)據(jù)是很有必要的盆驹。
在 MySQL 中圆丹,約束是指對表中數(shù)據(jù)的一種約束,能夠幫助數(shù)據(jù)庫管理員更好地管理數(shù)據(jù)庫躯喇,并且能夠確保數(shù)據(jù)庫中數(shù)據(jù)的正確性和有效性辫封。
- 例如,在數(shù)據(jù)表中存放年齡的值時(shí)廉丽,如果存入 200倦微、300 這些無效的值就毫無意義了。因此正压,使用約束來限定表中的數(shù)據(jù)范圍是很有必要的欣福。
在 MySQL 中,主要支持以下 6 種約束:
主鍵約束(PRIMARY KEY)
主鍵(PRIMARY KEY)的完整稱呼是“主鍵約束”蔑匣,是 MySQL 中使用最為頻繁的約束。一般情況下棕诵,為了便于 DBMS 更快的查找到表中的記錄裁良,都會在表中設(shè)置一個(gè)主鍵。主鍵是表的一個(gè)特殊字段校套,該字段能唯一標(biāo)識該表中的每條信息价脾。例如,學(xué)生信息表中的學(xué)號是唯一的笛匙。
主鍵分為單字段主鍵和多字段聯(lián)合主鍵侨把,
使用主鍵應(yīng)注意以下幾點(diǎn):
- 每個(gè)表只能定義一個(gè)主鍵犀变。
- 主鍵值必須唯一標(biāo)識表中的每一行,且不能為 NULL秋柄,即表中不可能存在有相同主鍵值的兩行數(shù)據(jù)获枝。這是唯一性原則。
- 一個(gè)字段名只能在聯(lián)合主鍵字段表中出現(xiàn)一次骇笔。
- 聯(lián)合主鍵不能包含不必要的多余字段省店。當(dāng)把聯(lián)合主鍵的某一字段刪除后,如果剩下的字段構(gòu)成的主鍵仍然滿足唯一性原則笨触,那么這個(gè)聯(lián)合主鍵是不正確的懦傍。這是最小化原則。
在創(chuàng)建表時(shí)設(shè)置主鍵約束
在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置主鍵約束芦劣,既可以為表中的一個(gè)字段設(shè)置主鍵粗俱,也可以為表中多個(gè)字段設(shè)置聯(lián)合主鍵。但是不論使用哪種方法虚吟,在一個(gè)表中主鍵只能有一個(gè)寸认。
設(shè)置單字段主鍵
在 CREATE TABLE 語句中,通過 PRIMARY KEY 關(guān)鍵字來指定主鍵稍味。
在定義字段的同時(shí)指定主鍵废麻,語法格式如下:
<字段名> <數(shù)據(jù)類型> PRIMARY KEY [默認(rèn)值]
例子:在 test_db 數(shù)據(jù)庫中創(chuàng)建 tb_emp3 數(shù)據(jù)表,其主鍵為 id模庐,SQL 語句和運(yùn)行結(jié)果如下烛愧。
mysql> CREATE TABLE tb_emp3
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
或者是在定義完所有字段之后指定主鍵,語法格式如下:
[CONSTRAINT <約束名>] PRIMARY KEY [字段名]
例子:在 test_db 數(shù)據(jù)庫中創(chuàng)建 tb_emp4 數(shù)據(jù)表掂碱,其主鍵為 id怜姿,SQL 語句和運(yùn)行結(jié)果如下。
mysql> CREATE TABLE tb_emp4
-> (
-> id INT(11),
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
設(shè)置聯(lián)合主鍵
所謂的聯(lián)合主鍵疼燥,就是這個(gè)主鍵是由一張表中多個(gè)字段組成的沧卢。
- 比如,設(shè)置學(xué)生選課數(shù)據(jù)表時(shí)醉者,使用學(xué)生編號做主鍵還是用課程編號做主鍵呢但狭?如果用學(xué)生編號做主鍵,那么一個(gè)學(xué)生就只能選擇一門課程撬即。如果用課程編號做主鍵立磁,那么一門課程只能有一個(gè)學(xué)生來選。顯然剥槐,這兩種情況都是不符合實(shí)際情況的唱歧。
- 實(shí)際上設(shè)計(jì)學(xué)生選課表,要限定的是一個(gè)學(xué)生只能選擇同一課程一次。因此颅崩,學(xué)生編號和課程編號可以放在一起共同作為主鍵几于,這也就是聯(lián)合主鍵了。
主鍵由多個(gè)字段聯(lián)合組成沿后,語法格式如下:
PRIMARY KEY [字段1沿彭,字段2,…,字段n]
注意:當(dāng)主鍵是由多個(gè)字段組成時(shí)得运,不能直接在字段名后面聲明主鍵約束膝蜈。
例子:創(chuàng)建數(shù)據(jù)表 tb_emp5,假設(shè)表中沒有主鍵 id熔掺,為了唯一確定一個(gè)員工饱搏,可以把 name、deptId 聯(lián)合起來作為主鍵置逻,SQL 語句和運(yùn)行結(jié)果如下推沸。
mysql> CREATE TABLE tb_emp5
-> (
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> PRIMARY KEY(id,deptId)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp5;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name | varchar(25) | NO | PRI | NULL | |
| deptId | int(11) | NO | PRI | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)
在修改表時(shí)添加主鍵約束
主鍵約束不僅可以在創(chuàng)建表的同時(shí)創(chuàng)建,也可以在修改表時(shí)添加券坞。但是需要注意的是鬓催,設(shè)置成主鍵約束的字段中不允許有空值。
在修改數(shù)據(jù)表時(shí)添加主鍵約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名> ADD PRIMARY KEY(<字段名>);
查看 tb_emp2 數(shù)據(jù)表的表結(jié)構(gòu)恨锚,SQL 語句和運(yùn)行結(jié)果如下所示宇驾。
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | varchar(30) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
例子:修改數(shù)據(jù)表 tb_emp2,將字段 id 設(shè)置為主鍵猴伶,SQL 語句和運(yùn)行結(jié)果如下课舍。
mysql> ALTER TABLE tb_emp2
-> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)
通常,當(dāng)在修改表時(shí)要設(shè)置表中某個(gè)字段的主鍵約束時(shí)他挎,要確保設(shè)置成主鍵約束的字段中值不能夠有重復(fù)的筝尾,并且要保證是非空的。否則無法設(shè)置主鍵約束办桨。
刪除主鍵約束
當(dāng)一個(gè)表中不需要主鍵約束時(shí)筹淫,就需要從表中將其刪除。刪除主鍵約束的方法要比創(chuàng)建主鍵約束容易的多呢撞。
刪除主鍵約束的語法格式如下所示:
ALTER TABLE <數(shù)據(jù)表名> DROP PRIMARY KEY;
例子:刪除 tb_emp2 表中的主鍵約束损姜,SQL 語句和運(yùn)行結(jié)果如下。
mysql> ALTER TABLE tb_emp2
-> DROP PRIMARY KEY;
Query OK, 0 rows affected (0.94 sec)
Records: 0 Duplicates: 0 Warnings: 0
由于主鍵約束在一個(gè)表中只能有一個(gè)殊霞,因此不需要指定主鍵名就可以刪除一個(gè)表中的主鍵約束摧阅。
MySQL 主鍵自增長
在 MySQL 中,當(dāng)主鍵定義為自增長后脓鹃,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了逸尖,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值古沥。每增加一條記錄瘸右,主鍵會自動以相同的步長進(jìn)行增長。
通過給字段添加 AUTO_INCREMENT 屬性來實(shí)現(xiàn)主鍵自增長。語法格式如下:
字段名 數(shù)據(jù)類型 AUTO_INCREMENT
- 默認(rèn)情況下呛哟,AUTO_INCREMENT 的初始值是 1癣诱,每新增一條記錄,字段值自動加 1龄章。
- 一個(gè)表中只能有一個(gè)字段使用 AUTO_INCREMENT 約束吃谣,且該字段必須有唯一索引,以避免序號重復(fù)(即為主鍵或主鍵的一部分)做裙。
- AUTO_INCREMENT 約束的字段必須具備 NOT NULL 屬性岗憋。
- AUTO_INCREMENT 約束的字段只能是整數(shù)類型(TINYINT、SMALLINT锚贱、INT仔戈、BIGINT 等)。
- AUTO_INCREMENT 約束字段的最大值受該字段的數(shù)據(jù)類型約束拧廊,如果達(dá)到上限监徘,AUTO_INCREMENT 就會失效。
注意:加上 AUTO_INCREMENT 約束條件后吧碾,字段中的每個(gè)值都是自動增加的凰盔。因此,這個(gè)字段不可能出現(xiàn)相同的值倦春。通常情況下户敬,AUTO_INCREMENT 都是作為 id 字段的約束條件,并且將 id 字段作為表的主鍵溅漾。
指定自增字段初始值
如果第一條記錄設(shè)置了該字段的初始值山叮,那么新增加的記錄就從這個(gè)初始值開始自增。
- 例如添履,如果表中插入的第一條記錄的 id 值設(shè)置為 5屁倔,那么再插入記錄時(shí),id 值就會從 5 開始往上增加暮胧。
外鍵約束
MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段锐借,經(jīng)常與主鍵約束一起使用。對于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言往衷,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表)钞翔,外鍵所在的表就是從表(子表)。
外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系席舍,為兩個(gè)表的數(shù)據(jù)建立連接布轿,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性。
- 比如,一個(gè)水果攤汰扭,只有蘋果稠肘、桃子、李子萝毛、西瓜等 4 種水果项阴,那么,你來到水果攤要買水果就只能選擇蘋果笆包、桃子环揽、李子和西瓜,其它的水果不能購買的庵佣。
主表刪除某條記錄時(shí)歉胶,從表中與之對應(yīng)的記錄也必須有相應(yīng)的改變。一個(gè)表可以有一個(gè)或多個(gè)外鍵巴粪,外鍵可以為空值跨扮,若不為空值,則每一個(gè)外鍵的值必須等于主表中主鍵的某個(gè)值验毡。
定義外鍵時(shí)衡创,需要遵守下列規(guī)則:
- 主表必須已經(jīng)存在于數(shù)據(jù)庫中,或者是當(dāng)前正在創(chuàng)建的表晶通。如果是后一種情況璃氢,則主表與從表是同一個(gè)表,這樣的表稱為自參照表狮辽,結(jié)構(gòu)稱為自參照完整性一也。
- 必須為主表定義主鍵。
- 主鍵不能包含空值喉脖,但允許在外鍵中出現(xiàn)空值椰苟。也就是說,只要外鍵的每個(gè)非空值出現(xiàn)在指定的主鍵中树叽,這個(gè)外鍵的內(nèi)容就是正確的舆蝴。
- 在主表的表名后面指定列名或列名的組合。這個(gè)列或列的組合必須是主表的主鍵或候選鍵题诵。
- 外鍵中列的數(shù)目必須和主表的主鍵中列的數(shù)目相同洁仗。
- 外鍵中列的數(shù)據(jù)類型必須和主表主鍵中對應(yīng)列的數(shù)據(jù)類型相同。
在創(chuàng)建表時(shí)設(shè)置外鍵約束
在 CREATE TABLE 語句中性锭,通過 FOREIGN KEY 關(guān)鍵字來指定外鍵赠潦,具體的語法格式如下:
[CONSTRAINT <外鍵名>] FOREIGN KEY 字段名 [,字段名2草冈,…]
REFERENCES <主表名> 主鍵列1 [她奥,主鍵列2瓮增,…]
注意:從表的外鍵關(guān)聯(lián)的必須是主表的主鍵,且主鍵和外鍵的數(shù)據(jù)類型必須一致哩俭。例如钉赁,兩者都是 INT 類型,或者都是 CHAR 類型携茂。如果不滿足這樣的要求,在創(chuàng)建從表時(shí)诅岩,就會出現(xiàn)“ERROR 1005(HY000): Can't create table”錯(cuò)誤讳苦。
在修改表時(shí)添加外鍵約束
外鍵約束也可以在修改表時(shí)添加,但是添加外鍵約束的前提是:從表中外鍵列中的數(shù)據(jù)必須與主表中主鍵列中的數(shù)據(jù)一致或者是沒有數(shù)據(jù)吩谦。
在修改數(shù)據(jù)表時(shí)添加外鍵約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名> ADD CONSTRAINT <外鍵名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
注意:在為已經(jīng)創(chuàng)建好的數(shù)據(jù)表添加外鍵約束時(shí)鸳谜,要確保添加外鍵約束的列的值全部來源于主鍵列,并且外鍵列不能為空式廷。
刪除外鍵約束
當(dāng)一個(gè)表中不需要外鍵約束時(shí)咐扭,就需要從表中將其刪除。外鍵一旦刪除滑废,就會解除主表和從表間的關(guān)聯(lián)關(guān)系蝗肪。
刪除外鍵約束的語法格式如下所示:
ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>;
唯一約束
MySQL 唯一約束(Unique Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn)。
- 例如蠕趁,為 id 字段加上唯一性約束后薛闪,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復(fù)的情況俺陋。如果其中一條記錄的 id 值為‘0001’豁延,那么該表中就不能出現(xiàn)另一條記錄的 id 值也為‘0001’。
唯一約束與主鍵約束相似的是它們都可以確保列的唯一性腊状。不同的是诱咏,唯一約束在一個(gè)表中可有多個(gè),并且設(shè)置唯一約束的列允許有空值缴挖,但是只能有一個(gè)空值袋狞。而主鍵約束在一個(gè)表中只能有一個(gè),且不允許有空值映屋。比如硕并,在用戶信息表中,為了避免表中用戶名重名秧荆,可以把用戶名設(shè)置為唯一約束倔毙。
在創(chuàng)建表時(shí)設(shè)置唯一約束
唯一約束可以在創(chuàng)建表時(shí)直接設(shè)置,通常設(shè)置在除了主鍵以外的其它列上乙濒。
在定義完列之后直接使用 UNIQUE 關(guān)鍵字指定唯一約束陕赃,語法格式如下:
<字段名> <數(shù)據(jù)類型> UNIQUE
在修改表時(shí)添加唯一約束
在修改表時(shí)添加唯一約束的語法格式為:
ALTER TABLE <數(shù)據(jù)表名> ADD CONSTRAINT <唯一約束名> UNIQUE(<列名>);
刪除唯一約束
在 MySQL 中刪除唯一約束的語法格式如下:
ALTER TABLE <表名> DROP INDEX <唯一約束名>;
檢查約束
MySQL 檢查約束(CHECK)是用來檢查數(shù)據(jù)表中字段值有效性的一種手段卵蛉,可以通過 CREATE TABLE 或 ALTER TABLE 語句實(shí)現(xiàn)。設(shè)置檢查約束時(shí)要根據(jù)實(shí)際情況進(jìn)行設(shè)置么库,這樣能夠減少無效數(shù)據(jù)的輸入傻丝。
- 例如,學(xué)生信息表中的年齡字段是沒有負(fù)數(shù)的诉儒,并且數(shù)值也是有限制的葡缰。如果是大學(xué)生,年齡一般應(yīng)該在 18~30 歲之間忱反。在設(shè)置字段的檢查約束時(shí)要根據(jù)實(shí)際情況進(jìn)行設(shè)置泛释,這樣能夠減少無效數(shù)據(jù)的輸入。
選取設(shè)置檢查約束的字段
檢查約束使用 CHECK 關(guān)鍵字温算,具體的語法格式如下:
CHECK <表達(dá)式>
其中怜校,“表達(dá)式”指的就是 SQL 表達(dá)式,用于指定需要檢查的限定條件注竿。
若將 CHECK 約束子句置于表中某個(gè)列的定義之后茄茁,則這種約束也稱為基于列的 CHECK 約束。
在更新表數(shù)據(jù)的時(shí)候巩割,系統(tǒng)會檢查更新后的數(shù)據(jù)行是否滿足 CHECK 約束中的限定條件裙顽。MySQL 可以使用簡單的表達(dá)式來實(shí)現(xiàn) CHECK 約束,也允許使用復(fù)雜的表達(dá)式作為限定條件宣谈,例如在限定條件中加入子查詢锦庸。
注意:若將 CHECK 約束子句置于所有列的定義以及主鍵約束和外鍵定義之后,則這種約束也稱為基于表的 CHECK 約束蒲祈。該約束可以同時(shí)對表中多個(gè)列設(shè)置限定條件甘萧。
在創(chuàng)建表時(shí)設(shè)置檢查約束
一般情況下,如果系統(tǒng)的表結(jié)構(gòu)已經(jīng)設(shè)計(jì)完成梆掸,那么在創(chuàng)建表時(shí)就可以為字段設(shè)置檢查約束了扬卷。
創(chuàng)建表時(shí)設(shè)置檢查約束的語法格式如下:
CHECK(<檢查約束>)
在修改表時(shí)添加檢查約束
如果一個(gè)表創(chuàng)建完成,可以通過修改表的方式為表添加檢查約束酸钦。
修改表時(shí)設(shè)置檢查約束的語法格式如下:
ALTER TABLE tb_emp7 ADD CONSTRAINT <檢查約束名> CHECK(<檢查約束>)
刪除檢查約束
修改表時(shí)刪除檢查約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名> DROP CONSTRAINT <檢查約束名>;
非空約束
MySQL 非空約束(NOT NULL)指字段的值不能為空怪得。對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時(shí)沒有指定值卑硫,數(shù)據(jù)庫系統(tǒng)就會報(bào)錯(cuò)徒恋。可以通過 CREATE TABLE 或 ALTER TABLE 語句實(shí)現(xiàn)欢伏。在表中某個(gè)列的定義后加上關(guān)鍵字 NOT NULL 作為限定詞入挣,來約束該列的取值不能為空。
- 比如硝拧,在用戶信息表中径筏,如果不添加用戶名葛假,那么這條用戶信息就是無效的,這時(shí)就可以為用戶名字段設(shè)置非空約束滋恬。
在創(chuàng)建表時(shí)設(shè)置非空約束
創(chuàng)建表時(shí)可以使用 NOT NULL 關(guān)鍵字設(shè)置非空約束聊训,具體的語法格式如下:
<字段名> <數(shù)據(jù)類型> NOT NULL;
在修改表時(shí)添加非空約束
如果在創(chuàng)建表時(shí)忘記了為字段設(shè)置非空約束,也可以通過修改表進(jìn)行非空約束的添加恢氯。
修改表時(shí)設(shè)置非空約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名>
CHANGE COLUMN <字段名>
<字段名> <數(shù)據(jù)類型> NOT NULL;
刪除非空約束
修改表時(shí)刪除非空約束的語法規(guī)則如下:
ALTER TABLE <數(shù)據(jù)表名>
CHANGE COLUMN <字段名> <字段名> <數(shù)據(jù)類型> NULL;
默認(rèn)值約束
默認(rèn)值(Default)的完整稱呼是“默認(rèn)值約束(Default Constraint)”带斑,用來指定某列的默認(rèn)值。在表中插入一條新記錄時(shí)勋拟,如果沒有為某個(gè)字段賦值勋磕,系統(tǒng)就會自動為這個(gè)字段插入默認(rèn)值。
- 例如指黎,員工信息表中,部門位置在北京的較多州丹,那么部門位置就可以默認(rèn)為“北京”醋安,系統(tǒng)就會自動為這個(gè)字段賦值為“北京”。
默認(rèn)值約束通常用在已經(jīng)設(shè)置了非空約束的列墓毒,這樣能夠防止數(shù)據(jù)表在錄入數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤吓揪。
在創(chuàng)建表時(shí)設(shè)置默認(rèn)值約束
創(chuàng)建表時(shí)可以使用 DEFAULT 關(guān)鍵字設(shè)置默認(rèn)值約束,具體的語法格式如下:
<字段名> <數(shù)據(jù)類型> DEFAULT <默認(rèn)值>;
其中所计,“默認(rèn)值”為該字段設(shè)置的默認(rèn)值柠辞,如果是字符類型的,要用單引號括起來主胧。
注意:在創(chuàng)建表時(shí)為列添加默認(rèn)值叭首,可以一次為多個(gè)列添加默認(rèn)值,需要注意不同列的數(shù)據(jù)類型踪栋。
在修改表時(shí)添加默認(rèn)值約束
修改表時(shí)添加默認(rèn)值約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名>
CHANGE COLUMN <字段名> <數(shù)據(jù)類型> DEFAULT <默認(rèn)值>;
刪除默認(rèn)值約束
當(dāng)一個(gè)表中的列不需要設(shè)置默認(rèn)值時(shí)焙格,就需要從表中將其刪除。
修改表時(shí)刪除默認(rèn)值約束的語法格式如下:
ALTER TABLE <數(shù)據(jù)表名>
CHANGE COLUMN <字段名> <字段名> <數(shù)據(jù)類型> DEFAULT NULL;
MySQL查看表中的約束
在 MySQL 中可以使用 SHOW CREATE TABLE 語句來查看表中的約束夷都。
查看數(shù)據(jù)表中的約束語法格式如下:
SHOW CREATE TABLE <數(shù)據(jù)表名>;