SQL Chiave Esterna




  SQL > Modifica delle Tabelle > Chiave Esterna

Una chiave esterna rappresenta uno o più campi che fanno riferimento alla chiave primaria di un’altra tabella. Lo scopo della chiave esterna è garantire l’integrità referenziale dei dati. Cioè, sono consentiti solo i valori che si ritiene debbano apparire nel database.

Ad esempio, si supponga di disporre di due tabelle: una tabella CUSTOMER, in cui sono inclusi tutti i dati dei clienti e una tabella ORDERS, in cui sono contenuti tutti gli ordini dei clienti. Il vincolo impostato stabilisce che tutti gli ordini devono essere associati a un cliente presente nella tabella CUSTOMER. In questo caso, verrà posizionata una chiave esterna sulla tabella ORDERS che sia in relazione con la chiave primaria della tabella CUSTOMER. In questo modo, è possibile garantire che tutti gli ordini della tabella ORDERS sono correlati a un cliente presente nella tabella CUSTOMER. Cioè, nella tabella ORDERS non possono essere contenute informazioni relative a un cliente che non è incluso nella tabella CUSTOMER.

La struttura di queste due tabelle è la seguente:

Tabella CUSTOMER
Nome di Colonna Caratteristica
SID Chiave Primaria
Last_Name  
First_Name  

Tabella ORDERS
Nome di Colonna Caratteristica
Order_ID Chiave Primaria
Order_Date  
Customer_SID Chiave Esterna
Amount  

Nell’esempio precedente, la colonna Customer_SID contenuta nella tabella ORDERS rappresenta una chiave esterna facente riferimento alla colonna SID della tabella CUSTOMER.

A seguire, vengono illustrati degli esempi nei quali viene mostrato come specificare una chiave esterna durante la creazione della tabella ORDERS:

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

A seguire, vengono illustrati degli esempi per specificare una chiave esterna mediante la modifica di una tabella. Si supponga che la tabella ORDERS sia stata creata e che la chiave esterna non sia stata ancora inserita:

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   Tutti i diritti riservati.



SQL CREATE TABLE
SQL CONSTRAINT
SQL NOT NULL
SQL DEFAULT
SQL UNIQUE
SQL CHECK
SQL Chiave Primaria
SQL Chiave Esterna
SQL CREATE VIEW
SQL CREATE INDEX
SQL ALTER TABLE
SQL DROP TABLE
SQL TRUNCATE TABLE
SQL INSERT INTO
SQL UPDATE
SQL DELETE FROM




Indice del sito