SQL kurz

SQL HOME Úvod do SQL Syntaxe SQL SQL Select SQL Select Distinct SQL Kde SQL A nebo ne Pořadí SQL podle SQL Vložit do Hodnoty SQL Null Aktualizace SQL SQL Odstranit SQL Select Top SQL Min a Max Počet SQL, průměr, součet SQL Like Zástupné znaky SQL SQL In SQL mezi Aliasy SQL SQL se připojí SQL Vnitřní spojení SQL Levé připojení SQL Right Join Plné připojení k SQL SQL Self Join SQL Union SQL Group By SQL mít SQL existuje SQL Any, All SQL Select Into SQL Vložit do výběru Případ SQL Funkce SQL Null SQL uložené procedury Komentáře SQL Operátoři SQL

SQL databáze

SQL Vytvořit DB SQL Drop DB SQL Backup DB Vytvořit tabulku SQL SQL Drop Table SQL Alter Table Omezení SQL SQL Not Null Jedinečný SQL Primární klíč SQL cizí klíč SQL Kontrola SQL Výchozí SQL SQL index Automatické zvýšení SQL SQL data SQL pohledy SQL Injection SQL Hosting SQL datové typy

SQL reference

Klíčová slova SQL Funkce MySQL Funkce serveru SQL Funkce MS Access SQL Quick Ref

Příklady SQL

Příklady SQL SQL kvíz SQL cvičení SQL certifikát

Omezení cizího klíče SQL


Omezení cizího klíče SQL

Omezení FOREIGN KEYse používá k zamezení akcí, které by zničily propojení mezi tabulkami.

A FOREIGN KEYje pole (nebo kolekce polí) v jedné tabulce, které odkazuje na pole PRIMARY KEYv jiné tabulce.

Tabulka s cizím klíčem se nazývá podřízená tabulka a tabulka s primárním klíčem se nazývá odkazovaná nebo nadřazená tabulka.

Podívejte se na následující dvě tabulky:

Tabulka osob

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

Tabulka objednávek

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

Všimněte si, že sloupec "ID osoby" v tabulce "Objednávky" odkazuje na sloupec "ID osoby" v tabulce "Osoby".

Sloupec "ID osoby" v tabulce "Osoby" je PRIMARY KEYv tabulce "Osoby".

Sloupec "ID osoby" v tabulce "Objednávky" je FOREIGN KEYv tabulce "Objednávky".

Omezení FOREIGN KEYbrání vložení neplatných dat do sloupce cizího klíče, protože to musí být jedna z hodnot obsažených v nadřazené tabulce.



SQL FOREIGN KEY na CREATE TABLE

Následující SQL vytvoří ve FOREIGN KEYsloupci "PersonID" při vytvoření tabulky "Objednávky":

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

Chcete-li povolit pojmenování FOREIGN KEYomezení a definovat FOREIGN KEYomezení pro více sloupců, použijte následující syntaxi SQL:

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 na ALTER TABLE

Chcete-li vytvořit FOREIGN KEYomezení ve sloupci "PersonID", když je tabulka "Objednávky" již vytvořena, použijte následující SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Chcete-li povolit pojmenování FOREIGN KEYomezení a definovat FOREIGN KEYomezení pro více sloupců, použijte následující syntaxi SQL:

MySQL / SQL Server / Oracle / MS Access:

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

ZRUŠTE ZAHRANIČNÍ KLÍČOVÉ omezení

Chcete-li zrušit FOREIGN KEYomezení, použijte následující SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;