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
Tabella ORDERS
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);
Copyright © 2025 1keydata.com Tutti i diritti riservati |