Il 0% ha trovato utile questo documento (0 voti)
32 visualizzazioni3 pagine

Sintesi SQL

Il documento fornisce una sintesi delle principali query SQL come la creazione, modifica e interrogazione di tabelle database. Vengono illustrate clausole come SELECT, WHERE, GROUP BY, HAVING, JOIN e funzioni di aggregazione.

Caricato da

M/T
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
32 visualizzazioni3 pagine

Sintesi SQL

Il documento fornisce una sintesi delle principali query SQL come la creazione, modifica e interrogazione di tabelle database. Vengono illustrate clausole come SELECT, WHERE, GROUP BY, HAVING, JOIN e funzioni di aggregazione.

Caricato da

M/T
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3

SINTESI SQL Query parametriche

SELECT descrizione, modalità, prezzo,


CREARE UNA TABELLA denominazione
Create table nazioni FROM pacchetti, nazioni
(codNazioni smallint primary key, WHERE denominazione = [Inserisci la nazione ];
denominazione char(50)
moneta char(20) Clausola DISTINCT
clima char(30)); ● list the different (distinct) values
SELECT DISTINCT città
MODIFICARE LA STRUTTURA DI UNA FROM clienti;
TABELLA (DDL)
Alter table nazioni Clausola AS
add percorso char(20); SELECT nome as Agenzia, indirizzo, città, telefono
FROM organizzazioni;
Alter table nazioni SELECT (prezzo * 10 /100) as Sconto
drop percorso; FROM pacchetti;

MANIPOLAZIONE DI DATI (DML) Clausola LIKE


● search for a specified pattern in a column
Per inserire i valori di una nuova riga nella tabella
SELECT column_name
Nazioni:
FROM table_name
Insert into nazioni
WHERE column_name LIKE pattern;
(codNazioni, denominazione, moneta, clima)
Wildcards
values (7, 'spagna', 'euro', 'mite');

Aggiornare i dati di una tabella e quindi % A substitute for zero or more characters
modificarne il contenuto:
Update pacchetti _ A substitute for a single character
set prezzo = 290 [charlist] Sets and ranges of characters to
where codpacchetti = 3; match

Update pacchetti [^charlist] Matches only a character NOT


set prezzo = prezzo + 10; [!charlist] specified within the brackets

Cancellare righe da una tabella :


Delete from nazioni
where codNazioni = 7; Funzioni di aggregazione
Count
IL COMANDO SELECT SELECT count(codPacchetti) AS acquisti
FROM acquisti
Proiezione (solo alcune colonne di una tabella): WHERE codClienti = [ inserisci il codice cliente];
SELECT nome, cognome
FROM clienti; Sum
SELECT Sum(prezzo) AS Totale
Selezione (per solo alcune righe di una tabella): FROM pacchetti, acquisti
SELECT * WHERE pacchetti.codPacchetti =
FROM nazioni acquisti.codPacchetti and
WHERE moneta=”euro”; acquisti.codPacchetti = [inserisci il codice del
pacchetto];
Congiunzione (dati estratti da più di una tabella):
SELECT descrizione, modalità, prezzo, Avg
denominazione SELECT Avg(prezzo) as media
FROM pacchetti, nazioni FROM pacchetti;
WHERE denominazione = “italia”;
Min / Max SUBQUERY
SELECT min(prezzo) as minimo, max(prezzo) as
IN / NOT IN
massimo
SELECT *
FROM pacchetti;
FROM Clienti
SELECT min(cognome) as primo, max(cognome)
WHERE id IN (SELECT idCliente
as ultimo
FROM Incassi
FROM clienti;
WHERE importo > 1000)

SOME / ANY
Ordinamenti e raggruppamenti
SELECT *
Order By
FROM Incassi
SELECT *
WHERE importo > SOME (SELECT costo
FROM clienti
FROM Commesse
ORDER BY cognome, nome;
WHERE tipologia = “commessaSemplice”)
Group by
ALL
SELECT *
SELECT *
FROM clienti
FROM Incassi
GROUP BY cognome DESC;
WHERE importo > ALL (SELECT costo
FROM Commesse
Clausola HAVING
WHERE tipologia = 'commessaSemplice')
Like WHERE used with the result of aggregate
functions
EXISTS / NOT EXISTS
SELECT DISTINCT idCitta
Having vs Where
FROM Citta
WHERE EXISTS (SELECT *
a c1 40
FROM Citta_SquadreCalcio
a c2 50
WHERE Citta.idCitta =
b c3 60
Citta_SquadreCalcio.idCitta)
d c1 70
e c2 80
SELECT Student, Score FROM Marks
WHERE Score >=40 KEYWORDS:
a c2 50
b c3 60
d c1 70 Per ogni / numero di GROUP BY
e c2 80 … dei … /

Group for every student the SUM of his scores Sempre / Mai / Solo / Subquery
SELECT Student, SUM(score) AS total Nessun /
FROM Marks GROUP BY Student Solo nati prima / dopo Max/Min on GROUP
a 90 BY with HAVING
b 60
d 70 I nomi delle sale di DISTINCT Perchè ogni
e 80 Napoli in cui il sala potrebbe avere
giorno di Natale più proiezioni nello
So you can filter on grouping with having
2004 è stato stesso giorno
SELECT Student, SUM(score) AS total
proiettato un film
FROM Marks GROUP BY Student
con R.Williams
HAVING total > 70
a 90
e 80
GROUP BY 2 COLUMNS SELECT P.descrizione, sum(P.prezzo)
AS incasso
FROM pacchetti P, acquisti A
WHERE P.codPacchetti = A.codPacchetti
GROUP BY P.descrizione
HAVING sum(P.prezzo) > 1000;

Il numero di attori dei film in cui appaiono solo


attori nati prima del 1970:
SELECT F.Titolo, COUNT(*) AS Attori
FROM ATTORI A, RECITA R, FILM F WHERE
R.CodAttore = A.CodAttore AND
R.CodFilm=F.CodFilm GROUP BY
F.Titolo, F.CodFilm
HAVING MAX(A.AnnoNascita) < 1970

I nomi delle sale di Napoli in cui il giorno di


Natale 2004 è stato proiettato un film con
R.Williams
Usiamo DISTINCT Perchè ogni sala potrebbe
avere più proiezioni nello stesso giorno
SELECT DISTINCT s.Nome
FROM Attori a, Recita r, Film f,
Proiezioni p, Sale s
WHERE and a.CodAttore = r.CodAttore
and r.CodFilm = f.CodFilm and
f.CodFilm=p.CodFilm and
p.CodSala=s.CodSala and
p.DataProiezione=25/12/04 and
s.Città=”Napoli” and a.Nome =
“R.Williams”;

I titoli dei film le cui proiezioni hanno sempre ottenuto


un incasso superiore a 500 €
Use not exists because you want to
visualize the title of the film once…
SELECT F.Titolo FROM FILM F WHERE not
exists (SELECT P.Incasso FROM
Proiezioni P WHERE F.CodFilm =
P.CodFilm AND P.Incasso <= 500);

Calcolare l’incasso ottenuto dai vari pacchetti (solo


se superano i 1000 euro):

Potrebbero piacerti anche