成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

MySQL(3)-表的完整性約束

? ?

崇州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

表的完整性約束作用 : 用于保證數(shù)據(jù)的完整性

常見(jiàn)的表的約束有 : PRIMARY ?KEY(PK主鍵) ,FOREIGN ?KEY(FK外鍵) ,NOT ?NULL, UNIQUE ?KEY(唯一鍵), AUTO_INCREMENT, DEFAULT(默認(rèn)值)

?一 .?DEFAULT ,?NOT ?NULL

? ? ??

說(shuō)明 : default : 指定默認(rèn)值

? ? ? ? ? not ?null : 不允許為空 , 就類似我們?cè)诰W(wǎng)上注冊(cè)賬號(hào)時(shí) , 有些內(nèi)容必須要填寫 , 空著就提交不了

例 : 創(chuàng)建 ?school 數(shù)據(jù)庫(kù) , 在 school 數(shù)據(jù)庫(kù)中創(chuàng)建 student 表 , 字段有學(xué)號(hào)id , 姓名name , 性別sex ; 設(shè)置 id , name不允許為空 ,sex不允許為空 , 且sex默認(rèn)設(shè)置為男 .

MySQL(3)-表的完整性約束

創(chuàng)建表后查看student表的結(jié)構(gòu) , 可以看到null都為no , default選項(xiàng)sex字段默認(rèn)為m

MySQL(3)-表的完整性約束

現(xiàn)在插入一條數(shù)據(jù) , 如 : insert ?into ?student ?value(1,'jack','m');

MySQL(3)-表的完整性約束

從上圖可以看出成功插入 , 再次插入一條數(shù)據(jù) : insert ?into ?student(id,name) ?value(1,'lucy');

MySQL(3)-表的完整性約束

只插入兩個(gè)字段 , sex字段沒(méi)有數(shù)據(jù)插入 , 但因?yàn)樵撟侄尾辉试S為空且默認(rèn)值設(shè)為m , 所以會(huì)默認(rèn)記錄為m

二 . 設(shè)置唯一約束 UNIQUE

? ? ? ? ? ? ??

唯一約束 : 控制此列的值不允許重復(fù) , 必須是唯一的一個(gè)值

例 : 創(chuàng)建student2表 , 在student表的基礎(chǔ)上把id字段設(shè)為unique?

create table student2( id int ?unique, name varchar(50) not null, sex enum('m','f')default 'm' not null);

MySQL(3)-表的完整性約束 ??

可以看到id字段key為UNI , 這時(shí)插入兩條記錄

MySQL(3)-表的完整性約束

可以看出 , 因?yàn)閕d字段設(shè)置了unique , 插入兩條記錄的id值都為1 , 所以插入數(shù)據(jù)報(bào)錯(cuò)

?

三 . 設(shè)置主鍵約束 PRIMARY ?KEY

? ? ? ? ? ? ??

primary key 字段的值是不允許重復(fù) , 且不允許為空 , 即 UNIQUE + NOT NULL?

主鍵有單列主鍵和多列主鍵(復(fù)合主鍵) ,多列主鍵即兩條或兩條以上的字段設(shè)置為主鍵

例 : 創(chuàng)建student3表 , 將字段 id 設(shè)為主鍵

create ?table ?student3(id ?int ?primary ?key ,name ?varchar(50) not null ,sex enum('m','f'));?

MySQL(3)-表的完整性約束

設(shè)置主鍵之后 , 插入數(shù)據(jù)時(shí)id字段的值不能為空且不能出現(xiàn)相同時(shí) , 才能插入成功

(復(fù)合主鍵同理 , 即多個(gè)字段設(shè)置primary key 或 not null ?unique)

?

四 . 設(shè)置外鍵約束 FOREIGN ?KEY

? ? ??

外鍵功能 : 設(shè)置字表與父表 , 對(duì)父子表進(jìn)行同步更新 , 同步刪除

實(shí)例 : 在test表中創(chuàng)建一張員工(employees)表 , 一張工資(payroll)表 , 將兩張表設(shè)置外鍵

員工表(父表) :

MySQL(3)-表的完整性約束

工資表(子表) ??

MySQL(3)-表的完整性約束

查看這兩張表結(jié)構(gòu):

MySQL(3)-表的完整性約束

創(chuàng)建完兩張表后 , 在父表employees中插入tom , jack 的記錄?

MySQL(3)-表的完整性約束

在字表中插入一條Lucy的記錄 ,?從下圖看出插入數(shù)據(jù)Lucy會(huì)報(bào)錯(cuò) , 因?yàn)樽隽送怄I , 并且父表中沒(méi)有Lucy的信息

MySQL(3)-表的完整性約束

再在payroll表中插入tom ,jack字段 :insert ?into ? payroll(id,pname,payroll) values (1,'tom',15.6), (2,'jack',100.5);

MySQL(3)-表的完整性約束

插入值之后 , 將父表employees中的tom改為tomer , 再看看字表中的變化 , 子表的tom也變成了tomer

MySQL(3)-表的完整性約束

? ? ??

結(jié)論:
? ? ? ?0、外鍵的作用就是實(shí)現(xiàn)在子表中引用父表中某列的值,這樣子表中外鍵的值是依賴于父表的。
? ? ? ?1、父表中的主鍵才能作為子表中的外鍵。
? ? ? ?2、當(dāng)父表中某個(gè)員工的記錄修改時(shí),子表也會(huì)同步修改 ?
? ? ? ?3、當(dāng)父表中刪除某個(gè)員工的記錄,子表也會(huì)同步刪除

五 . 設(shè)置自增字段值 AUTO_INCREMENT

? ? ? ? ? ? ??

例 : 在test庫(kù)中創(chuàng)建一張zhi表 ,將id設(shè)置成自增

MySQL(3)-表的完整性約束

創(chuàng)建表之后插入數(shù)據(jù) :?insert into zhi(name,age) values('tom',18),('jack',19),('lucy',20); ?#可以看出插入的數(shù)據(jù)沒(méi)有id自段

MySQL(3)-表的完整性約束

插入上述字段可以看出 , id 字段自動(dòng)一自增的形式自動(dòng)補(bǔ)全數(shù)據(jù)

? ? ? ?MySQL(3)-表的完整性約束

? ? ? ?

? ? ? ??

當(dāng)前名稱:MySQL(3)-表的完整性約束
當(dāng)前地址:http://jinyejixie.com/article40/psiheo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)電子商務(wù)、網(wǎng)站設(shè)計(jì)小程序開發(fā)、靜態(tài)網(wǎng)站、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
江阴市| 桂林市| 大埔县| 景德镇市| 新竹县| 衡阳市| 诸暨市| 饶河县| 大田县| 梁平县| 鹤庆县| 大港区| 敦煌市| 阿克陶县| 北辰区| 商洛市| 观塘区| 申扎县| 兴仁县| 色达县| 富民县| 文成县| 邢台县| 布尔津县| 富源县| 阿鲁科尔沁旗| 苏尼特左旗| 南岸区| 永济市| 加查县| 北京市| 自治县| 讷河市| 兴业县| 三都| 双鸭山市| 庆元县| 海淀区| 鄂托克旗| 林州市| 广安市|