W Microsoft SQL Server klucze główne (Primary Keys) i klucze obce (Foreign Keys) są kluczowymi elementami projektowania bazy danych i służą do ustalenia relacji między tabelami
PRIMARY KEY w definicji kolumny, aby określić, że jest to klucz główny, lub można użyć klauzuli CONSTRAINT do nazwania klucza głównego.Przykład definicji klucza głównego:
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
FOREIGN KEY w definicji kolumny lub klauzuli CONSTRAINT do określenia klucza obcego.Przykład definicji klucza obcego:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
OrderDate DATE,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
W powyższym przykładzie "CustomerID" w tabeli "Orders" jest kluczem obcym, który odnosi się do klucza głównego "CustomerID" w tabeli "Customers". Dzięki temu możemy śledzić, którzy klienci złożyli jakie zamówienia.
Funkcja ON DELETE w kontekście klucza obcego (Foreign Key) jest często używana w bazach danych, aby określić, co ma się stać z danymi w tabeli podrzędnej (tabeli zawierającej klucz obcy), gdy rekord w tabeli nadrzędnej (tabeli, do której odnosi się klucz obcy) zostanie usunięty. Jest to ważne, ponieważ pozwala na zachowanie spójności danych między tabelami. Istnieją różne opcje ON DELETE, które można zastosować w zależności od potrzeb: