SQL -zelfstudie

SQL HOME SQL-intro SQL-syntaxis SQL-selectie SQL Select Distinct SQL waar SQL en, of, niet SQL-bestelling op SQL invoegen in SQL-nulwaarden SQL-update SQL verwijderen SQL Selecteer Top SQL Min en Max Aantal SQL, Gem, Som SQL Vind ik leuk SQL-jokertekens SQL In SQL Tussen SQL-aliassen SQL-joins SQL Inner Join SQL Left Join SQL juiste join Volledige deelname aan SQL Zelf lid worden van SQL SQL-unie SQL Groeperen op SQL hebben SQL bestaat SQL Alle, Alle SQL Selecteren in SQL invoegen in selecteren SQL-geval SQL Null-functies Op SQL opgeslagen procedures SQL-opmerkingen SQL-operators

SQL- database

SQL creëren DB SQL Drop-DB SQL back-up DB SQL-tabel maken SQL-droptabel SQL-wijzigingstabel SQL-beperkingen SQL niet null SQL Uniek Primaire SQL-sleutel SQL externe sleutel SQL-controle SQL-standaard SQL-index Automatische SQL-verhoging SQL-datums SQL-weergaven SQL injectie SQL-hosting SQL-gegevenstypen

SQL- verwijzingen

SQL-trefwoorden MySQL-functies SQL Server-functies MS Access-functies Snelle SQL-referentie

SQL- voorbeelden

SQL-voorbeelden SQL-quiz SQL-oefeningen SQL-certificaat

SQL FOREIGN KEY -beperking


SQL FOREIGN KEY-beperking

De FOREIGN KEYbeperking wordt gebruikt om acties te voorkomen die koppelingen tussen tabellen zouden vernietigen.

A FOREIGN KEYis een veld (of verzameling velden) in de ene tabel, dat verwijst naar de PRIMARY KEYin een andere tabel.

De tabel met de externe sleutel wordt de onderliggende tabel genoemd en de tabel met de primaire sleutel wordt de tabel waarnaar wordt verwezen of de bovenliggende tabel.

Bekijk de volgende twee tabellen:

personen tafel

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

Bestellingen Tabel:

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

Merk op dat de kolom "Persoons-ID" in de tabel "Bestellingen" verwijst naar de kolom "Persoons-ID" in de tabel "Personen".

De kolom "Persoons-ID" in de tabel "Personen" is de kolom in de tabel PRIMARY KEY"Personen".

De kolom "Persoons-ID" in de tabel "Bestellingen" is een FOREIGN KEYin de tabel "Bestellingen".

De FOREIGN KEYbeperking voorkomt dat ongeldige gegevens worden ingevoegd in de refererende-sleutelkolom, omdat het een van de waarden in de bovenliggende tabel moet zijn.



SQL FOREIGN KEY op CREATE TABLE

De volgende SQL creëert een FOREIGN KEYin de kolom "PersonID" wanneer de tabel "Orders" wordt gemaakt:

MijnSQL:

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)
);

Gebruik de volgende SQL-syntaxis om het benoemen van een beperking toe te staan ​​en om een beperking voor meerdere kolommen FOREIGN KEYte definiëren : 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 op ALTER TABLE

Gebruik de volgende SQL om een FOREIGN KEYbeperking te maken voor de kolom "Persoons-ID" wanneer de tabel "Orders" al is gemaakt:

MySQL / SQL Server / Oracle / MS Access:

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

Gebruik de volgende SQL-syntaxis om het benoemen van een beperking toe te staan ​​en om een beperking voor meerdere kolommen FOREIGN KEYte definiëren : FOREIGN KEY

MySQL / SQL Server / Oracle / MS Access:

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

DROP een BUITENLANDSE SLEUTELbeperking

FOREIGN KEYGebruik de volgende SQL om een beperking te verwijderen:

MijnSQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS-Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;