Sei sulla pagina 1di 1

 Nel DBMS per creare la chiave esterna nella tabella del lato a molti di una relazione 1:N

N.B. : nella tabella corrispondente al lato a molti il campo che rappresenta la chiave esterna
1. deve essere indicizzato,
2. deve essere dello stesso tipo e con gli stessi attributi del corrispondente campo nella
tabella del lato a 1
3. di solito quando la chiave primaria della tabella del lato a 1 è di tipo SERIAL la
corrispondente chiave esterna deve essere di tipo BIGINT, ATTRIBUTI : UNSIGNED

- Nella finestra della tabella del lato a molti selezionare STRUTTURA,


- quindi click sul pulsante VEDI RELAZIONI
- nella finestra delle relazioni in corrispondenza del campo da settare come chiave esterna aprire il
menù a tendina VINCOLO DELLA CHIAVE ESTERNA per avere l’elenco dei campi, quindi
selezionare il corrispondente campo ed eseguire.

LE QUERY A CAMPI INCROCIATI su due tabelle del DB legate tra loro da una chiave
esterna.

SELECT nome_campo1, …, nome_campoN


FROM tabella1 INNER JOIN tabella2
ON ( tabella2.chiave_esterna = tabella1. chiave_primaria )
WHERE ( criterio di estrazione );

ESEMPI:

1) Voglio conoscere il titolo dei quadri di un pittore dato il suo cognome


SELECT quadri.titolo, pittori.cognome
FROM quadri
INNER JOIN pittori ON ( quadri.codpittore = pittori.codpit )
WHERE pittori.cognome ='neri';

2) Voglio conoscere cognome, nome e il titolo dei quadri dei pittori inglesi
SELECT pittori.cognome, pittori.nome, quadri.titolo
FROM quadri
INNER JOIN pittori ON ( quadri.codpittore = pittori.codpit )
WHERE (pittori.nazionalità LIKE 'inglese');

3) Voglio conoscere ………….. completalo tu


SELECT pittori.cognome, pittori.nazionalità, quadri.titolo, quadri.genere
FROM pittori
INNER JOIN quadri ON ( pittori.codpit = quadri.codpittore )
WHERE ((quadri.genere ='storico')OR (quadri.genere ='astratto'));

Potrebbero piacerti anche