国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL六種約束的示例詳解

瀏覽:135日期:2023-02-18 16:43:45
目錄
  • 什么是約束
  • 外鍵約束

什么是約束

作用于表上的規(guī)則,限制存儲(chǔ)在表中的數(shù)據(jù)

約束分類:

約束描述關(guān)鍵字非空約束該字段數(shù)據(jù)不能為nullNOT NULL唯一約束該字段數(shù)據(jù)唯一不重復(fù)UNIQUE主鍵約束一行數(shù)據(jù)的唯一標(biāo)識(shí)(非空且唯一)PRIMARY KEY默認(rèn)約束未指定該字段值則使用默認(rèn)值DEFAULT檢查約束(8.0.16以后)該字段值滿足某一條件CHECK外鍵約束為兩張表建立連接(數(shù)據(jù)一致、完整)FOREIGN KEY

創(chuàng)建表示例:

CREATE TABLE info(
	`id` INT UNIQUE auto_increment PRIMARY KEY COMMENT"ID唯一標(biāo)識(shí)",
	`name` VARCHAR(10) NOT NULL UNIQUE COMMENT"姓名",
	`age` INT CHECK(age > 0 && age < 120) COMMENT "年齡",
	`status` CHAR(1) DEFAULT"1" COMMENT"狀態(tài)",
	`gender` CHAR(1) COMMENT"性別"
)COMMENT "用戶信息表";

外鍵約束

外鍵通常用來為兩張表建立連接,兩張利用外鍵連接的表被稱為父子表。

子表當(dāng)中會(huì)設(shè)定一個(gè)外鍵字段用于關(guān)聯(lián)父表的主鍵字段

即擁有外鍵的表是子表(從表),該外鍵對(duì)應(yīng)另一個(gè)表的主鍵這個(gè)表稱之為父表

如果沒有設(shè)置外鍵,僅僅是將子表開了一個(gè)字段對(duì)應(yīng)上了父表的主鍵字段在mysql層面是依舊沒有任何關(guān)系的。此時(shí)兩個(gè)表僅存在邏輯關(guān)系,無法保證數(shù)據(jù)的完整性和一致性

創(chuàng)建外鍵語法:

-- 在創(chuàng)建表時(shí)創(chuàng)建
CREATE TABLE son(
	...
	CONSTRAINT [外鍵名稱] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主表主鍵字段名)
);
-- 創(chuàng)建表后為表添加主鍵
ALTER TABLE 表名	ADD CONSTRAINT 外鍵名稱 FOREIGN KEY(外鍵字段名) REFERENCES 主表(主表主鍵字段名)
-- 刪除外鍵
alter table 表名 drop foreign key 外鍵名稱;

創(chuàng)建示例:

# 父表
CREATE TABLE father(
	`id` INT auto_increment PRIMARY KEY COMMENT"父表ID",
	`name` VARCHAR(20) NOT NULL COMMENT"姓名",
	`password` VARCHAR(20) DEFAULT(0000)
);
INSERT INTO father VALUES(null,"小三","1234"),(null,"小四","1234"),(null,"小五","1234"),(null,"小六","1234");
# 子表
CREATE TABLE son(
	`id` INT auto_increment PRIMARY KEY COMMENT"子表ID",
	`status` varchar(10) COMMENT "狀態(tài)",
	`fa_id` INT COMMENT"外鍵",
	CONSTRAINT fk_father_son FOREIGN KEY(fa_id) REFERENCES father(id)
);
INSERT INTO son VALUES(null,"活",2),(null,"活",3),(null,"死",3),(null,"活",2);

上述示例 子表設(shè)置了外鍵,字段名為fa_id并關(guān)聯(lián)到了父表主鍵id,外鍵名稱為fk_father_son

創(chuàng)建完成后,我們添加幾組數(shù)據(jù)。將幾個(gè)son添加到表中,并設(shè)置外鍵字段屬性為某個(gè)father。比如(null,‘活’,3),那么此時(shí)如果我們嘗試去刪除父表id=3的這一行數(shù)據(jù),就會(huì)提示錯(cuò)誤。因?yàn)閮蓚€(gè)表已經(jīng)在mysql層面上進(jìn)行了關(guān)聯(lián)

總結(jié):

  • 從表的外鍵通常是主表的主鍵
  • 從表中外鍵的類型必須與主表中的主鍵類型一致
  • 主表數(shù)據(jù)發(fā)生變化時(shí)應(yīng)注意從表數(shù)據(jù)的一致性問題

到此這篇關(guān)于MySQL六種約束的示例詳解的文章就介紹到這了,更多相關(guān)MySQL六種約束內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MySQL
相關(guān)文章:
主站蜘蛛池模板: 久久福利国产 | 在线观看精品视频网站www | 91久久精品一区二区三区 | 国产精品久久久久久久免费 | 色综合久久久久久 | 美国一级毛片片aaa 美国一级毛片片aa成人 | 亚洲精品天堂自在久久77 | 美女被免费网站在线软件 | 欧美成年视频 | 自拍 欧美 在线 综合 另类 | 日韩 国产 欧美视频一区二区三区 | www.午夜| 三级网站免费 | 窝窝社区在线观看www | 波多野结衣一区二区三区高清在线 | 最新色网址 | 一区二区影视 | 女人一级特纯黄大片色 | 国产精品国产三级在线高清观看 | 亚洲精品欧洲一区二区三区 | 她也啪在线视频精品网站 | 分享一个无毒不卡免费国产 | 精品一区二区三区免费站 | 日韩丝袜美腿 | 国产高清一区二区三区视频 | 在线精品国产 | 伊人蜜桃| 欧美中文一区 | 99久久www免费 | 毛片在线免费播放 | 欧美黑大粗硬毛片视频 | 亚洲3p| 国产欧美日韩另类 | 成人99国产精品 | 99精品网| 日韩免费专区 | 丁香伊人五月综合激激激 | 一级a毛片免费 | 欧美成人精品动漫在线专区 | 在线免费观看国产 | 国产97视频|