SQL Externe Sleutel




  SQL > Tabelbewerkingen > Externe Sleutel

Een externe sleutel is een veld (of velden) die verwijzen naar de primaire sleutel van een andere tabel. De externe sleutel dient om de referentiële integriteit van de gegevens te waarborgen. M.a.w. enkel waarden die verondersteld zijn te verschijnen in de database zijn toegelaten.

Veronderstel dat u twee tabellen hebt, een tabel CUSTOMER met alle klantengegevens, en een tabel ORDERS met alle klantenbestellingen. De beperking is in dit geval dat alle bestellingen moeten zijn geassocieerd met een klant die al in de tabel CUSTOMER aanwezig is. In dit geval plaatst u een externe sleutel op de tabel ORDERS en relateert u deze aan de primaire sleutel van de tabel CUSTOMER. Zo zorgt u ervoor dat alle bestellingen in de tabel ORDERS worden gerelateerd aan een klant in de tabel CUSTOMER. M.a.w. de tabel ORDERS kan geen informatie bevatten over een klant die niet aanwezig is in de tabel CUSTOMER.

De structuur van deze twee tabellen zal er als volgt uitzien:

Tabel CUSTOMER
Kolom Naam Kenmerk
SID Primaire Sleute
Last_Name  
First_Name  

Tabel ORDERS
Kolom Naam Kenmerk
Order_ID Primaire Sleute
Order_Date  
Customer_SID Externe Sleutel
Amount  

In bovenstaand voorbeeld is de kolom Customer_SID in de tabel ORDERS een externe sleutel die verwijst naar de SID-kolom in de tabel CUSTOMER.

Hierna vindt u voorbeelden van hoe de externe sleutel wordt gespecificeerd wanneer u de tabel ORDERS aanmaakt:

MySQL:

CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
PRIMARY KEY (Order_ID),
FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID));

Oracle:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date date,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

SQL Server:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date datetime,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

Hierna vindt u voorbeelden voor het specificeren van een externe sleutel wanneer u een tabel wijzigt. Dit veronderstelt dat de tabel ORDERS werd aangemaakt, en dat de externe sleutel nog niet werd ingesteld:

MySQL:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

Oracle:

ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL Server:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL CREATE VIEW >>



Copyright © 2014   1keydata.com   Alle rechten voorbehouden



SQL CREATE TABLE
SQL NOT NULL
SQL DEFAULT
SQL UNIQUE
SQL CHECK
SQL CONSTRAINT
SQL Primaire Sleutel
SQL Externe Sleutel
SQL CREATE VIEW
SQL CREATE INDEX
SQL ALTER TABLE
SQL DROP TABLE
SQL TRUNCATE TABLE
SQL INSERT INTO
SQL UPDATE
SQL DELETE FROM




Site-overzicht