婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

熱門標(biāo)簽:電銷機器人針對的 高德地圖標(biāo)注模式 高德地圖標(biāo)注中心個人注冊 400電話辦理都選易號網(wǎng) 外呼系統(tǒng)防封號違法嗎 外呼系統(tǒng)服務(wù) 如何在高德地圖標(biāo)注新地址 湘潭電銷機器人咨詢電話 寶應(yīng)電信400電話辦理費用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、主鍵

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

主鍵約束相當(dāng)于唯一約束與非空約束的組合,主鍵約束列不允許重復(fù),也不允許出現(xiàn)空值;多列組合的主鍵約束,列都不允許為空值,并且組合的值不允許重復(fù)。每個表最多只允許一個主鍵,建立主鍵約束可以在列級別創(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;

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

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

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

alter table product ENGINE=InnoDB;

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ù)型的列上添加自增主鍵。

 

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、復(fù)合主鍵

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

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

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

B、給表增加復(fù)合主鍵

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

C、刪除復(fù)合主鍵

alter table student drop PRIMARY KEY;

5、唯一約束

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

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)有記錄有重復(fù)值,不允許添加唯一性約束。可以通過聚合函數(shù),查找有重復(fù)的記錄,刪除,再創(chuàng)建唯一性約束。

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

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 '計算機科學(xué)與技術(shù)';

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

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

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

非空約束用于確保當(dā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關(guān)鍵字,在插入新行或者更改已有行時才起作用,作用是阻止不滿足條件的值進入該列,對null值無效,因為插入null就相當(dāng)于沒有插入。一個列可有多個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(設(shè)為空),no action,set default]。

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

引用表的列名必須是主鍵,且在刪除引用表時必須刪除引用關(guān)系或者刪除當(dāng)前表。

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

創(chuàng)建兩張表,學(xué)生表student和成績表score,成績表的sid列的取值參照學(xué)生表(學(xué)生表student的sid列設(shè)置為主鍵,且表的存儲引擎為innodb,成績表score的存儲引擎也必須設(shè)置為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;

在學(xué)生表插入一條記錄

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

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

instert into score values (1,98)

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

insert into score values (2,88)

在學(xué)生表插入學(xué)號是2的一條記錄

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

再在成績表插入一條學(xué)號是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)操作),當(dāng)學(xué)生表的sid更新時,分數(shù)表score的相應(yīng)的sid也會更新,當(dāng)學(xué)生被刪除,分數(shù)表對應(yīng)的sid的記錄也會自動刪除。

更新學(xué)生表學(xué)號是1的學(xué)生的學(xué)號為10

update student set sid = 10 where sid = 1

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

select * from score

刪除學(xué)生表學(xué)號是2的學(xué)生

delete from student where sid = 2

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

select * from score

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

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

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

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

刪除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;

更新學(xué)號是10的學(xué)生的學(xué)號,失敗

update student set sid = 11 where sid = 10

刪除學(xué)號是10的學(xué)生,失敗

delete from student where sid = 10

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

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

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

在父表上update/delete記錄時,將子表上匹配記錄的列設(shè)為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)

刪除學(xué)生表中學(xué)號1的學(xué)生

delete from student where sid = 1

查看成績表,成績表中的學(xué)號為1的列為NULL

select * from score

總結(jié)

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

您可能感興趣的文章:
  • windows下bat批處理執(zhí)行Mysql的sql語句
  • MySQL數(shù)據(jù)庫高級查詢和多表查詢
  • Spring Boot高級教程之Spring Boot連接MySql數(shù)據(jù)庫
  • 高級MySQL數(shù)據(jù)庫面試問題 附答案
  • MySQL高級查詢之與Group By集合使用介紹
  • MySQL一些常用高級SQL語句

標(biāo)簽:南充 宿遷 佛山 黃山 馬鞍山 賀州 蘭州 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入淺析MySQL從刪庫到跑路_高級(一)——數(shù)據(jù)完整性》,本文關(guān)鍵詞  深入,淺析,MySQL,從,刪庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《深入淺析MySQL從刪庫到跑路_高級(一)——數(shù)據(jù)完整性》相關(guān)的同類信息!
  • 本頁收集關(guān)于深入淺析MySQL從刪庫到跑路_高級(一)——數(shù)據(jù)完整性的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜免费欧美电影| 国产精品二三区| 韩国三级电影一区二区| 一区二区三区四区精品在线视频| 精品国产一区二区亚洲人成毛片 | 日韩欧美三级在线| 99视频一区二区| 国产成人av在线影院| 日本成人在线一区| 日韩精品电影在线| 五月激情综合网| 亚洲一二三级电影| 亚洲自拍偷拍麻豆| 亚洲一区在线观看视频| 亚洲丝袜美腿综合| 国产精品黄色在线观看| 国产精品国产精品国产专区不蜜 | 一本到高清视频免费精品| 久久久久高清精品| 日韩欧美一区在线| 日韩欧美高清dvd碟片| 欧美一级片免费看| 欧美刺激脚交jootjob| 欧美精品欧美精品系列| 91网站最新地址| 99久久婷婷国产| 99国产精品国产精品毛片| 99免费精品视频| 成人性生交大合| 99久久综合精品| 在线国产电影不卡| 91麻豆精品国产91久久久使用方法| 在线亚洲一区二区| 欧美区视频在线观看| 国产精品久久久久aaaa樱花| 亚洲欧洲日产国产综合网| 亚洲丝袜制服诱惑| 亚洲国产一区视频| 久久精品国产成人一区二区三区 | 欧美日韩一区二区三区不卡 | 久久久久99精品国产片| 国产日韩欧美一区二区三区综合| 久久这里只有精品首页| 亚洲视频一二三| 日韩高清不卡在线| 国产不卡视频一区二区三区| 日本精品一级二级| 91精品国产综合久久婷婷香蕉| 不卡一区在线观看| 色狠狠色狠狠综合| 青青草原综合久久大伊人精品优势 | 国产成人av福利| 色呦呦网站一区| 日韩欧美一级片| 最新国产成人在线观看| av电影在线不卡| 欧美一区二区在线不卡| 成人免费在线观看入口| 日本不卡视频一二三区| 国产99久久久国产精品潘金| 欧美自拍丝袜亚洲| 欧美日韩中文一区| 国产精品视频一区二区三区不卡| 一区二区三区日韩| 久久99精品国产麻豆婷婷洗澡| 国产成人精品免费在线| 91污片在线观看| 亚洲精品一区在线观看| 亚洲精品va在线观看| 国产尤物一区二区| 4438x成人网最大色成网站| 国产精品久久久久7777按摩| 韩国精品免费视频| 欧美一区二区三区日韩视频| 中文字幕一区二区三区av| 亚洲日本在线观看| 国产一区免费电影| 欧美夫妻性生活| 亚洲综合激情另类小说区| 毛片一区二区三区| 在线视频你懂得一区| 亚洲永久精品大片| 国产在线不卡视频| 欧美一区二区三区免费视频| 亚洲免费在线播放| 捆绑紧缚一区二区三区视频| 欧美老人xxxx18| 一区二区三区 在线观看视频| 国产一区三区三区| 欧美一区二区不卡视频| 亚洲自拍偷拍欧美| 欧美色综合天天久久综合精品| 中文字幕av免费专区久久| 国产乱人伦偷精品视频免下载| 日韩午夜中文字幕| 日日欢夜夜爽一区| 欧美丰满少妇xxxbbb| 悠悠色在线精品| 欧美在线一区二区| 一区二区三区欧美视频| 欧美亚洲高清一区| 亚洲一区二区三区四区中文字幕| 欧美中文字幕一二三区视频| 久久综合狠狠综合久久激情| 蜜桃精品视频在线观看| 欧美第一区第二区| 欧美a一区二区| 日韩欧美www| 午夜精品视频在线观看| 国产91丝袜在线播放九色| 国产精品久久久一本精品 | 555夜色666亚洲国产免| 亚洲成人综合网站| 7799精品视频| 国产精品1024| 中文字幕一区免费在线观看| 国产aⅴ综合色| 亚洲人午夜精品天堂一二香蕉| 一本久久精品一区二区| 日韩精品乱码av一区二区| 久久伊人蜜桃av一区二区| 日韩高清在线不卡| 精品国产sm最大网站免费看| 99久久伊人精品| 日本麻豆一区二区三区视频| 国产丝袜欧美中文另类| 91黄色免费网站| 黑人精品欧美一区二区蜜桃| 欧美日韩国产另类一区| 欧美无砖砖区免费| 国产在线观看一区二区| 日韩伦理免费电影| 成人a免费在线看| 国产精品成人一区二区艾草| 国产精品18久久久| 亚洲激情校园春色| 在线一区二区观看| 日本不卡的三区四区五区| 一区二区三区日韩精品视频| 欧美在线视频全部完| 国产一区二区伦理| 国产精品麻豆网站| 欧美一区二区大片| 91在线云播放| 国产精品一区二区黑丝| 综合婷婷亚洲小说| 欧美日韩国产不卡| 成人sese在线| 国产精品自在在线| 日韩欧美精品在线视频| 欧美国产日韩a欧美在线观看| 777午夜精品视频在线播放| 视频一区二区国产| 91久久香蕉国产日韩欧美9色| 美女一区二区三区在线观看| 亚洲欧美色图小说| 久久先锋影音av鲁色资源网| 3d成人动漫网站| 欧美亚洲国产一区在线观看网站| 成人网页在线观看| 国产麻豆一精品一av一免费| 久久综合综合久久综合| 亚洲国产精品一区二区久久恐怖片| 久久精品亚洲乱码伦伦中文 | 亚洲丝袜另类动漫二区| 欧美精品一区二区精品网| 欧美浪妇xxxx高跟鞋交| 91网站最新网址| 91小视频在线免费看| 国产精品18久久久| 久久久久久久久久电影| 在线观看91精品国产入口| 日本aⅴ免费视频一区二区三区| 欧美一三区三区四区免费在线看| 欧美激情一区二区三区不卡 | 美女视频网站久久| 一区二区三区中文字幕精品精品| 国产欧美一区二区精品婷婷| 精品88久久久久88久久久| 欧美精品一区二区三区一线天视频| 欧美在线视频你懂得| 欧美午夜一区二区三区| 欧美电影一区二区| 91超碰这里只有精品国产| 91精品国产色综合久久| 日韩欧美亚洲国产精品字幕久久久 | 亚洲18色成人| 亚洲成人你懂的| 日韩在线一二三区| 美女一区二区视频| 欧美日韩五月天| 国产精品伊人色| 亚洲三级免费电影| 国产女同互慰高潮91漫画| 风间由美性色一区二区三区| 成人永久免费视频| 精品成人免费观看| 国产亚洲一二三区| 中文字幕高清一区| 亚洲天堂中文字幕|