SQL Structured Query Language Esempio select nome reddito

  • Slides: 26
Download presentation
SQL Structured Query Language Esempio: select nome, reddito from persone; 1 PROGETTO PRISMA –

SQL Structured Query Language Esempio: select nome, reddito from persone; 1 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) 2 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) PROIEZIONE: solo alcune colonne (e/o operazioni sulle colonne) Visualizzare i nomi e i relativi redditi: select nome, reddito from persone; Visualizzare i nomi e i gli stipendi mensili: select nome, reddito/12 as stipendio from persone; Visualizzare tutta la tabella: select * from persone; 3 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) SELEZIONE: solo alcune righe Visualizzare le persone con meno di 30 anni: select * from persone where eta < 30; Di solito si usano PROIEZIONE e SELEZIONE insieme: Visualizzare i nomi e i relativi redditi delle persone con meno di 30 anni: select nome, reddito from persone where eta < 30; 4 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) ORDINAMENTO Visualizzare le persone con meno di 30 anni ordinate per nome: select * from persone where eta < 30 order by nome; 5 PROGETTO PRISMA – AREA VASTA EMILIA NORD

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) Denominazione Indirizzo

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) Denominazione Indirizzo Citta 6 PROGETTO PRISMA – AREA VASTA EMILIA NORD

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) PROIEZIONE e

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) PROIEZIONE e SELEZIONE: Visualizzare tutte le informazioni del sig. Rossi: select * from Impiegato where Cognome = 'Rossi’; Visualizzare lo stipendio mensile del sig. Bianchi: select Stipendio/12 as Stipendio. Mensile from Impiegato where Cognome = ’Bianchi’; Listare gli impiegati di due dipertimenti: select Nome, Cognome from Impiegato where Dipart = ’Amministrazione’ or Dipart = ’Produzione’; Vedere se c’è un sig. Rossi in due dipertimenti: select Nome from Impiegato where Cognome = ’Rossi’ and (Dipart = ’Amministrazione’ or Dipart = ’Produzione’); PROGETTO PRISMA – AREA VASTA EMILIA NORD 7

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) LIKE: Cercare

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) LIKE: Cercare impiegati con cognome che ha o come seconda lettera e termina per i: select * from Impiegato where Cognome like ’_o%i’; 8 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) PRODOTTO CARTESIANO Visualizzare il padre di ogni persona: select nome, padre from persone, paternita; JOIN NATURALE Visualizzare il padre di ogni persona: select nome, padre from persone, paternita where nome=figlio; 9 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) JOIN NATURALE Visualizzare il padre e la madre di ogni persona: select paternita. figlio, padre, madre from maternita, paternita where paternita. figlio = maternita. figlio; Nome e reddito del padre di Aldo: select nome, reddito from persone, paternita where nome = padre and figlio = 'Aldo' ; Nome e reddito dei padri di persone che guadagnano più di 20 milioni: select distinct P. nome, P. reddito from persone P, paternita, persone F where P. nome = padre and figlio = F. nome and F. reddito > 20; 10 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) SELF JOIN Le persone che guadagnano più dei rispettivi padri: mostrare nome, reddito e reddito del padre select f. nome, f. reddito as reddito, p. reddito as reddito. Padre from persone p, persone f , paternita where p. nome = padre and figlio = f. nome and f. reddito > p. reddito; 11 PROGETTO PRISMA – AREA VASTA EMILIA NORD

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) AGGREGAZIONE Contare

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) AGGREGAZIONE Contare gli impiegati della Produzione select count(*) from Impiegato where Dipart = 'Produzione' ; select count(*) as Numero. Impiegati from Impiegato where Dipart = 'Produzione' ; Calcolare il totale degli stipendi della Amministrazione select sum(Stipendio) as Totale. Stipendi from Impiegato where Dipart = 'Amministrazione‘; 12 PROGETTO PRISMA – AREA VASTA EMILIA NORD

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) RAGGRUPPAMENTO Calcolare

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) RAGGRUPPAMENTO Calcolare i totali degli stipendi di tutti i dipartimenti select Dipart, sum(Stipendio) as Somma. Stipendi from Impiegato group by Dipart; I dipartimenti che spendono più di 100 milioni in stipendi select Dipart, sum(Stipendio) as Somma. Stipendi from Impiegato group by Dipart having sum(Stipendio) > 100; 13 PROGETTO PRISMA – AREA VASTA EMILIA NORD

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) persone (ID,

Impiegato (ID, Nome, Cognome, Dipart, Uficio, Stiipendio) Dipartimento (ID, Denominazione, Indirizzo, Citta) persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) NIDIFICAZIONE Nome e reddito del padre di Aldo select nome, reddito from persone where nome = (select padre from paternita where figlio = 'Aldo'); Gli impiegati che lavorano in dipartimenti di Roma select * from Impiegato where Dipart = any (select Denominazione from Dipartimento where Citta = 'Roma'); 14 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) ROMPICAPO PADRI E FIGLI 1 Nome e reddito dei padri di persone che guadagnano più di 20 milioni select nome, reddito from persone where nome in (select padre from paternita where figlio =any (select nome from persone where reddito > 20)); Le persone che hanno almeno un figlio select * from persone where exists (select * from paternita where padre = nome) or exists (select * from maternita where madre = nome); 15 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) ROMPICAPO PADRI E FIGLI 2 Padri i cui figli guadagnano tutti più di venti milioni select distinct padre from paternita Z where not exists (select * from paternita W, persone where W. padre = Z. padre and W. figlio = nome and reddito > 20); La persona (o le persone) con il reddito massimo select * from persone where reddito = (select max(reddito) from persone); Massimo dei redditi per ogni gruppo di persone che hanno la stessa età (indicando anche l’età) SELCT a. eta, max(a. reddito) AS "reddito massimo" FROM persone AS a, persone AS b WHERE a. eta=b. eta and a. nome<>b. nome and a. eta>18 GROUP BY a. eta; 16 PROGETTO PRISMA – AREA VASTA EMILIA NORD

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre,

persone (ID, Nome, Eta, Reddito) - maternità (ID, Madre, Figlio) - paternità (ID, Padre, Figlio) ROMPICAPO PADRI E FIGLI 3 Padri i cui figli sotto i 30 anni hanno un reddito medio maggiore di 20 milioni SELECT * FROM (SELECT p. nome AS nome_padre, AVG(f. reddito) AS reddito_medio_figli FROM persone AS p, persone AS f, paternita WHERE p. nome=padre and f. nome=figlio and f. eta<30 GROUP BY p. nome) WHERE reddito_medio_figli>20; Nome ed età delle madri che hanno almeno un figlio minorenne SELECT distinct m. nome, m. eta, m. reddito FROM persone AS m, persone AS f, maternita WHERE m. nome=madre AND f. nome=figlio and f. eta<18; Nome ed età delle madri che hanno almeno un figlio la cui età differisce meno di 20 anni dalla loro SELECT DISTINCT m. nome, m. eta FROM persone AS m, persone AS f, maternita WHERE m. nome=madre And f. nome=figlio and m. eta-f. eta<20; 17 PROGETTO PRISMA – AREA VASTA EMILIA NORD

SQL Structured Query Language Come si usa: • Linguaggio interattivo • Creato automaticamente da

SQL Structured Query Language Come si usa: • Linguaggio interattivo • Creato automaticamente da un’interfaccia grafica • Immerso in un altro linguaggio • Contenuto in un linguaggio specifico 18 PROGETTO PRISMA – AREA VASTA EMILIA NORD

SQL Structured Query Language Sintassi: SELECT [ ALL | DISTINCT | TOP n ]

SQL Structured Query Language Sintassi: SELECT [ ALL | DISTINCT | TOP n ] lista_colonne (colonne e/o operazioni su colonne) FROM tabella(e) [ WHERE espressione_condizionale_semplice ] [ GROUP BY lista_colonne ] [ HAVING espressione_condizionale_aggregata ] [ ORDER BY lista_colonne ] ; Operatori aritmetici (solo +-*/) Operatori logici (and or not xor) Operatori condizionali (solo WHERE) Operatori di confronto (<>= like, in, between, any, exists, is null) Operatori di aggregazione: count, sum | max | min | avg 19 PROGETTO PRISMA – AREA VASTA EMILIA NORD

20 PROGETTO PRISMA – AREA VASTA EMILIA NORD

20 PROGETTO PRISMA – AREA VASTA EMILIA NORD

21 PROGETTO PRISMA – AREA VASTA EMILIA NORD

21 PROGETTO PRISMA – AREA VASTA EMILIA NORD

22 PROGETTO PRISMA – AREA VASTA EMILIA NORD

22 PROGETTO PRISMA – AREA VASTA EMILIA NORD

23 PROGETTO PRISMA – AREA VASTA EMILIA NORD

23 PROGETTO PRISMA – AREA VASTA EMILIA NORD

24 PROGETTO PRISMA – AREA VASTA EMILIA NORD

24 PROGETTO PRISMA – AREA VASTA EMILIA NORD

25 PROGETTO PRISMA – AREA VASTA EMILIA NORD

25 PROGETTO PRISMA – AREA VASTA EMILIA NORD

D: corsimetodologieBDAtzenislides bd 04. pdf 26 PROGETTO PRISMA – AREA VASTA EMILIA NORD

D: corsimetodologieBDAtzenislides bd 04. pdf 26 PROGETTO PRISMA – AREA VASTA EMILIA NORD