外來鍵(foreign key)
乙個表中的foreign key指向另乙個表中的unique key(唯一約束的鍵)
對於兩個具有關聯關係的表而言,相關聯欄位中主鍵所在的表就是主表,外來鍵所在的表就是從表(子表)。
外來鍵約束
foreign key約束用於預防破壞表之間連線的行為,也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。【主要目的是確保表的資料的完整性,唯一性】
主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。乙個表可以有乙個或者多個外來鍵,外來鍵可以為空值,若不為空值,則每乙個外來鍵的值必須等於主表中主鍵的某個值。
定義外來鍵時,需要遵守下列規則:
上段擷取自
例項:
在audit表上建立外來鍵約束,其emp_no對應employees_test表的主鍵id。(以下2個表已經建立了)
create table employees_test(
id
int
primary key not null,
name text not null,
age
int
not null,
address
char
(50),
salary real
);
create table audit(
emp_no
int
not null,
create_date datetime not null
);
方法一:建立表時新增外來鍵約束。
drop table audit;
create table audit
( emp_no int not null,
create_date datetime not null,
foreign key(emp_no)
references employees_test(id)
);
方法二:在修改表時新增外來鍵約束,採用alter語句。
語句結構:
alter table table_nm add constraint constraint_name
foreign key table_a(col) references table_b(col);
alter table audit
add constraint
fk_emp_no
foreign key
audit(emp_no)
references
employees_test(id);
刪除外來鍵約束語法格式:
alter table 《表名》 drop foreign key 《外來鍵約束名》;
SQL新增外來鍵約束
1,sql語句建立表的同時新增外來鍵約束 create table tb userandrole 使用者角色表 id int primary key identity 1,1 userid int not null,使用者id roleid int not null,角色id foreign key...
SQL 主鍵和外來鍵約束
sql 的主鍵和外來鍵的作用 外來鍵取值規則 空值或參照的主鍵值。1 插入非空值時,如果主鍵表中沒有這個值,則不能插入。2 更新時,不能改為主鍵表中沒有的值。3 刪除主鍵表記錄時,你可以在建外鍵時選定外來鍵記錄一起級聯刪除還是拒絕刪除。4 更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。簡而言之,s...
SQL的主鍵和外來鍵約束
sql 的主鍵和外來鍵的作用 外來鍵取值規則 空值或參照的主鍵值。1 插入非空值時,如果主鍵表中沒有這個值,則不能插入。2 更新時,不能改為主鍵表中沒有的值。3 刪除主鍵表記錄時,你可以在建外鍵時選定外來鍵記錄一起級聯刪除還是拒絕刪除。4 更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。簡而言之,s...