Schema relazionale
- IMPIEGATO(ID, Cognome, Nome, Residenza, Stipendio, Dipartimento)
- DIPARTIMENTO(Codice, Descrizione, Sede, Manager)
IMPIEGATO.Dipartimento è chiave esterna collegata a DIPARTIMENTO.Codice
DIPARTIMENTO.Manager è chiave esterna collegata a IMPIEGATO.ID
DDL/DML
-
123456789CREATE TABLE IMPIEGATO(ID smallint(6) PRIMARY KEY,Cognome char(30) NOT NULL,Nome char(20) NOT NULL,Residenza char(20) DEFAULT '*** Manca residenza ***',Stipendio decimal(9,2),Dipartimento char(5) REFERENCES DIPARTIMENTO(Codice))
-
12345678910CREATE TABLE DIPARTIMENTO(Codice char(5) NOT NULL,Descrizione char(20) NOT NULL,Sede char(20) DEFAULT NULL,Manager smallint(6) DEFAULT NULL,PRIMARY KEY (Codice),UNIQUE (Descrizione),FOREIGN KEY (Manager) REFERENCES IMPIEGATO(ID))
-
1ALTER TABLE IMPIEGATO ADD Nascita Date
-
1ALTER TABLE IMPIEGATO DROP Residenza
-
1CREATE UNIQUE INDEX IndiceImpiegati ON IMPIEGATO(Cognome,Nome)
-
1DROP TABLE IMPIEGATO
-
1DROP INDEX IndiceImpiegati ON IMPIEGATO
-
12INSERT INTO IMPIEGATO(ID,Cognome,Nome ,Residenza,Stipendio,Dipartimento)VALUES(20,'Rossi','Mario','Caserta',31500 ,'Mag' )
-
123UPDATE IMPIEGATOSET Dipartimento = 'Prod'WHERE ID = 20
-
123UPDATE IMPIEGATOSET Stipendio = 1.05*StipendioWHERE Dipartimento = 'Prod'
-
12DELETE FROM IMPIEGATOWHERE ID = 20
-
12DELETE FROM IMPIEGATOWHERE Dipartimento = 'R&S'
QL
- Cognome, nome e ID degli impiegati
12SELECT Cognome, Nome, IDFROM IMPIEGATO - Matricola, cognome e nome degli impiegati
12SELECT ID AS Matricola, Cognome, NomeFROM IMPIEGATO - Stipendio attuale e nuovo stipendio degli impiegati (con un aumento del 5%)
123SELECT Cognome, Nome, Stipendio AS 'Stipendio attuale',1.05*Stipendio AS 'Nuovo stipendio'FROM IMPIEGATO; - Le città di residenza degli impiegati
12SELECT ResidenzaFROM IMPIEGATO - Le città di residenza degli impiegati (senza duplicati)
12SELECT DISTINCT ResidenzaFROM IMPIEGATO - Cognome, nome e residenza degli impiegati, ordinati per cognome e nome
123SELECT Cognome, Nome, ResidenzaFROM IMPIEGATOORDER BY Cognome, Nome - Cognome, nome e stipendio degli impiegati, ordinati per stipendio decrescente e per cognome e nome
123SELECT Cognome, Nome, StipendioFROM IMPIEGATOORDER BY Stipendio DESC, Cognome, Nome - Cognome, nome e residenza degli impiegati del dipartimento Prod
123SELECT Cognome, Nome, ResidenzaFROM IMPIEGATOWHERE Dipartimento = 'Prod' - Cognome, nome e residenza degli impiegati del dipartimento Prod e residenti a Torino
123SELECT Cognome, Nome, ResidenzaFROM IMPIEGATOWHERE (Dipartimento = 'Prod') AND (Residenza = 'Torino') - Impiegati residenti a Roma
123SELECT *FROM IMPIEGATOWHERE Residenza = 'Roma' - Impiegati con stipendio minore di 31000
123SELECT *FROM IMPIEGATOWHERE Stipendio < 31000
1234SET @ValoreMinimo=31000;SELECT *FROM IMPIEGATOWHERE Stipendio < @ValoreMinimo - Cognome, nome e residenza degli impiegati con stipendio compreso tra 30000 e 45000
123SELECT Cognome, Nome, ResidenzaFROM IMPIEGATOWHERE (Stipendio >= 30000) AND (Stipendio <= 45000) - Cognome, nome e residenza degli impiegati con stipendio compreso tra 30000 e 45000
123SELECT Cognome, Nome, ResidenzaFROM IMPIEGATOWHERE Stipendio BETWEEN 30000 AND 45000 - Gli impiegati di Torino oppure Venezia oppure Palermo
123SELECT *FROM IMPIEGATOWHERE (Residenza = 'Torino') OR (Residenza = 'Venezia') OR (Residenza = 'Palermo'); - Gli impiegati di Torino oppure Venezia oppure Palermo
123SELECT *FROM IMPIEGATOWHERE Residenza IN ('Torino', 'Venezia', 'Palermo') - Gli impiegati con il cognome che inizia per R
123SELECT *FROM IMPIEGATOWHERE Cognome LIKE 'R%' - Gli impiegati con il cognome che contiene il carattere '_'
123SELECT *FROM IMPIEGATOWHERE Cognome LIKE '%_%' - Gli impiegati con il cognome che contiene il carattere '_'
123SELECT *FROM IMPIEGATOWHERE Cognome LIKE '%$_%' ESCAPE '$' - Gli impiegati ai quali non è stato assegnato il dipartimento…
123SELECT ID AS Matricola, Cognome, NomeFROM IMPIEGATIWHERE Dipartimento = '' - Gli impiegati ai quali non è stato assegnato il dipartimento
123SELECT ID AS Matricola, Cognome, NomeFROM IMPIEGATIWHERE Dipartimento IS NULL - Gli impiegati con la presenza dello stipendio
123SELECT *FROM IMPIEGATOWHERE Stipendio IS NOT NULL - Gli impiegati con i dipartimenti…
12SELECT *FROM IMPIEGATO, DIPARTIMENTO - Gli impiegati con il dipartimento
123SELECT *FROM IMPIEGATO, DIPARTIMENTOWHERE Dipartimento = Codice - Gli impiegati con il dipartimento
123SELECT *FROM IMPIEGATO, DIPARTIMENTOWHERE IMPIEGATO.Dipartimento = DIPARTIMENTO.Codice - Gli impiegati con il dipartimento
12SELECT *FROM IMPIEGATO INNER JOIN DIPARTIMENTO ON IMPIEGATO.Dipartimento = DIPARTIMENTO.Codice - Gli impiegati con il dipartimento
12SELECT IMPIEGATO.*, DIPARTIMENTO.Descrizione, DIPARTIMENTO.SedeFROM IMPIEGATO INNER JOIN DIPARTIMENTO ON IMPIEGATO.Dipartimento = DIPARTIMENTO.Codice - Gli impiegati con il dipartimento a Roma
123SELECT *FROM IMPIEGATO, DIPARTIMENTOWHERE (Dipartimento = Codice) AND (Sede = 'Roma') - Gli impiegati con il dipartimento a Roma
123SELECT *FROM IMPIEGATO INNER JOIN DIPARTIMENTO ON IMPIEGATO.Dipartimento = DIPARTIMENTO.CodiceWHERE Sede = 'Roma' - Elenco dei dipartimenti, codice, con numero di dipendenti e totale dei loro stipendi
123SELECT Dipartimento, Count(ID) AS 'Quanti', Sum(Stipendio) AS 'Totale stipendi'FROM IMPIEGATOGROUP BY Dipartimento - Elenco dei dipartimenti, per esteso, con numero di dipendenti e totale dei loro stipendi
123SELECT Descrizione, Count(ID) AS 'Quanti', Sum(Stipendio) AS 'Totale stipendi'FROM IMPIEGATO INNER JOIN DIPARTIMENTO ON IMPIEGATO.Dipartimento = DIPARTIMENTO.CodiceGROUP BY Descrizione;