La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni.

Presentazioni simili


Presentazione sul tema: "1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni."— Transcript della presentazione:

1 1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni di correttezza della BD ed è molto potente

2 2 Vincoli Esempio: create table Impiegato (Matr character(6) check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)), Cogn character(20) check (Cogn is not null and 2 > (select count(*) from Impiegato I where Nome = I.Nome and Cogn = I.Cogn)), Nome character(20) check (Nome is not null and 2 > (…)), Dip character(5) check (Dip in (select NomeD from Dipartimento)))

3 3 Vincoli Esempio: create table Impiegato (Matr character(6) check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)), Cogn character(20) check (Cogn is not null and 2 > (select count(*) from Impiegato I where Nome = I.Nome and Cogn = I.Cogn)), Nome character(20) check (Nome is not null and 2 > (…)), Dip character(5) check (Dip in (select NomeD from Dipartimento))) Vincolo di integrità Un solo impiegato con stesso nome/ cognome

4 4 Vincoli Esempio: create table Impiegati (Matr … primary key, Cogn … not null, Nome … not null, Dip … references Dipartimento(NomeD), unique(Cogn,Nome)) Così è più semplice (e più efficiente dal punto di vista dell’implementazione) ma check utile per vincoli complessi (per esempio, libro pagina 138)

5 5 Vincoli Proviamo aggiungere 2, Laura, Rubini alla tabella (dunque, Matr è 2): MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini Impiegato

6 6 Vincoli Crea una copia della tabella Impiegato I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini

7 7 Vincoli Diciamo che “Matr=2”; controllare check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)) I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini

8 8 Vincoli Diciamo che “Matr=2”; controllare check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)) I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini 2 volte!

9 9 Vincoli Diciamo che “Matr=2”; controllare check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)) I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini 2 volte!

10 10 Vincoli Diciamo che “Matr=2”; controllare check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)) I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini 2 volte! 2 non è uguale a 1

11 11 Vincoli Diciamo che “Matr=2”; controllare check (Matr is not null and 1 = (select count(*) from Impiegato I where Matr = I.Matr)) I MatrNomeCognome 1MarioRossi 2FrancoVerde 3AndreaNero 4LucaBianco 2LauraRubini 2 volte! 2 non è uguale a 1 Vincolo non è soddisfato!!!


Scaricare ppt "1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni."

Presentazioni simili


Annunci Google