本文主要涉及MySQL中主外鍵關(guān)聯(lián)的概念和使用方法。
1. 什么是主鍵?
主鍵是指在一張表中,用來唯一標識每一行數(shù)據(jù)的字段或字段組合。主鍵的值必須唯一,可以用來作為其他表中的外鍵。在MySQL中,主鍵的值不能為NULL,可以是數(shù)字、字符或日期等數(shù)據(jù)類型。主鍵可以通過以下兩種方式設(shè)置:
(1)在創(chuàng)建表時,在需要作為主鍵的字段后面加上PRIMARY KEY關(guān)鍵字。
age INT(11) NOT NULL
(2)在創(chuàng)建表后,通過ALTER TABLE命令來添加主鍵。
t ADD PRIMARY KEY (id);
2. 什么是外鍵?
外鍵是指在一張表中,用來關(guān)聯(lián)另一張表中主鍵的字段。外鍵的值必須和另一張表中的主鍵對應,如果另一張表中的主鍵值被改變或刪除,與之關(guān)聯(lián)的外鍵值也會隨之改變或刪除。在MySQL中,外鍵可以通過以下兩種方式設(shè)置:
(1)在創(chuàng)建表時,在需要作為外鍵的字段后面加上FOREIGN KEY關(guān)鍵字,并指定關(guān)聯(lián)的表和字段。
age INT(11) NOT NULL,
class_id INT(11),
FOREIGN KEY (class_id) REFERENCES class(id)
(2)在創(chuàng)建表后,通過ALTER TABLE命令來添加外鍵。
t ADD FOREIGN KEY (class_id) REFERENCES class(id);
3. 如何設(shè)置主外鍵關(guān)聯(lián)?
在MySQL中,設(shè)置主外鍵關(guān)聯(lián)需要滿足以下條件:
noDB存儲引擎。
(2)關(guān)聯(lián)的兩張表必須都有主鍵。
(3)外鍵字段的數(shù)據(jù)類型必須和主鍵字段的數(shù)據(jù)類型一致。
(4)外鍵字段的長度必須和主鍵字段的長度一致,或者外鍵字段的長度小于主鍵字段的長度。
(5)外鍵字段必須定義為NOT NULL,否則不能創(chuàng)建主外鍵關(guān)聯(lián)。
CREATE TABLE class (
ame VARCHAR(20) NOT NULL
noDB;
age INT(11) NOT NULL,
class_id INT(11) NOT NULL,
FOREIGN KEY (class_id) REFERENCES class(id)
noDB;
tt的class_id字段建立了主外鍵關(guān)聯(lián)。
以上就是本文關(guān)于MySQL中設(shè)置主外鍵關(guān)聯(lián)的詳細介紹,希望對大家有所幫助。