亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

深入淺析MySQL從刪庫到跑路_高級(一)——數(shù)據(jù)完整性

2024-07-25 19:09:13
字體:
供稿:網(wǎng)友

一、數(shù)據(jù)完整性簡介

1、數(shù)據(jù)完整性簡介

數(shù)據(jù)冗余是指數(shù)據(jù)庫中存在一些重復的數(shù)據(jù),數(shù)據(jù)完整性是指數(shù)據(jù)庫中的數(shù)據(jù)能夠正確反應實際情況。

數(shù)據(jù)完整性是指數(shù)據(jù)的可靠性和準確性,數(shù)據(jù)完整性類型有四種:

A、實體完整性:實體的完整性強制表的標識符列或主鍵的完整性(通過唯一約束,主鍵約束或標識列屬性)。

B、域完整性:限制類型(數(shù)據(jù)類型),格式(通過檢查約束和規(guī)則),可能值范圍(通過外鍵約束,檢查約束,默認值定義,非空約束和規(guī)則)。

C、引用完整性:在刪除和輸入記錄時,引用完整性保持表之間已定義的關系。引用完整性確保鍵值在所有表中一致,不能引用不存在的值。如果一個鍵。

D、定義完整性:用戶自己定義的業(yè)務規(guī)則,比如使用觸發(fā)器實現(xiàn)自定義業(yè)務規(guī)則。

MySQL,刪庫,數(shù)據(jù)完整性

2、數(shù)據(jù)完整性實現(xiàn)方式

MySQL,刪庫,數(shù)據(jù)完整性

MySQL不支持Check約束,雖然可以在列上添加check約束,但不起作用。

二、實體完整性實現(xiàn)

1、實體完整性的實現(xiàn)簡介

實體完整性的實現(xiàn)有兩種方式:

A、主鍵約束:一張表只能有一列設置主鍵,值必須唯一,不允許為空,innoDB存儲引擎,主鍵就是索引。

B、唯一值約束:一張表可以有多個列添加唯一值約束,一直允許一條記錄為空值。

實體完整性,由主鍵和唯一性約束來實現(xiàn),確保表中記錄有一列唯一標識。主鍵又分為Primary key和AUTO_INCREMENT PRIMARY KEY兩種。

2、主鍵

MySQL的主鍵名總是PRIMARY,當創(chuàng)建主鍵約束時,如果表的存儲引擎是innoDB,系統(tǒng)默認會在所在的列和列組合上建立對應的唯一索引,

主鍵約束相當于唯一約束與非空約束的組合,主鍵約束列不允許重復,也不允許出現(xiàn)空值;多列組合的主鍵約束,列都不允許為空值,并且組合的值不允許重復。每個表最多只允許一個主鍵,建立主鍵約束可以在列級別創(chuàng)建,也可以在表級別上創(chuàng)建。

A、創(chuàng)建表時指定主鍵

創(chuàng)建表時指定主鍵的方式一:

create table product ( productID int PRIMARY KEY, pName VARCHAR(10), price DOUBLE )ENGINE=MyISAM default CHARSET=utf8;

創(chuàng)建表時指定主鍵的方式二:

create table product ( productID int, pName VARCHAR(10), price DOUBLE, CONSTRAINT pk_s_productID PRIMARY KEY(productID) )ENGINE=MyISAM default CHARSET=utf8;

在指定主鍵的表中插入記錄時,不允許插入重復ID,如果不指定主鍵的值,默認為0。

MylSAM類型的存儲引擎不會在主鍵列上創(chuàng)建索引,表中記錄的存儲順序與插入順序相同。

MySQL,刪庫,數(shù)據(jù)完整性

InnoDB存儲引擎會自動在主鍵列上創(chuàng)建索引,插入的記錄會根據(jù)主鍵的值的順序排放。

alter table product ENGINE=InnoDB;

MySQL,刪庫,數(shù)據(jù)完整性

B、增加主鍵

alter table TStudent add primary key(studentid);

C、刪除主鍵

alter table TStudent drop primary key;

3、自增主鍵

AUTO_INCREMENT PRIMARY KEY

如果不指定主鍵值,會自動在現(xiàn)有的主鍵值的最大值上自動增加1作為新記錄的主鍵,主鍵值默認從1開始??梢栽跀?shù)據(jù)數(shù)據(jù)類型整數(shù)型的列上添加自增主鍵。

 MySQL,刪庫,數(shù)據(jù)完整性

A、創(chuàng)建表時指定自增自增列

create table product ( productID int PRIMARY KEY AUTO_INCREMENT not NULL, pName VARCHAR(10), price DOUBLE )ENGINE=MyISAM default CHARSET=utf8;

B、為現(xiàn)有的表指定自增列

alter table TStudent modify column studentID int PRIMARY KEY AUTO_INCREMENT;

C、刪除表中自增列

alter table TStudent modify column studentID int not NULL;

刪除自增列,仍然時主鍵,但是沒有自增長功能

4、復合主鍵

使用表的兩列或多列創(chuàng)建主鍵。

A、創(chuàng)建表時指定復合主鍵

create table student ( studentID int, id INT, sname VARCHAR(10), score int, PRIMARY KEY(studentid,id) )ENGINE=MyISAM default CHARSET=utf8;

B、給表增加復合主鍵

alter table student add PRIMARY KEY(studentID,id);

C、刪除復合主鍵

alter table student drop PRIMARY KEY;

5、唯一約束

UNIQUE KEY,唯一約束,指定某列和幾列組合的數(shù)據(jù)不能重復。

A、創(chuàng)建表時指定唯一性約束

create table score (sname VARCHAR(10) UNIQUE, score int not NULL );

B、給現(xiàn)有列增加唯一性約束

alter table score add CONSTRAINT us_sname UNIQUE(sname);

如果表中現(xiàn)有記錄有重復值,不允許添加唯一性約束??梢酝ㄟ^聚合函數(shù),查找有重復的記錄,刪除,再創(chuàng)建唯一性約束。

C、創(chuàng)建復合唯一性索引

create table student ( studentID int, id INT, sname VARCHAR(10), score int, CONSTRAINT uc_id UNIQUE(studentID, id) )ENGINE=MyISAM default CHARSET=utf8;

D、刪除列的唯一性約束

alter table score drop index uc_sname;

三、域完整性

1、默認值

在表中插入一條新1的記錄時,如果沒有為該字段賦值,那么數(shù)據(jù)庫系統(tǒng)會自動為該字段賦一條默認值。

create table st(sid INT not null primary key auto_increment,sname varchar(10),subject varchar(20) default '軟件工程',entertime TIMESTAMP default now());

給表中一列添加默認值約束:

alert table st modify column subject VARCHAR(20) default '計算機科學與技術';

刪除表中一列的默認值約束:

alert table st modify column subject VARCHAR(20) default NULL;

2、創(chuàng)建非空約束

非空約束用于確保當前列的值不為空值,非空約束只能出現(xiàn)在表對象的列上。

Null類型特征:所有的類型的值都可以是null,包括int、float等數(shù)據(jù)類型 空字符串是不等于NULL,0也不等于NULL。

A、創(chuàng)建表時給列指定非空約束

create table score (sname VARCHAR(10) not NULL, score int not NULL );

B、給指定列指定非空約束

alert table score modify column score int not NULL;

C、刪除非空約束

alter table score modify column score int;

3、檢查check

check關鍵字,在插入新行或者更改已有行時才起作用,作用是阻止不滿足條件的值進入該列,對null值無效,因為插入null就相當于沒有插入。一個列可有多個check。

age int check(age between 10 and 20);

目前MySQL不支持check約束,微軟MSSQL支持Check約束,但創(chuàng)建表時可以指定Check約束,但不起作用。

四、參照完整性

1、參照完整性簡介

MySQL參照完整性一般是通過MySQL外鍵(foreign key)實現(xiàn)的。

外鍵(僅innoDB支持)所引用表的列必須是主鍵。

外鍵聲明包括三個部分:

A、哪個列或列組合是外鍵

B、指定外鍵參照的表和列

C、參照動作[cascade(級聯(lián)操作),restrict(拒絕操作),set null(設為空),no action,set default]。

如果外鍵約束指定了參照動作,主表記錄做修改,刪除,從表引用的列會做相應修改,或不修改,拒絕修改或設置為默認值。

引用表的列名必須是主鍵,且在刪除引用表時必須刪除引用關系或者刪除當前表。

2、創(chuàng)建表時指定外鍵

創(chuàng)建兩張表,學生表student和成績表score,成績表的sid列的取值參照學生表(學生表student的sid列設置為主鍵,且表的存儲引擎為innodb,成績表score的存儲引擎也必須設置為innodb)。

create table student(sid int not null primary key,sname varchar(20)) engine=innodb;create table score(sid int not null,mark INT,constraint score_fk FOREIGN KEY (sid)references student(sid) on delete cascade on update cascade) engine=innodb;

在學生表插入一條記錄

insert into student values (1,'孫悟空')

在成績表插入一條記錄,學號是1,成功。

instert into score values (1,98)

在成績表插入一條記錄,學號是2,失敗。

insert into score values (2,88)

 

在學生表插入學號是2的一條記錄

insert into student values (2,'唐僧')

 

再在成績表插入一條學號是2的記錄,成功,證明外鍵參照成功。

insert into score values (2,88);

 

3、刪除參照約束

alter table score drop foreign key score_fk;

 

4、給現(xiàn)有表增加參照約束

alter table score add constraint score_fk2 foreing key (sid) references student (sid);

 

5、驗證級聯(lián)動作刪除和更新

在score表創(chuàng)建的參照完整性,刪除動作和更新動作的參照動作選擇了cascade(級聯(lián)操作),當學生表的sid更新時,分數(shù)表score的相應的sid也會更新,當學生被刪除,分數(shù)表對應的sid的記錄也會自動刪除。

更新學生表學號是1的學生的學號為10

update student set sid = 10 where sid = 1

 

查看成績表,可以看到以前學號是1的已經(jīng)變成了10

select * from score

 

刪除學生表學號是2的學生

delete from student where sid = 2

 

可以看到成績表,該學生的成績已經(jīng)級聯(lián)刪除

select * from score

6、驗證級聯(lián)動作No Aaction

級聯(lián)動作設置為NO ACTION,如果子表中有匹配的記錄,則不允許對父表對應候選鍵進行update/delete操作。

Restrict動作同no action,都是立即檢查外鍵約束。

將參照動作設置為no action,如果成績表score有該學生sid,將不能更改學生表student表的學生sid列,也不能刪除該學生。除非你先刪除該學生的成績,再刪除該學生。

刪除score表的外鍵約束

alter table score drop foreign key score_fk;

增加score表的sid列外鍵約束

ALTER TABLE `score` ADD CONSTRAINT `score_fk` FOREIGN KEY (`sid`) REFERENCES `student` (`sid`) ON DELETE NO ACTION ON UPDATE NO ACTION;

更新學號是10的學生的學號,失敗

update student set sid = 11 where sid = 10

刪除學號是10的學生,失敗

delete from student where sid = 10

需要先刪除學生成績表中的記錄,再刪除該學生。

delete from student where sid=10delete from score where sid=10;

7、驗證級聯(lián)動作Set NULL

在父表上update/delete記錄時,將子表上匹配記錄的列設為null,要注意子表的外鍵不能為not null。

刪除成績表的外鍵約束

alter table score drop foreign key score_fk;

增加成績表的sid列外鍵約束,參照動作為set null

alter table score add constraint score_fk foreign key (sid) references student (sid) on delete set null on update set null;

修改成績表的sid列默認值為NULL

ALTER TABLE `score` MODIFY COLUMN `sid` INTEGER(11) DEFAULT NULL;insert into student values (1,'孫悟空')insert into student values (2,'豬八戒')insert into score values (1,98)insert into score values (2,88)

刪除學生表中學號1的學生

delete from student where sid = 1

查看成績表,成績表中的學號為1的列為NULL

select * from score

總結(jié)

以上所述是小編給大家介紹的深入淺析MySQL從刪庫到跑路_高級(一)——數(shù)據(jù)完整性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美激情视频在线观看| 亚洲资源网你懂的| 91高清免费在线观看| 国产精品久久一| 亚洲激情视频网| 久久99精品久久久水蜜桃| 亚洲精品一区二区三区四区| 91在线免费观看网站| 久久夜精品香蕉| 国产高清美女一级毛片久久| 国产精品黄色| 色哟哟精品视频| 在线看片中文字幕| 国模无码视频一区| 丰满人妻一区二区三区53号| 狠狠搞狠狠干| 四虎成人精品在永久在线观看| 最近中文字幕mv免费高清视频8| 黄色三级视频在线| 久热在线中文字幕色999舞| 最新中文字幕久久| 国模私拍视频在线播放| 日本女优天堂99伊人| 91美女片黄在线观看| 日韩在线视频线视频免费网站| 国产成人精品亚洲日本在线桃色| 91精品国产福利在线观看麻豆| 亚洲精品国产精品乱码在线观看| www.youjizz.com亚洲| 国产乱在线观看视频| 无遮挡的视频在线观看| 欧美日韩在线视频一区二区三区| 国产精品一级无码| 国产精品日韩一区二区| 国产丝袜一区二区三区| 香港成人在线视频| 免费精品一区二区三区在线观看| 18禁裸乳无遮挡啪啪无码免费| 涩涩视频在线免费看| 人在线成免费视频| 在线观看的日韩av| 琪琪久久久久日韩精品| 不卡一卡二卡三乱码免费网站| 51蜜桃传媒精品一区二区| 99re这里只有精品首页| 久久国产麻豆精品| 极品白嫩的小少妇| 精品久久一区二区| 91在线视频导航| 精品影片一区二区入口| 欧美激情精品久久久久| 久久精品影视伊人网| 国内精品久久久久久久影视蜜臀| 九一国产精品| 久久亚洲影视婷婷| 日韩av在线电影观看| 五月天国产一区| 伊人青青综合网站| 视频一区二区综合| 成人免费观看www在线| 久久久午夜精品理论片中文字幕| 精品99re| av午夜电影| 国产午夜精品久久久久久免费视| avtt香蕉久久| 国产欧美小视频| 黄色a**址| 欧美一区二区在线观看| 国产精品香蕉视屏| 素人av在线| 欧美成人精品欧美一级乱| 欧美午夜免费影院| 在线中文字幕不卡| 欧美午夜精品久久久| 91av在线免费观看视频| 欧美在线视屏| 亚洲一区日韩精品中文字幕| 欧美极品少妇xxxxⅹ免费视频| 亚洲欧洲av色图| 久久午夜无码鲁丝片| 久久视频中文字幕| 狠狠精品干练久久久无码中文字幕| 欧美日韩在线亚洲一区蜜芽| 九色porny丨首页入口在线| 奇米影视亚洲狠狠色| 国产污视频网站| www.日本视频| 操欧美女人视频| 日韩av在线免费观看| 三级不卡在线观看| 色哟哟中文字幕| 午夜不卡av免费| 激情aⅴ欧美一区二区欲海潮| 日韩精品一区二| 欧美日韩亚洲综合一区二区三区激情在线| 国产精品一区而去| 久久久久久久久亚洲精品| 99久久婷婷国产综合精品电影√| 国产精品流白浆在线观看| 91在线一区二区三区| 91视频网页| 欧美 日本 国产| 久久亚洲国产中v天仙www| 丁香六月激情网| 大奶一区二区三区| 国产午夜福利片| 精品福利一区| 中文字幕av免费专区久久| 性欧美高清强烈性视频| 久久久久99人妻一区二区三区| 四虎影视亚洲| 免费亚洲电影| 狠狠干天天爱| 日韩mv欧美mv国产网站| 久国内精品在线| 一二三区在线视频| 一级黄色香蕉视频| 国产精品爱久久久久久久| 亚洲国产精品久久久久秋霞蜜臀| 91精产国品一二三| www.狠狠爱| 狠狠色噜噜狠狠狠狠8888| 黄色av资源| 成人黄色在线观看视频| 国产精品久久久久久久免费看| 欧美系列一区二区| 海角社区69精品视频| 午夜欧美激情| 一二三四视频在线社区中文字幕2| av免费在线一区| 五月天婷婷久久| 九一成人免费视频| 在线中文字幕视频观看| 成人激情自拍| 又大又长粗又爽又黄少妇视频| 麻豆精品久久久久久久99蜜桃| 午夜电影一区| 久久九九视频| 欧美精品福利| 992tv免费直播在线观看| 成人午夜影院在线观看| 日韩av午夜在线观看| 欧美xxxx做受欧美88bbw| 国产成人愉拍精品久久| 国产日韩一区二区三区在线播放| 四虎成人精品一区二区免费网站| jizz国产| 91免费的视频在线播放| 色婷婷综合久久久久中文字幕1| 成人啊v在线| 深爱五月激情网| 久草福利在线观看| 国产日韩在线播放| 无码日韩人妻精品久久蜜桃| 欧美成人观看免费全部完小说| 最新av在线网站| 男生操女生视频在线观看| 国产精品毛片一区视频| 人妻少妇一区二区| av日韩在线看| 亚洲国产视频在线| 污污影院在线观看| 成人国产精品av| 外国电影一区二区| 日本道不卡免费一区| 91丨精品丨国产| 久久久99久久精品女同性| 国产成人精品视频| 欧美一级久久久久久久大片| 视频三区在线观看| 性xxxx18| 日韩av片在线看| 欧美精品999| 日韩dvd碟片| 免费女人毛片视频| 国产91在线视频蝌蚪| 国产精品jvid在线观看| 裸体一区二区| 中文字幕av第一页| 国内精品免费在线观看| 97人人模人人爽人人澡| 在线观看av日韩| 欧美亚洲激情在线| 中文天堂资源在线| 欧美激情在线一区二区三区| 亚欧美无遮挡hd高清在线视频| 亚洲宅男天堂在线观看无病毒| 国产人妖乱国产精品人妖| 少妇高清精品毛片在线视频| 亚洲国产精品女人久久久| 欧美三级在线观看视频| 国产网站免费在线观看| 久久久久免费网| 国产v日韩v欧美v| 麻豆疯狂做受xxxx高潮视频| 免费看毛片的网址| 国产一区二区三区在线免费观看| 国产91足控脚交在线观看| 男人插曲女人的视频| 一二三四区精品视频| 福利在线视频网站| 国产极品视频在线观看| 手机视频在线观看| 国产一区二区按摩在线观看| 日本午夜在线亚洲.国产| av亚洲一区二区三区| 国产你懂的在线观看| 男人午夜天堂| 99久久亚洲| 人人狠狠综合久久亚洲婷婷| av一二三不卡影片| 亚洲嫩模一区| 欧美区视频在线观看| 国产免费成人在线视频| japonensisjava老师可播放| 亚洲性视频h| 97在线资源在| 欧洲美女和动交zoz0z| 国产欧美精品va在线观看| 亚洲欧美网站在线观看| 在线视频日韩一区| 免费看的av| 乱人伦精品视频在线观看| 国产一区免费视频| 一区二区三区在线免费观看视频| 免费看片黄色| 日产精品久久久久久久| 亚洲欧美国产制服动漫| 国产精品九九久久久久久久| yw.尤物在线精品视频| 黄页网址大全免费观看| 亚洲 欧美 激情 另类| 国产精品999| 999久久久精品国产| 亚洲免费资源在线播放| 美国黄色a级片| 欧美视频免费播放| 国产精品伊人久久| 久久99青青精品免费观看| 国产精品久久久久久麻豆一区软件| 一区二区不卡久久精品| 亚洲精品国产日韩| 国产男女猛烈无遮挡a片漫画| 久草资源在线视频| 国产欧美一区二区三区视频| 日日摸夜夜添夜夜添国产精品| 婷婷六月综合网| 99爱精品视频| 国产精品爱啪在线线免费观看| 久久久午夜精品福利内容| 国家队第一季免费高清在线观看| 久久99精品视频一区97| 欧美区一区二区三区| 草碰在线视频| 日韩av影视大全| 亚洲三级精品| 99久久久国产精品无码网爆| 欧美电影在线观看完整版| 欧美一级免费| 日韩高清人体午夜| 欧美另类videos粗暴黑人| 久久精品国产亚洲blacked| 欧美日一区二区三区| 国产偷激情在线| 国产精品成人免费在线| 永久免费网站视频在线观看| 精品国产99久久久久久宅男i| 亚洲国产成人午夜在线一区| 国产一区二区三区亚洲| 欧美大片在线播放| 成人午夜剧场免费观看完整版| 91精品国产黑色紧身裤美女| 亚洲黄色小说图片| 色九视频91| 老司机午夜免费福利| 色呦呦一区二区三区| 日韩av黄色| 中文字幕在线免费播放| 欧美激情精品| 日韩欧美久久| 免费黄网在线看| 你懂的亚洲视频| 在线观看视频网站你懂得| 亚洲综合精品在线| 国产三级按摩推拿按摩| 四虎永久网址| 野花视频免费在线观看| 7799国产精品久久久久99| 精品精品欲导航| 国产免费人人看| 久久国产精品99久久久久久老狼| free性m.freesex欧美| 日韩av高清在线播放| 国产精品久久人| 香港三日本8a三级少妇三级99| 精品成人a区在线观看| 亚洲人成影院在线| 一本综合久久| 国产一级网站视频在线| 精品亚洲视频在线| 亚洲国产精品成人综合久久久| 亚洲精品进入| 亚洲国产精品久久久天堂| 欧美国产激情视频| 一级毛片免费看| 韩国三级在线看| 国产一二三四区在线观看| 午夜天堂在线观看| 国产成人一级电影| frxxee中国xxx麻豆hd| 久久亚洲精品国产精品紫薇| 韩国中文字幕在线| 国产97人人超碰caoprom| av中文字幕亚洲| 国产色片在线观看| 亚洲av成人精品日韩在线播放| 欧美成人黑人xx视频免费观看| 国产欧美日韩另类一区| 秋霞影院午夜丰满少妇在线视频| 亚洲成人免费影院| 欧美3p视频在线观看| 欧美男女视频| av在线理伦电影| 国产在线视频精品一区| 亚洲最大网站| 国语自产精品视频在线看抢先版图片| 亚洲青涩在线| 一级毛片在线播放|