中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Mysql 主鍵約束PrimaryKey

Mysql 主鍵約束Primary Key

今天來簡單的講一下主鍵約束。
假如(ru)有一張學(xue)生(sheng)(sheng)信(xin)息表(biao),里面記錄了(le)學(xue)生(sheng)(sheng)的(de)(de)學(xue)號 ,姓名(ming),成績(ji)等,那么(me),會不會有兩(liang)個學(xue)號相同(tong)的(de)(de)學(xue)生(sheng)(sheng),答案肯定是(shi)(shi)否定的(de)(de),如(ru)果(guo)有的(de)(de)話也只能是(shi)(shi)插入信(xin)息的(de)(de)時候(hou)犯下的(de)(de)錯誤,那么(me)我們如(ru)何去避(bi)免這種錯誤呢,這時候(hou),primary key就發揮作(zuo)用了(le)。

下面(mian)我們(men)創(chuang)建一個stu_inform 表(biao)

create table stu_inform(
    id int,
    name varchar(20),
    grade double,
    primary key(id)
);

這樣(yang)的(de)話我們就為id 加上了(le)主(zhu)鍵約束,我們來插入(ru)一個錯誤的(de)信(xin)息

insert into stu_inform values(1,'張三',100.00),(1,'李四',100.00); -- Error

如果是(shi)這樣插入的(de)話環(huan)境會報出一個(ge)錯誤,這個(ge)錯誤正是(shi)主鍵約束的(de)作用(yong)。

但是如(ru)果你也想(xiang)讓姓名(ming)也不能(neng)相(xiang)同(tong),你可能(neng)會這樣寫(xie)

create table stu_inform(
    id int,
    name varchar(20),
    grade double,
    primary key(id,name)
);

接下來我(wo)們(men)插入一個數據

insert into stu_inform values(1,'張三',100.00),(1,'李四',100.00);

你會發現這條語(yu)句是(shi)完全可行的(de)(de),是(shi)完全沒有(you)錯誤的(de)(de),這是(shi)為什么呢,這是(shi)因(yin)為這是(shi)一個(ge)聯合主鍵(jian),它的(de)(de)作用是(shi)id不能(neng)重(zhong)(zhong)復 且 姓名也不能(neng)重(zhong)(zhong)復,注意(yi)是(shi)且。

你如果這樣寫的話

insert into stu_inform values(1,'張三',100.00),(1,'張三',100.00);//Error

你如果這樣寫的話就是大錯(cuo)特錯(cuo)了(le),因為這違反了(le)聯(lian)合(he)主鍵。因為id和(he)姓名同(tong)時(shi)相同(tong)了(le)就是這個道(dao)理(li)。

那么要怎樣才能(neng)(neng)實現id不(bu)能(neng)(neng)相(xiang)同(tong),同(tong)時姓名也不(bu)能(neng)(neng)相(xiang)同(tong)呢,這就是(shi)下一篇(pian)要講的unique的作(zuo)用了。

posted @ 2016-10-16 17:43  浩大王  閱讀(15274)  評論(0)    收藏  舉報