最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫(kù)表約束講解

 更新時(shí)間:2022年06月20日 14:39:32   作者:遛狗大師  
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)表約束講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MySQL數(shù)據(jù)庫(kù)表約束

為了防止往數(shù)據(jù)表中插入錯(cuò)誤的數(shù)據(jù),在MySQL中,定義了一些維護(hù)數(shù)據(jù)庫(kù)完整性的規(guī)則,即表的約束。

常見(jiàn)的表的約束:

上表中列舉的約束條件都是針對(duì)表中字段進(jìn)行限制, 從而保證數(shù)據(jù)表中數(shù)據(jù)的正確性和唯一性。

一、主鍵約束

在MySQL中,為了快速查找表中的某條信息,可以通過(guò)設(shè)置主鍵來(lái)實(shí)現(xiàn)。主鍵約束是通過(guò)PRIMARY KEY定義的,它可以唯一標(biāo)識(shí)表中的記錄,這就好比身份證可以用來(lái)標(biāo)識(shí)人的身份一樣。

在MySQL中,主鍵約束分兩種,具體如下:

1、單字段主鍵

單字段主鍵指的是由一個(gè)字段構(gòu)成的主鍵,其基本語(yǔ)法如下:

上述案例中,表student創(chuàng)建了id、name和grade三個(gè)字段,其中id字段是主鍵。

2、多字段主鍵

多字段主鍵指的是多個(gè)字段組合而成的主鍵,其基本的語(yǔ)法格式如下所示:

上述案例中,表student創(chuàng)建了id、name和grade三個(gè)字段,其中id和name兩個(gè)字段組合可以唯一確定一條記錄。

【補(bǔ)充】一個(gè)表最多可以創(chuàng)建一個(gè)主鍵。

二、外鍵約束

如果表A的主鍵是表B中的字段,則該字段稱為表B的外鍵;另外表A稱為主表,表B稱為從表。外鍵是用來(lái)

實(shí)現(xiàn)參照完整性的,不同的外鍵約束方式將可以使兩張表緊密的結(jié)合起來(lái),特別是修改或刪除的級(jí)聯(lián)操作將使

得日常維護(hù)更輕松。外鍵主要用來(lái)保證數(shù)據(jù)的完整性和一致性。其基本語(yǔ)法如下:

【補(bǔ)充】一個(gè)表允許有多個(gè)外鍵,且外鍵只適用于InnoDB表,MyISAM表不支持外鍵。

InnoDB表和MyISAM表的主要區(qū)別是:InnoDB表支持事務(wù)、行鎖和外鍵,MyISAM不支持;InnoDB表索引式修改效率較MyISAM高,MyISAM表查詢、插入和刪除效率較InnoDB高,而且MyISAM索引和數(shù)據(jù)分離,索引壓縮存儲(chǔ),而InnoDB索引和數(shù)據(jù)緊密結(jié)合,不支持壓縮,所以MyISAM內(nèi)存利用率比InnoDB高;另外MyISAM的移植性也更強(qiáng)。

三、非空約束

非空約束指的是字段的值不能為NULL,在MySQL中,非空約束是通過(guò)NOT NULL定義的,其基本語(yǔ)法

如下:

上述案例中,表student包含id、name和grade三個(gè)字段。其中id為主鍵,name為非空字段。

【補(bǔ)充】一個(gè)表可以有多個(gè)非空約束字段。

四、唯一約束

唯一約束用于保存數(shù)據(jù)表中字段的唯一性,類似于主鍵,即表中字段值不能重復(fù)出現(xiàn)。

唯一約束是通過(guò)UNIQUE定義的,其基本語(yǔ)法如下:

上述案例中,表student包含id、name和grade三個(gè)字段。其中id為主鍵,name字段為唯一值,不能重復(fù)。

【補(bǔ)充】一個(gè)表可以有多個(gè)唯一約束字段。

五、默認(rèn)約束

默認(rèn)約束用于給數(shù)據(jù)表中的字段指定默認(rèn)值,即當(dāng)在表中插入一條新紀(jì)錄時(shí),如果沒(méi)有給這個(gè)字段賦值,那么,數(shù)據(jù)庫(kù)系統(tǒng)會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。

默認(rèn)值是通過(guò)DEFAULT關(guān)鍵字定義的,其基本語(yǔ)法如下:

上述案例中,表student包含id、name和grade三個(gè)字段。其中id為主鍵,grade字段的默認(rèn)值為0。

【補(bǔ)充】一個(gè)表可以有多個(gè)默認(rèn)約束字段。

六、自增約束

在數(shù)據(jù)表中,若想為表中插入新記錄自動(dòng)生成唯一的ID,可以使用AUTO_INCREMENT約束來(lái)實(shí)現(xiàn)。

AUTO_INCREMENT約束的字段可以是任何整數(shù)類型。默認(rèn)情況下,改字段的值是從1開(kāi)始自增的。

其基本語(yǔ)法如下:

上述案例中,表student包含id、name和grade三個(gè)字段。其中id為主鍵,且沒(méi)插入一條新紀(jì)錄,id都會(huì)自動(dòng)增加。

【補(bǔ)充】一個(gè)表只能設(shè)置一個(gè)自增約束字段。

數(shù)據(jù)庫(kù)建表的約束條件

常用約束條件及簡(jiǎn)單介紹

primary key (PK) ? ? ?#標(biāo)識(shí)該字段為該表的主鍵,可以唯一的標(biāo)識(shí)記錄,主鍵就是不為空?? ?且唯一當(dāng)然其還有加速查詢的作用
foreign key (FK) ? ? ?#標(biāo)識(shí)該字段為該表的外鍵,用來(lái)建立表與表的關(guān)聯(lián)關(guān)系
not null ? ? ? ? ? ? ?#標(biāo)識(shí)該字段不能為空
unique key (UK) ? ? ? #標(biāo)識(shí)該字段的值是唯一的
auto_increment ? ? ? ?#標(biāo)識(shí)該字段的值自動(dòng)增長(zhǎng)(整數(shù)類型,而且為主鍵)
default ? ? ? ? ? ? ? #為該字段設(shè)置默認(rèn)值
unsigned ? ? ? ? ? ? ?#將整型設(shè)置為無(wú)符號(hào)即正數(shù)
zerofill ? ? ? ? ? ? ?#不夠使用0進(jìn)行填充

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。           

相關(guān)文章

  • mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    本文主要介紹了mysql?樂(lè)觀鎖和悲觀鎖的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • MySQL中的唯一性約束與NULL詳解

    MySQL中的唯一性約束與NULL詳解

    這里記錄的是很久之前的一個(gè) bug 了,主要給大家介紹了關(guān)于MySQL中唯一性約束與NULL的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • CentOS 6.5下yum安裝 MySQL-5.5全過(guò)程圖文教程

    CentOS 6.5下yum安裝 MySQL-5.5全過(guò)程圖文教程

    在linux安裝mysql是一個(gè)困難的事情,yum安裝一般是安裝的mysql5.1,現(xiàn)在經(jīng)過(guò)自己不懈努力終于能用yum安裝mysql5.5了。下面通過(guò)兩種方法給大家介紹CentOS 6.5下yum安裝 MySQL-5.5全過(guò)程,一起學(xué)習(xí)吧
    2016-05-05
  • mysql installer community 5.7.16安裝詳細(xì)教程

    mysql installer community 5.7.16安裝詳細(xì)教程

    這篇文章主要為大家介紹了mysql installer community 5.7.16安裝詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Mac OS系統(tǒng)下mysql 5.7.20安裝教程圖文詳解

    Mac OS系統(tǒng)下mysql 5.7.20安裝教程圖文詳解

    這篇文章主要介紹了Mac OS系統(tǒng)下mysql 5.7.20安裝教程圖文詳解,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • mysql5.1.26安裝配置方法詳解

    mysql5.1.26安裝配置方法詳解

    這篇文章主要為大家詳細(xì)介紹了mysql安裝配置方法,圖文詳解MySQL5.1.26安裝步驟,感興趣的小伙伴們可以參考一下
    2016-06-06
  • MySQL數(shù)據(jù)權(quán)限的實(shí)現(xiàn)詳情

    MySQL數(shù)據(jù)權(quán)限的實(shí)現(xiàn)詳情

    這篇文章主要介紹了MySQL數(shù)據(jù)權(quán)限的實(shí)現(xiàn)詳情,文章通過(guò)實(shí)際案例,從代碼實(shí)戰(zhàn)的角度來(lái)實(shí)現(xiàn)這樣的一個(gè)數(shù)據(jù)權(quán)限。具體詳細(xì)介紹,具有一定的參考價(jià)值
    2022-08-08
  • MySQL數(shù)據(jù)庫(kù)查看數(shù)據(jù)表占用空間大小和記錄數(shù)的方法

    MySQL數(shù)據(jù)庫(kù)查看數(shù)據(jù)表占用空間大小和記錄數(shù)的方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)查看數(shù)據(jù)表占用空間大小和記錄數(shù)的方法,如果想知道MySQL數(shù)據(jù)庫(kù)中每個(gè)表占用的空間、表記錄的行數(shù)的話,可以打開(kāi)MySQL的information_schema 數(shù)據(jù)庫(kù)查詢,本文就講解查詢方法,需要的朋友可以參考下
    2015-04-04
  • MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02

最新評(píng)論

涟水县| 张掖市| 定南县| 清河县| 藁城市| 东乌珠穆沁旗| 右玉县| 江源县| 阳西县| 平阳县| 泾川县| 余姚市| 峨眉山市| 大余县| 临泽县| 南昌县| 磐安县| 安丘市| 六枝特区| 丰宁| 扎鲁特旗| 鹤峰县| 五家渠市| 普安县| 云浮市| 肥西县| 威宁| 息烽县| 泗水县| 潞城市| 通渭县| 靖安县| 秀山| 贵港市| 乡宁县| 什邡市| 缙云县| 炉霍县| 甘南县| 台江县| 安仁县|