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

MySQL約束類型及舉例介紹

 更新時(shí)間:2018年10月17日 15:08:52   作者:no-96  
今天小編就為大家分享一篇關(guān)于MySQL約束類型及介紹的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

約束 

  • 約束保證數(shù)據(jù)的完整性和一致性
  • 約束分為表級(jí)約束和列級(jí)約束
  • 約束類型包括:NOT NULL (非空約束),PRIMARY KEY(主鍵約束),UNIQUE KEY(唯一約束),DEFAULT(默認(rèn)約束),F(xiàn)OREIGN(外鍵約束)

1.主鍵約束

  • PRIMARY KEY
  • 每張數(shù)據(jù)表只能存在一個(gè)主鍵
  • 主鍵保證記錄的唯一性,主鍵的值不重復(fù)
  • 主鍵自動(dòng)為 NOT NULL

舉例,創(chuàng)建一張student表,將學(xué)號(hào)設(shè)置為主鍵創(chuàng)建完表之后,通過(guò)SHWO COLUMNS FROM student查看表結(jié)構(gòu)

CREATE TABLE student(
id int PRIMARY KEY,
stu_name varchar(20)
);

2.唯一約束

  • UNIQUE KEY
  • 唯一約束可以保證記錄的唯一性
  • 唯一約束的字段可以為空值(NULL)
  • 每張數(shù)據(jù)表可以存在多個(gè)唯一約束

舉例,創(chuàng)建一個(gè)teacher表,id字段自增,tea_name唯一

CREATE TABLE teacher(
id int AUTO_INCREMENT PRIMARY KEY,
tea_name varchar(20) NOT NULL UNIQUE KEY
);

3.默認(rèn)約束

  • DEFAULT
  • 當(dāng)插入記錄時(shí),如果沒(méi)有明確為字段賦值,則自動(dòng)賦予默認(rèn)值

舉例,創(chuàng)建一張course表,默認(rèn)上課時(shí)間為40分鐘

CREATE TABLE course(
id int AUTO_INCREMENT PRIMARY KEY,
cou_name varchar(20) NOT NULL UNIQUE KEY,
time int DEFAULT 40
);
INSERT INTO course(cou_name) values('語(yǔ)文');

4.非空約束

  • NOT NULL
  • 強(qiáng)制列不能為 NULL 值,約束強(qiáng)制字段始終包含值。
  • 這意味著,如果不向字段添加值,就無(wú)法插入新記錄或者更新記錄。

舉例,在 "Persons" 表創(chuàng)建時(shí)在 Id列、name列創(chuàng)建 not null 約束:

create table Persons(
id int not NULL,
p_name varchar(20) not null, 
deparment varchar(20),
address varchar(20),
telNum varchar(20)
)
DESC Persons;

5.外鍵約束

  • FOREIGN KEY
  • 保持?jǐn)?shù)據(jù)的一致性,完整性
  • 實(shí)現(xiàn)1對(duì)1或1對(duì)n關(guān)系

1.父表與子表必須使用相同的存儲(chǔ)引擎,而且禁止使用臨時(shí)表。
2.數(shù)據(jù)表的存儲(chǔ)引擎只能是InnoDB
3.外鍵列和參照列必須具有相似的數(shù)據(jù)類型。其中數(shù)字的長(zhǎng)度或是否有符號(hào)位必須相同;而字符的長(zhǎng)度則可以不同。
4.外鍵列和參照列必須創(chuàng)建索引。如果外鍵列不存在索引的話,MySQL將自動(dòng)創(chuàng)建索引。

CREATE TABLE school(
id int AUTO_INCREMENT PRIMARY KEY,
sname varchar(20) NOT NULL
);
CREATE TABLE student2(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id)
);

外鍵約束的參照操作

  • CASCADE : 從父表刪除或更新且自動(dòng)刪除或更新子表中匹配的行
  • 父表中被引用的列刪除了某個(gè)數(shù)據(jù),子表中刪除對(duì)應(yīng)數(shù)據(jù)的行
CREATE TABLE student3(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id) ON DELETE CASCADE
);
  • SET NULL:從父表刪除或更新行,并設(shè)置子表的外鍵列為NULL。如果使用該項(xiàng),必須保證子表列沒(méi)有指定NOT NULL
  • 父表中刪除數(shù)據(jù),將子表中的引用設(shè)置為NULL
  • RESTRICT:拒絕對(duì)父表的刪除或更新操作
  • NO ACTION:標(biāo)準(zhǔn)SQL的關(guān)鍵字,在MySQL中與RESTRICT相同

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • MySQL底層數(shù)據(jù)結(jié)構(gòu)選用B+樹的原因

    MySQL底層數(shù)據(jù)結(jié)構(gòu)選用B+樹的原因

    大家好,本篇文章主要講的是MySQL底層數(shù)據(jù)結(jié)構(gòu)選用B+樹的原因,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Mysql常用函數(shù)大全(分類匯總講解)

    Mysql常用函數(shù)大全(分類匯總講解)

    今天小編就為大家分享一篇關(guān)于Mysql常用函數(shù)大全(分類匯總講解),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 詳解 Mysql中的delimiter定義及作用

    詳解 Mysql中的delimiter定義及作用

    delimiter是mysql分隔符,在mysql客戶端中分隔符默認(rèn)是分號(hào)(;)。如果一次輸入的語(yǔ)句較多,并且語(yǔ)句中間有分號(hào),這時(shí)需要新指定一個(gè)特殊的分隔符。這篇文章給大家介紹了Mysql中的delimiter的作用,感興趣的朋友一起看看吧
    2018-09-09
  • MySQL觸發(fā)器概念、原理與用法詳解

    MySQL觸發(fā)器概念、原理與用法詳解

    這篇文章主要介紹了MySQL觸發(fā)器概念、原理與用法,結(jié)合實(shí)例形勢(shì)詳細(xì)分析了mysql觸發(fā)器相關(guān)概念、原理、創(chuàng)建、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • MySQL中的聚合查詢和聯(lián)合查詢操作代碼

    MySQL中的聚合查詢和聯(lián)合查詢操作代碼

    這篇文章主要介紹了MySQL中的聚合查詢和聯(lián)合查詢操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • MySQL使用觸發(fā)器如何實(shí)現(xiàn)CHECK檢查約束的功能

    MySQL使用觸發(fā)器如何實(shí)現(xiàn)CHECK檢查約束的功能

    這篇文章主要介紹了MySQL使用觸發(fā)器如何實(shí)現(xiàn)CHECK檢查約束的功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 淺談為什么MySQL不建議delete刪除數(shù)據(jù)

    淺談為什么MySQL不建議delete刪除數(shù)據(jù)

    這篇文章主要介紹了淺談為什么MySQL不建議delete刪除數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 深入理解MySQL?varchar(50)

    深入理解MySQL?varchar(50)

    日常開發(fā)中,數(shù)據(jù)庫(kù)建表是必不可少的一個(gè)環(huán)節(jié),建表的時(shí)候通常會(huì)看到設(shè)定某個(gè)字段的長(zhǎng)度為varchar(50),那么你知道是什么意思嗎,感興趣的可以了解一下
    2024-01-01
  • Java連接MySql的詳細(xì)介紹

    Java連接MySql的詳細(xì)介紹

    本篇文章主要是對(duì)Java連接MySql的詳細(xì)介紹。需要的朋友參考下
    2013-04-04
  • MySQL普通索引與唯一索引的使用與區(qū)別

    MySQL普通索引與唯一索引的使用與區(qū)別

    本文主要介紹了MySQL普通索引與唯一索引的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

靖江市| 禄丰县| 康定县| 康定县| 平度市| 屯留县| 弥渡县| 广平县| 法库县| 襄垣县| 桂平市| 岑巩县| 万安县| 江油市| 延安市| 石景山区| 中江县| 和静县| 广西| 寿阳县| 准格尔旗| 彭阳县| 焉耆| 葵青区| 揭东县| 西林县| 河津市| 宽甸| 旺苍县| 固始县| 庆云县| 乐业县| 三明市| 从江县| 广东省| 红桥区| 衡阳县| 岱山县| 哈密市| 舒兰市| 榕江县|