create table IMPIEGATO (MATRICOLA VARCHAR(10) NOT NULL, COGNOME VARCHAR(10), STIPENDIO NUMERIC(10), DIPARTIMENTO VARCHAR(10), CONSTRAINT IMP_PK PRIMARY KEY (MATRICOLA)); create table DIPARTIMENTO (CODICE VARCHAR(10) NOT NULL, NOME VARCHAR(10), SEDE varchar(10), DIRETTORE VARCHAR(10), CONSTRAINT DIP_PK PRIMARY KEY (CODICE), CONSTRAINT DIP_FK FOREIGN KEY (DIRETTORE) REFERENCES IMPIEGATO(MATRICOLA)); ALTER TABLE IMPIEGATO ADD CONSTRAINT IMP_FK FOREIGN KEY (DIPARTIMENTO) REFERENCES DIPARTIMENTO(CODICE); insert into IMPIEGATO VALUES('1111','CECI',1000,NULL); INSERT INTO IMPIEGATO VALUES('1112','ESPOSITO',6000,NULL); INSERT INTO DIPARTIMENTO VALUES ('01','INFORMATICA','BARI','1112'); UPDATE IMPIEGATO SET DIPARTIMENTO='01'; INSERT INTO IMPIEGATO VALUES('1113','MALERBA',7000,'01'); /*query 1*/ SELECT DISTINCT COGNOME, STIPENDIO FROM IMPIEGATO, DIPARTIMENTO WHERE DIPARTIMENTO=CODICE ABD SEDE = 'ROMA'; /*query 2*/ SELECT COGNOME FROM IMPIEGATO WHERE EXISTS (SELECT * FROM DIPARTIMENTO WHERE DIRETTORE= MATRICOLA) /*query 3 versione 1*/ SELECT IMP1.COGNOME, IMP1.MATRICOLA FROM IMPIEGATO IMP1 WHERE IMP1.STIPENDIO > (SELECT IMP2.STIPENDIO FROM IMPIEGATO IMP2, DIPARTIMENTO DIP WHERE IMP1.DIPARTIMENTO = DIP.CODICE AND IMP2.MATRICOLA = DIP.DIRETTORE); /*query 3 versione 2*/ SELECT IMP1.COGNOME, IMP1.MATRICOLA FROM IMPIEGATO IMP1, IMPIEGATO IMP2, DIPARTIMENTO DIP WHERE IMP1.STIPENDIO > IMP2.STIPENDIO AND IMP1.DIPARTIMENTO = DIP.CODICE AND IMP2.MATRICOLA = DIP.DIRETTORE;