Esercitazione MySQL

MySQL HOME Introduzione a MySQL MySQL RDBMS

MySQL SQL

MySQL SQL SELEZIONA MySQL MySQL DOVE MySQL E, O, NON MySQL ORDINA PER MySQL INSERT IN Valori NULL MySQL AGGIORNAMENTO MySQL MySQL DELETE LIMITE MySQL MySQL MIN e MAX MySQL COUNT, MEDIO, SOMMA MySQL MI PIACE Caratteri jolly MySQL MySQL IN MySQL TRA alias MySQL MySQL si unisce MySQL INNER JIN MySQL ha lasciato il join MySQL GIUSTO UNISCITI MySQL CROSS JIN MySQL Self Join MySQL UNION MySQL GRUPPO PER MySQL AVENDO MySQL ESISTE MySQL QUALSIASI, TUTTO SELEZIONA INSERTO MySQL CASO MySQL Funzioni null di MySQL Commenti MySQL Operatori MySQL

Database MySQL

MySQL Crea DB MySQL Drop DB MySQL Crea tabella MySQL Drop Table MySQL Alter tabella Vincoli MySQL MySQL non nullo MySQL unico Chiave primaria MySQL Chiave esterna MySQL Controllo MySQL MySQL predefinito MySQL Crea indice Incremento automatico di MySQL Date MySQL Viste MySQL

Riferimenti MySQL

Tipi di dati MySQL Funzioni MySQL

Esempi MySQL

Esempi MySQL Quiz MySQL Esercizi MySQL

MySQL FOREIGN KEY Vincolo


MySQL FOREIGN KEY Vincolo

Il FOREIGN KEYvincolo viene utilizzato per impedire azioni che distruggono i collegamenti tra le tabelle.

A FOREIGN KEYè un campo (o una raccolta di campi) in una tabella, che fa riferimento a PRIMARY KEYin un'altra tabella.

La tabella con la chiave esterna è denominata tabella figlio e la tabella con la chiave primaria è denominata tabella di riferimento o padre.

Osserva le due tabelle seguenti:

Tabella delle persone

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

Tabella degli ordini

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

Si noti che la colonna "PersonID" nella tabella "Ordini" punta alla colonna "PersonID" nella tabella "Persone".

La colonna "PersonID" nella tabella "Persone" è quella PRIMARY KEYnella tabella "Persone".

La colonna "PersonID" nella tabella "Ordini" è una FOREIGN KEYnella tabella "Ordini".

Il FOREIGN KEYvincolo impedisce l'inserimento di dati non validi nella colonna della chiave esterna, poiché deve essere uno dei valori contenuti nella tabella padre.



CHIAVE STRANIERA su CREATE TABLE

Il seguente SQL crea una FOREIGN KEYnella colonna "PersonID" quando viene creata la tabella "Ordini":

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

Per consentire la denominazione di un FOREIGN KEYvincolo e per definire un FOREIGN KEYvincolo su più colonne, utilizzare la seguente sintassi 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)
);

CHIAVE STRANIERA su ALTER TABLE

Per creare un FOREIGN KEYvincolo sulla colonna "PersonID" quando la tabella "Ordini" è già stata creata, utilizzare il seguente SQL:

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

Per consentire la denominazione di un FOREIGN KEYvincolo e per definire un FOREIGN KEYvincolo su più colonne, utilizzare la seguente sintassi SQL:

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

RILASCIA un vincolo CHIAVE ESTERA

Per eliminare un FOREIGN KEYvincolo, utilizzare il seguente SQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;