久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL約束類(lèi)型的示例分析

共計(jì) 1770 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

這篇文章主要介紹 MySQL 約束類(lèi)型的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

約束  

約束保證數(shù)據(jù)的完整性和一致性

約束分為表級(jí)約束和列級(jí)約束

約束類(lèi)型包括: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ù)類(lèi)型。其中數(shù)字的長(zhǎng)度或是否有符號(hào)位必須相同;而字符的長(zhǎng)度則可以不同。
4. 外鍵列和參照列必須創(chuàng)建索引。如果外鍵列不存在索引的話(huà),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 相同

以上是“MySQL 約束類(lèi)型的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計(jì)1770字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 临泽县| 四川省| 瓮安县| 咸阳市| 诸城市| 青神县| 封开县| 鄂州市| 平湖市| 阳高县| 麟游县| 高淳县| 镶黄旗| 澄城县| 友谊县| 梓潼县| 梅河口市| 白朗县| 穆棱市| 高青县| 年辖:市辖区| 集贤县| 萝北县| 永春县| 中江县| 仁化县| 太康县| 上思县| 兰考县| 齐河县| 临泉县| 呼伦贝尔市| 湛江市| 乌拉特前旗| 临海市| 家居| 朝阳市| 福清市| 临清市| 嘉黎县| 咸丰县|