外鍵約束是確保表中數據正確性的一個手段,它經常與主鍵約束一起使用。外鍵約束是用來約束兩個表中數據的一致性的。
1、 在創建表時爲其設這外鍵約束語法如下:
“ALTER TABLE table_name
Column_name1datatype,
Column_name2 datatype,
Column_name3 datatype
…
CONSTRAINT fk_name FOREIGN KEY(列表1) references table_name1(列表2)
);”*這裏,fk_name是外鍵約束的名稱,列名1是設置外鍵約束的列,table_name1是父表的名字,列名2是父表中主鍵列。
【示例2】創建客房類型信息表(typeinfo),在創建客房信息表(roominfo),併爲其中房間類型(roomtype)列創建外鍵約束。
編號 | 數據類型 | 約束1 | Interger | 房間類型 |
Roomtype | 20) | <span font-style:normal;"="" style="word-wrap: break-word;"> |
創建客房類型信息表的代碼如下所示:
“CREATE TABLE TYPEINFO
(
ROOMTYPEID INT PEIMARY KEY
ROOMTYPE VACHAR(20)
);”
創建客房信息表(Roominfo)時爲房間類型(Roomtype)列添加外鍵約束的代碼如下:
“CREATE TABLE TYPEINFO
(
ROOMID INT PRIMARY KEY,
ROOMTYPEID INT,
ROOMPRICE NUMERIC(7,2),
ROOMSTATE VARCHAR(2),
PEMARK VARCHAR(200),
CONSTRAINT PK_ROOMINFO FOREIGN KEY(ROOMID) REFFERENCES
TYPEINFO(ROOMTYPEID)
);”
在修改表時添加外鍵約束
外鍵約束也可以在修改表時添加,但是添加外鍵約束的前提是設置外鍵約束的列中的數據必須與引用的主鍵表中字段一致或者是沒有數據。
在修改表時添加外鍵外鍵約束的語法如下:
“CREATE TABLE table_name
ADD CONSTRAINT fk_name FOREIGN KEY(列名1)REFERENCES table_name2(列表2)” *這裏,fk_name是外鍵約束的名稱,列名1是table_name1中設置外鍵約束的列;table_name2是父表的名字;列名2是父表中的主鍵列。
【示例1】假設客房信息表(ROOMINFO)已經存在,現要爲客房信息表(RoomInfo)中房間類型編號列(RoomTypeId)添加外鍵約束,使其引用房間類型表(TypeInfo)中房間類型編號列(RoomTypeId)。
代碼如下:
“ALTER TABLE RoomInfo
ADD CONSTRAINT fk_name roomtypeid FORRIGN KEY(RoomTypeId) REFERECES
TypeInfo(RoomTypeId)”
刪除外鍵約束
當一個表中不需要外鍵約束時,就需要從表中將其刪除。刪除外鍵約束的方法要比創建外鍵約束容易多,刪除外鍵約束的語法如下所示:
“ALTER TABLE table_name
DROP FOREIGN KEY FK_NAME;”
這裏,FK_NAME是外鍵約束的名字,下面示例來演示如何刪除主鍵約束。
【示例1】刪除客房信息表(RoomInfo)中外鍵約束fk_roomtypeid.
“ALTER TABLE ROOMINFO
DROP FOREIGN KEY FK_ROOMTYPEID;”