在SQL中,可以使用以下語法來創建外鍵約束:
1. 在創建表時添加外鍵約束:
```
CREATE TABLE 表名 (
列1 數據類型,
列2 數據類型,
...
FOREIGN KEY (外鍵列) REFERENCES 參考表名 (參考表的列)
);
```
例如,創建一個名為"Orders"的表,包含一個外鍵列"CustomerID",參考"Customers"表的"CustomerID"列:
```
CREATE TABLE Orders (
OrderID int,
ProductName varchar(255),
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
```
2. 在已經存在的表中添加外鍵約束:
```
ALTER TABLE 表名
ADD FOREIGN KEY (外鍵列) REFERENCES 參考表名 (參考表的列);
```
例如,向已經存在的"Orders"表中添加外鍵約束:
```
ALTER TABLE Orders
ADD FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
```
3. 可以使用ON DELETE和ON UPDATE子句指定在主表中的行被刪除或更新時的動作:
```
FOREIGN KEY (外鍵列) REFERENCES 參考表名 (參考表的列) ON DELETE 動作 ON UPDATE 動作
```
其中,動作可以是以下值之一:
- CASCADE:級聯操作,即刪除或更新主表中的行時,同時刪除或更新外鍵表中的相關行。
- SET NULL:設置外鍵表中的外鍵列為NULL。
- SET DEFAULT:設置外鍵表中的外鍵列為默認值。
- NO ACTION:不執行任何操作,當刪除或更新主表中的行時,如果外鍵表中存在與之關聯的行,則會產生錯誤。
例如,創建一個名為"Orders"的表,包含一個外鍵列"CustomerID",參考"Customers"表的"CustomerID"列,級聯刪除和級聯更新:
```
CREATE TABLE Orders (
OrderID int,
ProductName varchar(255),
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
);
```