請簡述什麼是外鍵約束?
什麼是外鍵約束
如果表A的主關鍵字是表B中的字段,則該字段稱為表B的外鍵,表A稱為主表,表B稱為從表。外鍵是用來實現參照完整性的。
比如說:
create table t_group ( id int not null,
name varchar(30),
primary key (id)
);
insert into t_group values (1, 'Group1');
insert into t_group values (2, 'Group2');
create table t_user (
id int not null,
name varchar(30),
groupid int,
primary key (id),
foreign key (groupid) references t_group(id) on delete cascade on update cascade
);
insert into t_user values (1, 'qianxin', 1); --可以插入
insert into t_user values (2, 'yiyu', 2); --可以插入
insert into t_user values (3, 'dai', 3); --錯誤,無法插入,用戶組3不存在,與參照完整性約束不符
insert into t_user values (1, 'qianxin', 1);
insert into t_user values (2, 'yiyu', 2);
insert into t_user values (3, 'dai', 2);
delete from t_group where id=2; --導致t_user中的2、3記錄級聯刪除
update t_group set id=2 where id=1; --導致t_user中的1記錄的groupid級聯修改為2
--------------------雖然很基礎,但這篇文章講的很好很清楚----------------
參考資料:qianzui.javaeye.com/blog/552878
簡述外鍵約束的功能和建立方法
1.外鍵的作用,主要有兩個:
一個是讓數據庫自己通過外鍵來保證數據的完整性和一致性
一個就是能夠增加ER圖的可讀性
2.外鍵的配置
1)先創建一個主表,代碼如下:
#創建表student,並添加各種約束
create table student
(
id int primary key , #主鍵約束
name varchar(20) , #唯一約束
age int NOT NULL, #非空約束
sex varchar(2) ,
address varchar(20) default '重慶' #默認約束
) ;
什麼是外鍵
外鍵(Foreign Key) 如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱為另一個關係的外鍵。由此可見,外鍵表示了兩個關係之間的聯繫。以另一個關係的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關鍵字。換而言之,如果關係模式R中的某屬性集不是R的主鍵,而是另一個關係R1的主鍵則該屬性集是關係模式R的外鍵,通常在數據庫設計中縮寫為FK。
外鍵的作用
保持數據一致性,完整性,主要目的是控制存儲在外鍵表中的數據。 使兩張表形成關聯,外鍵只能引用外表中的列的值或使用空值
外鍵約束的特點是什麼 10分
外鍵是用來實現參照完整性的,
不同的外鍵約束方式將可以使兩張表緊密的結合起來,
做外鍵首先它要是表的主鍵
外鍵約束到底有什麼用
外鍵是表中的一個列,其值必須在另一個表的主鍵中列出。外鍵主要作用是保證數據引用的完整性,定義外鍵後,不允許刪除在另一個表中具有關聯行的行。 比如,有一個客戶表a,一個訂單表B:客戶ID為表A的主鍵,每個客戶都有唯一的ID號
什麼叫做外鍵約束????不太明白
舉個簡單的例子
表A內有列C1
表B內有列C2
將C2的外鍵指向C1
那麼當你向表B插入數據時,C2的內容必須為C1中的一個
還有幾個約束需要你設置
如刪除或者修改表A中的字段時怎麼處理表B中相關聯的數據
sql外鍵約束的作用是什麼?求答案
建立外鍵的作用就是保證數據的完整性,就如同表A裡有主鍵aa字段,表B裡有bb字段,當A為主表,B為從表時,主表的主鍵就是從表的外鍵,也就是說B表裡的bb字段的取值要來自A表裡的aa字段。限制約束,以達到數據上的完整
外鍵約束是怎麼使用的
create table t1(A1 int primary key)create table t2(B1 int,B2 int)--對t2表的B2創建外鍵(關聯字段t1表的A1字段)alter table t2 add constraint FK_B2_t1A1 foreign key(B2) references t1(A1)--注意:能作為一個表的外鍵關聯字段(t1.A1)這個字段必須是主鍵或有唯一約束的(t1的A1必須是主鍵或者unique)
創建外鍵約束的步驟
-- 創建測試主表. ID 是主鍵.CREATE TABLE test_main ( id INT NOT NULL, value VARCHAR(10), PRIMARY KEY(id) );-- 創建測試子表. CREATE TABLE test_sub ( id INT NOT NULL, main_id INT , value VARCHAR(10), PRIMARY KEY(id) );-- 插入測試主表數據.INSERT INTO test_main(id, value) VALUES (1, 'ONE');INSERT INTO test_main(id, value) VALUES (2, 'TWO');-- 插入測試子表數據.INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');-- 創建外鍵ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;go-- 驗證外鍵是否生效1> DELETE2> test_main3> WHERE4> ID = 1;5> go消息 547,級別 16,狀態 1,服務器 HOME-BED592453C\SQLEXPRESS,第 1 行DELETE 語句與 REFERENCE 約束"main_id_cons"衝突。該衝突發生於數據庫"Stock",表"dbo.test_sub", column 'main_id'。語句已終止。