SQL FOREIGN KEY-Bedingung
- Vorherige Seite SQL Primärschlüssel
- Nächste Seite SQL Check
SQL FOREIGN KEY-Bedingung
Ein FOREIGN KEY in einer Tabelle verweist auf die PRIMARY KEY in einer anderen Tabelle.
Lassen Sie uns mit einem Beispiel erklären, wie man Fremdschlüssel verwendet. Sehen Sie sich die folgenden beiden Tabellen an:
Tabelle "Persons":
Id_P | Nachname | Vorname | Adresse | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
Tabelle "Orders":
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
Bitte beachten Sie, dass die Spalte "Id_P" in der "Orders"-Tabelle auf die Spalte "Id_P" in der "Persons"-Tabelle verweist.
Die Spalte "Id_P" in der "Persons"-Tabelle ist die PRIMARY KEY in der "Persons"-Tabelle.
Die Spalte "Id_P" in der "Orders"-Tabelle ist ein FOREIGN KEY in der "Orders"-Tabelle.
FOREIGN KEY Constraints dienen dazu, Aktionen zu verhindern, die die Verbindungen zwischen Tabellen stören könnten.
FOREIGN KEY Constraints verhindern auch die Eingabe von ungültigen Daten in die Fremdschlüsselspalte, da dieser Wert einer der Werte in der auf die Tabelle verwiesenen Tabelle sein muss.
FOREIGN KEY Constraint bei CREATE TABLE
Die folgende SQL erstellt bei der Erstellung der "Orders"-Tabelle eine FOREIGN KEY für die Spalte "Id_P":
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Personen(Id_P) )
Wenn Sie FOREIGN KEY Beschränkungen benennen möchten und FOREIGN KEY Beschränkungen für mehrere Spalten definieren möchten, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Personen(Id_P) )
SQL FOREIGN KEY Constraint auf ALTER TABLE
Wenn Sie FOREIGN KEY Beschränkungen für die Spalte "Id_P" in der Tabelle "Orders" erstellen möchten, die bereits existiert, verwenden Sie die folgende SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD FOREIGN KEY (Id_P) REFERENCES Personen(Id_P)
Wenn Sie FOREIGN KEY Beschränkungen benennen möchten und FOREIGN KEY Beschränkungen für mehrere Spalten definieren möchten, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Personen(Id_P)
FOREIGN KEY Beschränkung aufheben
Um FOREIGN KEY Beschränkungen aufzuheben, verwenden Sie die folgende SQL:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
- Vorherige Seite SQL Primärschlüssel
- Nächste Seite SQL Check