SQL -Tutorial

SQL-HOME SQL-Einführung SQL-Syntax SQL-Auswahl SQL Wählen Sie Eindeutig aus SQL-Wo SQL Und, Oder, Nicht SQL-Reihenfolge nach SQL einfügen in SQL-Nullwerte SQL-Update SQL-Löschen SQL-Auswahl oben SQL-Min und -Max SQL-Anzahl, Durchschnitt, Summe SQL-ähnlich SQL-Platzhalter SQL-Eingang SQL zwischen SQL-Aliase SQL-Joins SQL Inner Join SQL-Left-Join SQL-Rechtsverknüpfung Vollständiger SQL-Join SQL-Self-Join SQL-Union SQL-Gruppierung nach SQL-Haben SQL existiert SQL Beliebig, Alle SQL-Auswahl in SQL-Insert in Select SQL-Fall SQL-Null-Funktionen Gespeicherte SQL-Prozeduren SQL-Kommentare SQL-Operatoren

SQL- Datenbank

SQL DB erstellen SQL-Drop-DB SQL-Sicherungsdatenbank SQL-Tabelle erstellen SQL-Drop-Tabelle SQL Alter-Tabelle SQL-Einschränkungen SQL nicht Null SQL-eindeutig SQL-Primärschlüssel SQL-Fremdschlüssel SQL-Check SQL-Standard SQL-Index Automatisches SQL-Inkrement SQL-Daten SQL-Ansichten SQL-Injektion SQL-Hosting SQL-Datentypen

SQL- Referenzen

SQL-Schlüsselwörter MySQL-Funktionen SQL Server-Funktionen MS Access-Funktionen SQL-Schnellref

SQL- Beispiele

SQL-Beispiele SQL-Quiz SQL-Übungen SQL-Zertifikat

SQL FOREIGN KEY- Einschränkung


SQL FOREIGN KEY-Einschränkung

Die FOREIGN KEYEinschränkung wird verwendet, um Aktionen zu verhindern, die Verknüpfungen zwischen Tabellen zerstören würden.

A FOREIGN KEYist ein Feld (oder eine Sammlung von Feldern) in einer Tabelle, das auf das PRIMARY KEYin einer anderen Tabelle verweist.

Die Tabelle mit dem Fremdschlüssel wird als untergeordnete Tabelle bezeichnet, und die Tabelle mit dem Primärschlüssel wird als referenzierte oder übergeordnete Tabelle bezeichnet.

Sehen Sie sich die folgenden beiden Tabellen an:

Personentabelle

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Bestelltabelle

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Beachten Sie, dass die Spalte „PersonID“ in der Tabelle „Bestellungen“ auf die Spalte „PersonID“ in der Tabelle „Personen“ verweist.

Die Spalte "PersonID" in der Tabelle "Personen" ist die PRIMARY KEYin der Tabelle "Personen".

Die Spalte "PersonID" in der Tabelle "Bestellungen" ist eine FOREIGN KEYin der Tabelle "Bestellungen".

Die FOREIGN KEYEinschränkung verhindert, dass ungültige Daten in die Fremdschlüsselspalte eingefügt werden, da es sich um einen der in der übergeordneten Tabelle enthaltenen Werte handeln muss.



SQL-FREMDSCHLÜSSEL bei CREATE TABLE

Die folgende SQL erstellt eine FOREIGN KEYin der Spalte „PersonID“, wenn die Tabelle „Orders“ erstellt wird:

MySQL:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

SQL-Server / Oracle / MS-Access:

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

Verwenden Sie die folgende SQL-Syntax, um die Benennung einer FOREIGN KEYEinschränkung zu ermöglichen und eine Einschränkung für mehrere Spalten zu definieren : FOREIGN KEY

MySQL/SQL-Server/Oracle/MS Access:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

SQL FOREIGN KEY auf ALTER TABLE

Verwenden Sie die folgende SQL, um eine FOREIGN KEYEinschränkung für die Spalte „PersonID“ zu erstellen, wenn die Tabelle „Orders“ bereits erstellt wurde:

MySQL/SQL-Server/Oracle/MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Verwenden Sie die folgende SQL-Syntax, um die Benennung einer FOREIGN KEYEinschränkung zu ermöglichen und eine Einschränkung für mehrere Spalten zu definieren : FOREIGN KEY

MySQL/SQL-Server/Oracle/MS Access:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

DROP a FOREIGN KEY Constraint

Um eine FOREIGN KEYEinschränkung zu löschen, verwenden Sie die folgende SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL-Server / Oracle / MS-Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;