日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL—表的完整性约束(外键约束)(一)

發布時間:2025/3/21 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL—表的完整性约束(外键约束)(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、什么是完整性約束?
為防止不符合規范的數據存入數據庫,在用戶對數據進行插入、修改、刪除等操作時,MySQL提供了一種機制來檢查數據庫中的數據是否滿足規定的條件,以保證數據庫中數據的準確性和一致性,這種機制就是完整性約束。
2、什么是外鍵約束?
外鍵約束(FOREIGN KEY,縮寫FK)是用來實現數據庫表的參照完整性的。外鍵約束可以使兩張表緊密的結合起來,特別是針對修改或者刪除的級聯操作時,會保證數據的完整性。
3、什么是外鍵?
外鍵是指表中某個字段的值依賴于另一張表中某個字段的值,而被依賴的字段必須具有主鍵約束或者唯一約束
4、什么是父表?
被依賴的表我們通常稱之為父表或者主表
5、什么是子表?
設置外鍵約束的表稱為子表或者從表

例如:
舉個例子:如果想要表示學生和班級的關系,首先要有學生表和班級表兩張表,然后學生表中有個字段為stu_clazz(該字段表示學生所在的班級),而該字段的取值范圍由班級表中的主鍵cla_no字段(該字段表示班級編號)的取值決定。那么班級表為主表,學生表為從表,且stu_clazz字段是學生表的外鍵。通過stu_clazz字段就建立了學生表和班級表的關系。

主表(父表):班級表 - 班級編號 - 主鍵
從表(子表):學生表 - 班級編號 - 外鍵

錯誤案例

6、先創建父表:班級表

create table t_class(cno int(4) primary key auto_increment,cname varchar(5) not null,room char(4)-- 插入數據 insert into t_class values(null,'c1','1001'),(null,'c2','1002'),(null,'c3','1003');

7、創建子表:學生表

create table t_student(sno int(6) primary key auto_increment,sname varchar(5) not null,classno int(4) ) -- 插入數據 insert into t_student values (null,'張三',1),(null,'李四',1),(null,'王五',2);

需求1:
添加一個學生對應的班級編號為4

insert into t_student values(null,'curry',3);

運行結果:添加成功

需求1出現問題:因為你現在的外鍵約束,沒用語法添加進去,現在只是邏輯上認為班級編號是外鍵,沒有從語法上定義
解決辦法:添加外鍵約束
注意:外鍵約束只有表級約束,沒有列級約束:

正確案例

先創建父表;班級表

create table t_class(cno int(4) primary key auto_increment,cname varchar(5) not null,room char(4))

創建子表,學生表(創建表中添加外鍵約束)

create table t_student(sno int(6) primary key auto_increment,sname varchar(5) not null,classno int(4),constraint fk_stu_classno foreign key (classno) references t_class (cno) )

或者創建子表,學生表(在創建表以后添加外鍵約束)

create table t_student(sno int(6) primary key auto_increment, sname varchar(5) not null, classno int(4) ); -- 在創建表以后添加外鍵約束: alter table t_student add constraint fk_stu_classno foreign key (classno) references t_class (cno)

刪除表的時候,先刪除主表,再刪除從表
需求1:添加一個學生對應的班級編號為4

insert into t_student values(null,'curry',4);

報錯信息:1452 - Cannot add or update a child row: a foreign key constraint fails (mytestdb.t_student, CONSTRAINT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno))

需求2:刪除學生表中學號為3的學生,可以刪除成功,能刪除成功的原因是子表中不存在該數據

delete from t_student where sno=3;

需求3:刪除班級表中班級編號為3的信息

delete from t_class where cno=1;

報錯信息:1451 - Cannot delete or update a parent row: a foreign key constraint fails (mytestdb.t_student, CONSTRAINT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno))

總結

以上是生活随笔為你收集整理的MySQL—表的完整性约束(外键约束)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人aaaaa| 色免费看 | 国产观看 | www.youjizz.com亚洲 | 主播福利在线 | 乳色吐息在线观看 | 黄色一级片黄色一级片 | 国产精品久久久久久久久免费看 | 中文一区在线 | 美女视频黄a视频全免费观看 | 免费污片软件 | 婷婷.com | 美女黄色真播 | av自拍 | 午夜小福利 | 伊人9 | 久久久国产视频 | 四级黄色片 | 激情小说激情视频 | 黄页网站免费在线观看 | 欧美另类高清videos的特点 | 农村少妇久久久久久久 | 蜜桃av噜噜一区二区三区小说 | 51妺嘿嘿午夜福利 | 国产免费二区 | 黄色美女毛片 | 这里只有精品在线观看 | 欧美激情一区二区三区p站 欧美mv日韩mv国产网站app | www.欧美一区二区三区 | 女女同性高清片免费看 | 黑人巨大国产9丨视频 | 一级片高清 | 伊人逼逼 | 欧美在线一二三四区 | 美女扒开腿免费视频 | 99久久精品免费看国产免费软件 | av怡红院| 国产精品久久久久久久久毛片 | 性欧美丰满熟妇xxxx性仙踪林 | 俄罗斯精品一区二区三区 | 久久尹人 | 国产精品无码网站 | 毛片大全在线观看 | www.四虎在线| 四虎新网址 | 男人操女人下面 | 亚洲精品一区久久久久久 | 成人无遮挡 | 国产精品第八页 | 福利网址在线 | 大地资源影视在线播放观看高清视频 | 久久久久久久久久久网站 | 伊人久久久久噜噜噜亚洲熟女综合 | av免费播放| 久久久久久久久久久综合 | 亚洲一区二区在线免费 | 国产精品23p | 日韩在线一区二区三区四区 | 亚洲av人无码激艳猛片服务器 | 日本xxxx免费 | 中出中文字幕 | 最近最新中文字幕 | 免费观看成人av | 丁香花电影免费播放在线观看 | 欧美一级视频在线观看 | 亚洲成人激情视频 | 亚洲性夜 | 97精品在线 | 91精品国产欧美一区二区成人 | 贝利弗山的秘密在线观看 | 最新中文字幕在线视频 | 一区二区视频网 | 脱美女衣服亲摸揉视频 | 中文在线一区二区三区 | 亚洲va在线 | 免费大片黄在线观看视频网站 | 一级黄色播放 | 国产乱女淫av麻豆国产 | 男男做爰猛烈叫床爽爽小说 | 黄瓜视频在线观看污 | 黄色三级视频在线观看 | 性涩av| 国产第四页 | 精品久久久久成人码免费动漫 | 2022天天操 | 男女啪啪软件 | 99精品久久久久久 | 黄网址在线观看 | xnxx国产 | 国产精品美女久久 | 午夜影院a | 日韩色黄大片 | 亚洲GV成人无码久久精品 | 久久视频在线 | 午夜视频h | 国产91高清 | av在线资源观看 | 欧美三级不卡 | 视频福利一区 |