溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL中常見的約束有哪些

發(fā)布時(shí)間:2022-02-16 10:12:48 來源:億速云 閱讀:108 作者:iii 欄目:開發(fā)技術(shù)

這篇“MySQL中常見的約束有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“MySQL中常見的約束有哪些”文章吧。

MySQL中常見的約束有哪些

1、非空約束(not null)

非空約束用于確保當(dāng)前列的值不為空值,非空約束只能出現(xiàn)在表對(duì)象的列上。

Null類型特征:所有的類型的值都可以是null,包括int、float 等數(shù)據(jù)類型

2、唯一性約束(unique)

唯一約束是指定table的列或列組合不能重復(fù),保證數(shù)據(jù)的唯一性。

唯一約束不允許出現(xiàn)重復(fù)的值,但是可以為多個(gè)null。

同一個(gè)表可以有多個(gè)唯一約束,多個(gè)列組合的約束。

在創(chuàng)建唯一約束時(shí),如果不給唯一約束名稱,就默認(rèn)和列名相同。

唯一約束不僅可以在一個(gè)表內(nèi)創(chuàng)建,而且可以同時(shí)多表創(chuàng)建組合唯一約束。

3、主鍵約束(primary key) PK

主鍵約束相當(dāng)于 唯一約束 + 非空約束 的組合,主鍵約束列不允許重復(fù),也不允許出現(xiàn)空值。

每個(gè)表最多只允許一個(gè)主鍵,建立主鍵約束可以在列級(jí)別創(chuàng)建,也可以在表級(jí)別創(chuàng)建。

當(dāng)創(chuàng)建主鍵的約束時(shí),系統(tǒng)默認(rèn)會(huì)在所在的列和列組合上建立對(duì)應(yīng)的唯一索引。

4、外鍵約束(foreign key) FK

外鍵約束是用來加強(qiáng)兩個(gè)表(主表和從表)的一列或多列數(shù)據(jù)之間的連接的,可以保證一個(gè)或兩個(gè)表之間的參照完整性,外鍵是構(gòu)建于一個(gè)表的兩個(gè)字段或是兩個(gè)表的兩個(gè)字段之間的參照關(guān)系。

創(chuàng)建外鍵約束的順序是先定義主表的主鍵,然后定義從表的外鍵。也就是說只有主表的主鍵才能被從表用來作為外鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。

5、默認(rèn)值約束 (Default)

若在表中定義了默認(rèn)值約束,用戶在插入新的數(shù)據(jù)行時(shí),如果該行沒有指定數(shù)據(jù),那么系統(tǒng)將默認(rèn)值賦給該列,如果我們不設(shè)置默認(rèn)值,系統(tǒng)默認(rèn)為NULL。

6、自增約束(AUTO_INCREMENT)

自增約束(AUTO_INCREMENT)可以約束任何一個(gè)字段,該字段不一定是PRIMARY KEY字段,也就是說自增的字段并不等于主鍵字段。

但是PRIMARY_KEY約束的主鍵字段,一定是自增字段,即PRIMARY_KEY 要與AUTO_INCREMENT一起作用于同一個(gè)字段。

當(dāng)插入第一條記錄時(shí),自增字段沒有給定一個(gè)具體值,可以寫成DEFAULT/NULL,那么以后插入字段的時(shí)候,該自增字段就是從1開始,沒插入一條記錄,該自增字段的值增加1。當(dāng)插入第一條記錄時(shí),給自增字段一個(gè)具體值,那么以后插入的記錄在此自增字段上的值,就在第一條記錄該自增字段的值的基礎(chǔ)上每次增加1。

也可以在插入記錄的時(shí)候,不指定自增字段,而是指定其余字段進(jìn)行插入記錄的操作。

以上就是關(guān)于“MySQL中常見的約束有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI