mysql設(shè)置主鍵的代碼是PRIMARY KEY (主鍵字段)。
從策劃到設(shè)計制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計、域名注冊、虛擬主機(jī)、網(wǎng)絡(luò)營銷、VI設(shè)計、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
如:CREATE TABLE Customer (SID integer,Last_Name varchar(30),F(xiàn)irst_Name varchar(30),PRIMARY KEY (SID))。
主關(guān)鍵字(主鍵,primary key)是被挑選出來,作表的行的唯一標(biāo)識的候選關(guān)鍵字。一個表只有一個主關(guān)鍵字。主關(guān)鍵字又可以稱為主鍵。
擴(kuò)展資料:
永遠(yuǎn)也不要更新主鍵。實(shí)際上,因?yàn)橹麈I除了唯一地標(biāo)識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主鍵需要更新,則說明主鍵應(yīng)對用戶無意義的原則被違反了。
主鍵應(yīng)當(dāng)由計算機(jī)自動生成。如果由人來對主鍵的創(chuàng)建進(jìn)行干預(yù),就會使它帶有除了唯一標(biāo)識一行以外的意義。一旦越過這個界限,就可能產(chǎn)生人為修改主鍵的動機(jī),這樣,這種系統(tǒng)用來鏈接記錄行、管理記錄行的關(guān)鍵手段就會落入不了解數(shù)據(jù)庫設(shè)計的人的手中。
工具/原料
電腦??MySQL
方法/步驟
設(shè)置主鍵:
1、通過終端進(jìn)入到mysql命令行工具。
2、通過use關(guān)鍵字進(jìn)行到目標(biāo)數(shù)據(jù)庫里。
3、如原表已有主鍵,先把原來的主鍵刪除掉,通過DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY;。
4、主鍵已經(jīng)沒有了。
5、通過命令:ADDPRIMARYKEY來添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。
6、輸入后按下回車鍵即可看到queryok執(zhí)行成功的字符。
7、回到數(shù)據(jù)庫的可視化工具,即可顯示現(xiàn)在的表在id列上添加了主鍵了。
設(shè)置外鍵:
1、創(chuàng)建好主從表。
2、選擇主表,點(diǎn)擊設(shè)計表,進(jìn)入到表設(shè)計界面。
3、點(diǎn)擊外鍵,進(jìn)入到外鍵設(shè)置界面。
4、先設(shè)置外鍵名稱和選擇主表的外鍵字段。
5、然后在設(shè)置外鍵字段對應(yīng)從表的數(shù)據(jù)庫、表名和字。
6、點(diǎn)擊保存就完成外鍵設(shè)置了。
工具/材料:Management Studio。
1、首先在桌面上,點(diǎn)擊“Management Studio”圖標(biāo)。
2、之后在該界面中,右鍵點(diǎn)擊Student表里“設(shè)計”選項(xiàng)。
3、接著在該界面中,右鍵點(diǎn)擊“Sno”屬性里“設(shè)置主鍵”選項(xiàng)。
4、然后在該界面中,表Student設(shè)置Sno主鍵成功。
5、之后在該界面中,右鍵點(diǎn)擊Course表里“設(shè)計”選項(xiàng)。
6、接著在該界面中,右鍵點(diǎn)擊“Cno”屬性里“設(shè)置主鍵”選項(xiàng)。
7、然后在該界面中,表Course設(shè)置Cno主鍵成功。
8、接著在該界面中,右鍵點(diǎn)擊SC表里“設(shè)計”選項(xiàng)。
9、然后在該界面中,右鍵點(diǎn)擊“Sno”屬性里“關(guān)系”選項(xiàng)。
10、接著在該界面中,選擇主鍵表為Student表里的“Sno”屬性。
11、然后在該界面中,右鍵點(diǎn)擊“Cno”屬性里“關(guān)系”選項(xiàng)。
12、接著在該界面中,選擇主鍵表為Course表里的“Cno”屬性。
13、最后在該界面中,表SC設(shè)置Sno外鍵,Cno外鍵成功。
主鍵一般有幾種選擇:
一般DBA會推薦InnoDB表必須建主鍵,而且推薦使用整型的自增主鍵。
三種選擇的優(yōu)先級是 自增id 業(yè)務(wù)整型字段 UUID。
如果使用UUID作為主鍵,那么B+樹的聚集索引的key就是UUID,UUID通常會比整型字段要長,而且字符串的比較是需要逐個字節(jié)比較,所以得出兩個缺點(diǎn)
比起自增id,雖然都是整型,但是業(yè)務(wù)字段有可能不是按順序插入到表,考慮下圖。
此時要插入索引值為4的節(jié)點(diǎn),而B+樹每頁最多存放兩個節(jié)點(diǎn),插入4節(jié)點(diǎn)后,樹變?yōu)?/p>
B+樹特點(diǎn)是,所有節(jié)點(diǎn)從左右往右排好序,自增id插入B+是有序的,只會在節(jié)點(diǎn)放滿了之后,才會新增一個頁去存放,比起非自增id,會減少頁分裂次數(shù),提高性能。
對非主鍵進(jìn)行索引,就是普通索引。
與聚集索引一樣,每個普通索引建立后,會用一個B+樹進(jìn)行維護(hù),但是葉子節(jié)點(diǎn)并非存儲索引對應(yīng)行的所有記錄,而是只存儲了主鍵值,此時得到主鍵值后,再回到聚集索引上查找一次,即可得到數(shù)據(jù)記錄,即回表。
這個不帶行數(shù)據(jù)完整信息的索引,就叫二級索引(secondary index),也叫輔助索引。
對多個字段同時建索引,就是聯(lián)合索引。
當(dāng)查詢條件同時涉及多個字段,就可以使用聯(lián)合索引。
聯(lián)合索引會根據(jù)字段的出現(xiàn)順序在B+樹中排好序,例如先入name排序,當(dāng)name相同時就使用age,直到比較出大小為止。 利用這個特性,可以使用最左前綴原則優(yōu)化SQL。