SQL handleiding

SQL TUIS SQL Inleiding SQL-sintaksis SQL Kies SQL Kies Distinct SQL Waar SQL En, of, nie SQL Bestel deur SQL Voeg in SQL nulwaardes SQL-opdatering SQL verwyder SQL Kies Top SQL Min en Max SQL-telling, gemiddeld, som SQL Soos SQL Wildcards SQL in SQL Tussen SQL aliasse SQL sluit aan SQL Inner Sluit aan SQL Links Sluit aan SQL Reg Sluit aan SQL Volledige Aansluiting SQL Self Sluit aan SQL Unie SQL Groep deur SQL het SQL bestaan SQL Enige, Almal SQL Kies In SQL Voeg in Kies SQL-geval SQL nul-funksies SQL gestoorde prosedures SQL opmerkings SQL-operateurs

SQL- databasis

SQL Skep DB SQL Drop DB SQL Backup DB SQL Skep tabel SQL Drop Tabel SQL Verander Tabel SQL-beperkings SQL nie nul nie SQL Uniek SQL Primêre Sleutel SQL buitelandse sleutel SQL Check SQL verstek SQL-indeks SQL Outo-verhoging SQL datums SQL-aansigte SQL-inspuiting SQL Hosting SQL-datatipes

SQL- verwysings

SQL sleutelwoorde MySQL-funksies SQL Server funksies MS Access funksies SQL Vinnige Verw

SQL voorbeelde

SQL voorbeelde SQL vasvra SQL-oefeninge SQL-sertifikaat

SQL BUITELANDSE SLEUTEL beperking


SQL BUITELANDSE SLEUTEL beperking

Die FOREIGN KEYbeperking word gebruik om aksies te voorkom wat skakels tussen tabelle sal vernietig.

A FOREIGN KEYis 'n veld (of versameling velde) in een tabel, wat verwys na die PRIMARY KEYin 'n ander tabel.

Die tabel met die vreemde sleutel word die kindtabel genoem, en die tabel met die primêre sleutel word die verwysde of ouertabel genoem.

Kyk na die volgende twee tabelle:

Persone Tabel

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

Bestellingstabel

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

Let daarop dat die "PersonID"-kolom in die "Bestellings"-tabel na die "PersonID"-kolom in die "Persone"-tabel wys.

Die "PersonID"-kolom in die "Persone"-tabel is die PRIMARY KEYin die "Persone"-tabel.

Die "PersonID"-kolom in die "Bestellings"-tabel is 'n FOREIGN KEYin die "Bestellings"-tabel.

Die FOREIGN KEYbeperking verhoed dat ongeldige data in die vreemde sleutelkolom ingevoeg word, want dit moet een van die waardes wees wat in die ouertabel vervat is.



SQL BUITELANDSE SLEUTEL op CREATE TABLE

Die volgende SQL skep 'n FOREIGN KEYop die "PersonID" kolom wanneer die "Bestellings" tabel geskep word:

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

Om die naam van 'n beperking toe te laat, en om 'n beperking op veelvuldige kolomme FOREIGN KEYte definieer , gebruik die volgende SQL-sintaksis: 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 BUITELANDSE SLEUTEL op ALTER TABEL

Om 'n FOREIGN KEYbeperking op die "PersonID"-kolom te skep wanneer die "Bestellings"-tabel reeds geskep is, gebruik die volgende SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Om die naam van 'n beperking toe te laat, en om 'n beperking op veelvuldige kolomme FOREIGN KEYte definieer , gebruik die volgende SQL-sintaksis: FOREIGN KEY

MySQL / SQL Server / Oracle / MS Access:

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

LAAT 'n BUITELANDSE SLEUTEL-beperking

Om 'n FOREIGN KEYbeperking te laat vaar, gebruik die volgende SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;