這篇文章主要介紹“MySQL中外鍵和主鍵的區(qū)別有哪些”,在日常操作中,相信很多人在mysql中外鍵和主鍵的區(qū)別有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”mysql中外鍵和主鍵的區(qū)別有哪些”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的孟州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
mysql中外鍵和主鍵有區(qū)別,主要有:1、主鍵用來保證數(shù)據(jù)完整性,外鍵用來和其他表建立聯(lián)系用;2、主鍵只能有一個(gè),而一個(gè)表可以有多個(gè)外鍵;3、主鍵不能有重復(fù),不允許為空,而外鍵可以有重復(fù),可以是空值。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
主鍵和外鍵都是約束。主鍵用于保持?jǐn)?shù)據(jù)完整性,外鍵作用于兩個(gè)表建立連接。下面分別介紹主鍵、外鍵及其區(qū)別。
表中經(jīng)常有多個(gè)列,主鍵是唯一標(biāo)識(shí)表中每行的列。一個(gè)表只能有一個(gè)主鍵,主鍵列不能包含null值。
例如:學(xué)生表(學(xué)號(hào),姓名,性別,班級(jí))
其中每個(gè)學(xué)生的學(xué)號(hào)是唯一的,學(xué)號(hào)就是一個(gè)主鍵;
課程表(課程編號(hào),課程名,學(xué)分)
其中課程編號(hào)是唯一的,課程編號(hào)就是一個(gè)主鍵
當(dāng)某一列不能唯一識(shí)別每行,使用聯(lián)合主鍵,將兩列看為一個(gè)整體。非空、唯一、不重復(fù)。
例如:成績表(學(xué)號(hào),課程號(hào),成績)
成績表中單一一個(gè)屬性無法唯一標(biāo)識(shí)一條記錄,學(xué)號(hào)和課程編號(hào)的組合才可以唯一標(biāo)識(shí)一條記錄,所以學(xué)號(hào)和課程編號(hào)的屬性組是一個(gè)主鍵。
外鍵用于與另一張表相關(guān)聯(lián)。以另一個(gè)表的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。
表的外鍵值必須在主表中能找到。
當(dāng)主表的記錄被從表參照時(shí),主表的記錄不允許刪除。
例如:
class表與Student表通過class_id 關(guān)聯(lián),實(shí)現(xiàn)一對(duì)多的關(guān)系。class_id作為Student表的外鍵,Student表為從表,在class表中為主鍵,class表為主表。
主鍵:唯一標(biāo)識(shí)一條記錄,不能有重復(fù),不允許為空。
外鍵:表的外鍵是另一表的主鍵,外鍵是可以有重復(fù)的,可以是空值。
索引:該字段沒有重復(fù)值,但可以有一個(gè)空值。
主鍵:用來保證數(shù)據(jù)完整性
外鍵:用來和其他表建立聯(lián)系用
索引:用來提高查詢排序的速度
主鍵:主鍵只能有一個(gè)。
外鍵:一個(gè)表可以有多個(gè)外鍵。
索引:一個(gè)表可以有多個(gè)唯一索引。
主鍵約束
create table 表名( 列名1 數(shù)據(jù)類型 primary key, 列名2 數(shù)據(jù)類型);--------或------------create table 表名( 列名1 數(shù)據(jù)類型, 列名2 數(shù)據(jù)類型, primary key(列名1));------已經(jīng)存在的表-----alter table 表名 add primary key(列名);
外鍵約束
---------主表------create table 表1( 列名1 數(shù)據(jù)類型 primary key, 列名2 數(shù)據(jù)類型 );----從表(外鍵約束所在的表)------create table 表2( FK_列名1 數(shù)據(jù)類型, 列名2 數(shù)據(jù)類型, constraint 外鍵約束的名字 foreign key(從表的列名1) references 主表表名(主表的列名1));
到此,關(guān)于“mysql中外鍵和主鍵的區(qū)別有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!