SQL外鍵


外鍵:外鍵是用來再兩個表的數據之間建立連接,他可以是一列也可以是多列。一個表中可以有一個或多個外鍵。

         一個表的外鍵可以是空值,若不為空值,則每一個外鍵值必須等於另外一個表中的主鍵的某個值。

外鍵是一個表中的字段,他可以不是本表中的主鍵,但對應另外一個表的主鍵,外鍵的作用是保證數據引用的完整性。

定義完外鍵后,不允許刪除在另一表中具有關聯的行。列如:部門表tb_dept的主鍵是id,在員工表tb_emp5中有一個鍵deptId跟這個id關聯。

   主表(父表):對於兩個有關聯的表而言,相關字段中主鍵所在的那個表為主表。

   從表(子表):對於兩個有關聯的表而言,相關字段中的外鍵所在的那個表為從表。

 

外鍵名:定義外鍵約束的名稱,一個表中不能有相同名稱的外鍵。

字段名:表示從表需要添加外鍵約束的字段列。

主表名:即被從表外鍵所依賴的表的名稱

主鍵列:表示主表中定義的主鍵字段,或者字段組合。

 

ON  DELETE 和  ON UPDATE :指定在發生刪除或更改的表中。

 

例子:

創建一個部門表tb_dept1,表結構SQL語句如下:

CREATE  TABLE  tb_dept1
(
     id  INT PRIMARY KEY,
     name  VARCHAR(22) NOT NULL,
    location  VARCHAR(50) NULL  
);

定義數據表tb_emp6,讓它的鍵deptId作為外鍵關聯到tb_dept1的主鍵id,SQL語句如下:

CREATE  TABLE tb_emp6
(
    id   INT  PRIMARY KEY,
    name  VARCHAR(25),
    deptId  INT,
    salary   FLOAT,
    CONSTRAINT  fk 員工部門編號  FOREIGN KEY(deptId)  REFERENCES tb_dept1(id) 
);

在未設外鍵表中添加外鍵 可以使用ALTER語句將FOREIGN KEY約束添加到該表中,添加主鍵的ALTER語句語法格式如下  

CREATE  TABLE tb_emp6
(
   id   INT  PRIMARY KEY,
   name  VARCHAR(25),
   deptId  INT,
   salary  FLOAT
)--創建表但未添加外鍵

后期添加外鍵SQL語法如下:

GO
ALTER  TABLE tb_emp6
ADD
CANSTRAINT fk 員工不猛編號
FOREIGN  KEY(deptId) REFERENCES  tb_dept1(id)

刪除外鍵約束

刪除tb_emp6表中創建的 “fk_員工部門編號”外鍵約束,輸入語句如下:
ALTER TABLE tb_emp6
DROP CONSTRAINT fk_員工部門編號;

執行完成后將刪除tb_emp6的外鍵約束。

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM