Samouczek MySQL

Strona główna MySQL Wprowadzenie do MySQL RDBMS MySQL

SQL MySQL

SQL MySQL WYBIERZ MySQL MySQL GDZIE MySQL I, LUB, NIE MySQL ZAMÓW PRZEZ INSERT INTO w MySQL Wartości NULL MySQL AKTUALIZACJA MySQL USUŃ MYSQL LIMIT MySQL MIN i MAX w MySQL LICZBA, ŚREDNIA, SUMA MYSQL PODOBNE do MySQL Symbole wieloznaczne MySQL MySQL IN MySQL POMIĘDZY Aliasy MySQL Połączenia MySQL WEWNĘTRZNE DOŁĄCZENIE do MySQL DOŁĄCZ DO MYSQL W LEWO DOŁĄCZ DO MYSQL DOŁĄCZ DO MYSQL Samo dołączanie do MySQL UNIA MySQL MySQL GRUPA WG MySQL POSIADAJĄCY MySQL ISTNIEJE MySQL WSZYSTKO, WSZYSTKO MySQL WSTAWIĆ WYBIERZ PRZYPADEK MySQL Funkcje zerowe MySQL Komentarze MySQL Operatory MySQL

Baza danych MySQL

Tworzenie bazy danych MySQL Upuść bazę danych MySQL Utwórz tabelę MySQL Tabela upuszczania MySQL Zmień tabelę MySQL Ograniczenia MySQL MySQL nie jest pusty Unikalny MySQL Klucz podstawowy MySQL Klucz obcy MySQL Kontrola MySQL Domyślny MySQL Indeks tworzenia MySQL Automatyczny przyrost MySQL Daty MySQL Widoki MySQL

Referencje MySQL

Typy danych MySQL Funkcje MySQL

Przykłady MySQL

Przykłady MySQL Quiz MySQL Ćwiczenia MySQL

Ograniczenie klucza obcego MySQL


Ograniczenie klucza obcego MySQL

Ograniczenie FOREIGN KEYsłuży do zapobiegania akcjom, które zniszczyłyby połączenia między tabelami.

A FOREIGN KEYto pole (lub zbiór pól) w jednej tabeli, które odwołuje się do pola PRIMARY KEYw innej tabeli.

Tabela z kluczem obcym nazywana jest tabelą podrzędną, a tabela z kluczem podstawowym nazywana jest tabelą odniesienia lub tabelą nadrzędną.

Spójrz na następujące dwie tabele:

Tabela osób

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

Tabela zamówień

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

Zwróć uwagę, że kolumna „PersonID” w tabeli „Zamówienia” wskazuje kolumnę „PersonID” w tabeli „Osoby”.

Kolumna „PersonID” w tabeli „Osoby” to kolumna w tabeli PRIMARY KEY„Osoby”.

Kolumna „PersonID” w tabeli „Zamówienia” znajduje się FOREIGN KEYw tabeli „Zamówienia”.

Ograniczenie FOREIGN KEYzapobiega wstawianiu nieprawidłowych danych do kolumny klucza obcego, ponieważ musi to być jedna z wartości zawartych w tabeli nadrzędnej.



KLUCZ OBCY na CREATE TABLE

Poniższy kod SQL tworzy FOREIGN KEYkolumnę „PersonID” podczas tworzenia tabeli „Zamówienia”:

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

Aby zezwolić na nazywanie FOREIGN KEYograniczenia i zdefiniować FOREIGN KEYograniczenie na wielu kolumnach, użyj następującej składni SQL:

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

KLUCZ OBCY NA TABELI ALTER

Aby utworzyć FOREIGN KEYograniczenie dla kolumny „PersonID”, gdy tabela „Orders” jest już utworzona, użyj następującego kodu SQL:

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

Aby zezwolić na nazywanie FOREIGN KEYograniczenia i zdefiniować FOREIGN KEYograniczenie na wielu kolumnach, użyj następującej składni SQL:

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

UPUŚĆ OGRANICZENIE KLUCZA OBCEGO

Aby usunąć FOREIGN KEYograniczenie, użyj następującego kodu SQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;