Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche...

120
Linguaggio SQL Prof. Giuseppe Tandoi

Transcript of Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche...

Page 1: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Page 2: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generaliCaratteristiche generali

SQL è uno strumento per

organizzaregestirerecuperare

dati memorizzati in DataBase organizzati su base Relazionale.

Page 3: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generaliCaratteristiche generali

SQL è l'acronimo di

Structured

Query

Language.

SQL è un linguaggio (non procedurale) per interagire con database.

Page 4: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generaliCaratteristiche generali

SQL è un linguaggio standard per chi deve gestire database.

Può essere considerato un

sottolinguaggio di interazione le cui dichiarazioni possono anche essere incluse

in programmi scritti in altro linguaggio (Cobol, Php, ecc.).

Page 5: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generaliCaratteristiche generali

SQL non è

un software

un sistema di gestione di database

un linguaggio di programmazione procedurale

Page 6: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generali - DBMSCaratteristiche generali - DBMS

DBMS = Data Base Management System

Software che controlla il database

consente le operazioni di definizione, manipolazione e estrazione

Page 7: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generali – estrazione informazioniCaratteristiche generali – estrazione informazioni

Processo di estrazione delle informazioni

1. DBMS riceve la richiesta SQL

2. DBMS elabora la richiesta

3. DBMS recupera i dati richiesti

4. DBMS restituisce le informazioni

Il processo di estrazione delle informazioni viene denominato QUERY.

Page 8: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Caratteristiche generali - DBMSCaratteristiche generali - DBMS

E' il DBMS che consente interazioni attraverso l'uso del linguaggio SQL.

Page 9: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Le istruzioni sono formate dal verbo imperativo e dai parametri e terminano con il punto e virgola ( ; )

Regole generali - formato istruzioneRegole generali - formato istruzione

create table ALUNNI( ID Smallint,

COGNOME char(20),

NOME char(20) ) ;

Page 10: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Regole generali – definizione identificatoriRegole generali – definizione identificatori

Gli identificatori, cioè i nomi di Tabelle o di Attributi

- sono costituiti da caratteri, cifre , carattere '_' (UnderScore)

- possono essere lunghi massimo 18 caratteri

- devono iniziare con una lettera

Page 11: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Regole generali – definizione identificatoriRegole generali – definizione identificatori

L'identificatore assoluto di un attributo è costituita dalla abituale notazione :

NomeTabella . NomeAttributo

Ordini.DataAlunni.Data_di_Nascita

NomeTabella si può omettere se non vi sono di ambiguità di identificazione.

Page 12: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Regole generali – definizione costantiRegole generali – definizione costanti

La costante e' definita attraverso il suo valore

* considerata di tipo numerico intero se il valore non contiene parte frazionaria

* considerata di tipo numerico reale se il valore presenta il punto decimale

separatore tra parte intera e parte frazionaria

* la costante di tipo stringa è racchiusa tra singoli apici ('cost')se la costante contiene un'apice allora deve essere racchiusa tra

doppi apici (“cost”)

La costante NULL rappresenta il concetto di valore non definito o valore non

disponibile incontrato in una colonna.

Page 13: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL : Data Description Language

Sottoinsieme di istruzioni di SQL che consentono di

* definire nuove tabelle

* modificare la struttura delle tabelle

* rimuovere tabelle

Definizione dei dati - DDLDefinizione dei dati - DDL

Page 14: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL – tipi standard di datiDDL – tipi standard di dati

BOOLEAN Valore logico True, falseCHARACTER(n) Stringa di lunghezza (n) N da 1 a 15000DATE Data nella forma mm/gg/aaTIME Ora nella forma hh:mmINTEGER(p) Numero intero di precisione P P da 1 a 45SMALLINT Numero intero (16 bit) Da -32768 a +32767INTEGER Numero intero (32 bit) Da -2147483648 a +2147483647DECIMAL(p,s) Numero decimale di p cifre di cui s decimaliREAL Numero reale con mantissa di precisione 7FLOAT Numero reale con mantissa di precisione 15FLOAT(p) Numero reale con mantissa di precisione p

Page 15: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

CREATE TABLE NomeTabella

( nome attr1

tipo,

nome attr2

tipo,

...

nome attrn

tipo) ;

DDL – definizione nuove tabelleDDL – definizione nuove tabelle

Page 16: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL – definizione nuove tabelleDDL – definizione nuove tabelle

CREATE TABLE Alunni( Id SMALLINT , Cognome CHAR(20), Nome CHAR(20), Indirizzo CHAR(40), Classe CHAR(10) );

Page 17: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DROP TABLE NomeTabella ;

DDL – eliminazione tabellaDDL – eliminazione tabella

Page 18: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL – eliminazione tabellaDDL – eliminazione tabella

DROP TABLE Alunni;

Page 19: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

ALTER TABLE NomeTabella

ADD nome attr1

tipo;

DDL – modifica struttura tabella DDL – modifica struttura tabella

ALTER TABLE NomeTabella

DROP nome attr ;

Aggiunta attributo

Rimozione attributo

Page 20: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL – modifica struttura tabella DDL – modifica struttura tabella

Aggiunta attributo

Rimozione attributo

ALTER TABLE AlunniADD ContattoMSN Char(50);

ALTER TABLE AlunniDROP Classe;

Page 21: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

CREATE TABLE NomeTabella

( nome attr1

tipo PRIMARY KEY,

nome attr2

tipo UNIQUE,

nome attr3

tipo NOT NULL,

nome attr4

tipo AUTO_INCREMENT,

...

nome attrn

tipo DEFAULT valore) ;

DDL – definizione nuove tabelle - clausoleDDL – definizione nuove tabelle - clausole

Page 22: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

PRIMARY KEY dichiara quell'attributo come chiave primaria della tabella

UNIQUE rende inammissibili valori uguali

NOT NULL obbliga ad indicare un valore

DEFAULT determina il valore (costante) da attribuire al momento della creazione del record in assenza di indicazione

AUTO_INCREMENT per attributi di tipo numerico; assegna automaticamente il valore incrementando un contatore ad ogni inserimento di record

DDL – definizione nuove tabelle - clausoleDDL – definizione nuove tabelle - clausole

Page 23: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DDL – definizione nuove tabelle - clausoleDDL – definizione nuove tabelle - clausole

CREATE TABLE Alunni( Id SMALLINT PRIMARY KEY, Cognome CHAR(20) NOT Null, Nome CHAR(20) NOT Null, Indirizzo CHAR(40), Classe CHAR(10) NOT Null, Citta CHAR(30) DEFAULT 'Bari' );

Page 24: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML : Data Manipulation Language

Sottoinsieme di istruzioni di SQL che consentono di

* inserire nuovi record

* modificare il contenuto dei campi dei record

* cancellare record

Manipolazione dei dati - DMLManipolazione dei dati - DML

Page 25: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Inserimento recordDML – Inserimento record

INSERT INTO NomeTabella

(nome attr1, nome attr

2, ... , nome attr

n )

VALUES (val1, val

2, ... , val

n);

Page 26: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Inserimento recordDML – Inserimento record

INSERT INTO Alunni(Id, Cognome, Nome, Indirizzo, Classe, Citta)

VALUES (23,'Rossi', 'Mario','Via Roma,12', '', 'Bari' );

Page 27: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Modifica recordDML – Modifica record

UPDATE NomeTabella

SET nome attr = valore

WHERE CondizioneDiSelezione;

Page 28: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Modifica recordDML – Modifica record

UPDATE Alunni SET Classe = '5BM' WHERE ID = 23;

Page 29: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Elimina recordDML – Elimina record

DELETE FROM NomeTabella

WHERE CondizioneDiSelezione;

Page 30: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

DML – Elimina recordDML – Elimina record

DELETE FROM Alunni WHERE ID = 23;

DELETE FROM Alunni WHERE ID = 23;

DELETE FROM Alunni WHERE Alunni.Classe = '5BM';

Page 31: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

L' interrogazione al database:

consente l'estrazione dal database delle informazioni desiderate

produce una nuova tabella attraverso l'attivazione delle operazioni relazionali

Page 32: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

Le interrogazioni al database si pongono attraverso il comando

SELECT

La struttura base del comando SELECT è

SELECT colonne

FROM tabella;

Page 33: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni;

Page 34: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni;

SELECT Alunni.Id, Alunni.Cognome, Alunni.Nome, Alunni.Indirizzo, Alunni.Classe, Alunni.Citta FROM Alunni;

Page 35: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni;

SELECT Alunni.Id, Alunni.Cognome, Alunni.Nome, Alunni.Indirizzo, Alunni.Classe, Alunni.Citta FROM Alunni;

SELECT Id, Cognome, Nome, Indirizzo, Classe, Citta FROM Alunni;

Page 36: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

La tabella prodotta dalla interrogazione è costituita da colonne con l'intestazione

equivalente al nome dei campi

Si può far mostrare una intestazione differente utilizzando la clausola AS.

SELECT colonna AS intestazionecolonna

FROM tabella;

Page 37: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

DELETE FROM Alunni WHERE ID = 23;

SELECT Id AS Matricola, Cognome, Nome AS NomeDiBattesimo, FROM Alunni;

Page 38: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

La tabella prodotta dalla interrogazione può anche vedere la presenza di colonne con

valori calcolati sugli attributi presenti ed ottenuti dalla esecuzioni di espressioni

aritmetiche

SELECT espressionenumerica AS intestazionecolonna

FROM Tabella;

Page 39: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query Language – Interrogazione databaseQuery Language – Interrogazione database

DELETE FROM Alunni WHERE ID = 23;

SELECT Numero, Data, Importo As Imponibile, Importo * 0,20 AS Iva,

Importo * 1,20 AS TotaleFattura

FROM Fatture;

Page 40: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – SelezioneOperazioni relazionali – Selezione

Si ottiene specificando la clausola WHERE

SELECT *

FROM Tabella

WHERE CondizioneDiSelezione;

Page 41: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Condizioni di selezioneOperazioni relazionali – Condizioni di selezione

La Condizioni di Selezione determina la selezione delle righe

E' una espressione relazionale in cui sono confrontati una colonna ed un valore.

Il confronto è espresso da uno degli operatori relazionali:

= , > , < , <> , >= , <=

Page 42: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – SelezioneOperazioni relazionali – Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Citta = 'Bari';

Page 43: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Condizioni di selezioneOperazioni relazionali – Condizioni di selezione

Una CondizioneDiSelezione può essere costituita da più condizioni legate tra loro dagli operatori

AND , OR

Una CondizioneDiSelezione può essere preceduta dall'operatore

NOT

Page 44: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Citta <> 'Bari'

AND Alunni.Classe = '5BM';

Page 45: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Citta <> 'Bari'

AND Alunni.Classe = '5BM';

SELECT * FROM Alunni WHERE NOT (Alunni.Citta <> 'Bari'

AND Alunni.Classe = '5BM') ;

Page 46: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Altri operatori di relazioneOperazioni relazionali – Altri operatori di relazione

Le Condizioni di Selezione si possono esprimere utilizzando altri operatori o

predicati per determinare ricerche più affinate

IN

LIKE

BETWEEN

Page 47: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Altri operatori di relazioneOperazioni relazionali – Altri operatori di relazione

IN

L'operatore IN confronta se il valore appartiene ad uno dei valori di una lista

definita, tra parentesi dopo la clausola In.

... WHERE Colonna IN ( valore1, Valore

2, ... , Valore

n);

Page 48: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Classe IN ('3BM', '4BM', '5BM');

Page 49: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

corrisponde a

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Classe IN ('3BM', '4BM', '5BM');

SELECT * FROM Alunni WHERE Alunni.Classe = '3BM' OR Alunni.Classe = '4BM'

OR Alunni.Classe = '5BM';

Page 50: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Altri operatori di relazioneOperazioni relazionali – Altri operatori di relazione

BETWEEN

L'operatore BETWEEN confronta se il valore nella colonna è incluso in un

intervallo di valori, estremi compresi.

... WHERE Colonna BETWEEN Valore1 AND Valore

2 ;

Page 51: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Voto BETWEEN 6 AND 8;

Page 52: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Altri operatori di relazioneOperazioni relazionali – Altri operatori di relazione

LIKE

L'operatore LIKE confronta il valore di un attributo con un modello di stringa

contenenti caratteri caratteri jolly

* una qualunque sequenza di caratteri

? un carattere

... WHERE Colonna LIKE MascheraDiRicerca;

Page 53: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Operatori di SelezioneOperazioni relazionali – Operatori di Selezione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni WHERE Alunni.Cognome LIKE 'BA*';

SELECT * FROM Alunni WHERE Alunni.Cognome LIKE 'BA??';

Page 54: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Predicati ALL e DISTINCTOperazioni relazionali – Predicati ALL e DISTINCT

SELECT ALL colonna1, colonna

2, ... , colonna

m

FROM Tabella

WHERE condizione;

consente di ottenere tutte le righe che soddisfano la condizione. Il predicato ALL

è considerato di default.

Page 55: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Predicati ALL e DISTINCTOperazioni relazionali – Predicati ALL e DISTINCT

DELETE FROM Alunni WHERE ID = 23;

SELECT ALL * FROM Alunni WHERE Classe = '5BM';

Page 56: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Predicati ALL e DISTINCTOperazioni relazionali – Predicati ALL e DISTINCT

SELECT DISTINCT colonna

FROM Tabella

WHERE condizione;

consente di ottenere nella colonna valori non ripetuti;

vale a dire che se nella colonna appare più volte uno stesso valore, sarà

riportata una sola riga in cui questo è contenuto. E' opportuno utilizzarlo per

conoscere quali sono i differenti valori presenti in una colonna

Page 57: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Predicati ALL e DISTINCTOperazioni relazionali – Predicati ALL e DISTINCT

DELETE FROM Alunni WHERE ID = 23;

SELECT DISTINCT CittaNascita FROM Alunni;

Page 58: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – ProiezioneOperazioni relazionali – Proiezione

Si ottiene specificando l'elenco degli attributi richiesti

SELECT colonna1, colonna

2, ... , colonna

m

FROM Tabella;

Page 59: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – ProiezioneOperazioni relazionali – Proiezione

DELETE FROM Alunni WHERE ID = 23;

SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe FROM Alunni;

Page 60: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – ProiezioneOperazioni relazionali – Proiezione

DELETE FROM Alunni WHERE ID = 23;

SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe FROM Alunni;

SELECT Cognome, Nome, Classe FROM Alunni;

Page 61: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Selezione di proiezioneOperazioni relazionali – Selezione di proiezione

SELECT Colonna1, Colonna

2, ..., Colonna

m

FROM Tabella

WHERE CondizioneDiSelezione ;

Page 62: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Selezione di proiezioneOperazioni relazionali – Selezione di proiezione

DELETE FROM Alunni WHERE ID = 23;

SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe FROM Alunni WHERE Alunni.Citta = 'Bari';

Page 63: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – CongiunzioneOperazioni relazionali – Congiunzione

SELECT *

FROM Tabella1, Tabella

2

WHERE CondizioneDiCongiunzione ;

CondizioneDiCongiunzione : CampoChiaveEsterna = CampoChiavePrimaria

Sono combinate solo le righe per le quali si possono trovare valori uguali per gli attributi che si corrispondono (equi-join).

Page 64: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – CongiunzioneOperazioni relazionali – Congiunzione

DELETE FROM Alunni WHERE ID = 23;

SELECT * FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID ;

La query dell'esempio produce una tabella costituita da tante colonne quanti sono gli

attributi delle tabelle congiunte e dalle sole righe aventi valori uguali per gli attributi

messi nella condizione di congiunzione.

Page 65: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Combinazione delle operazioni relazionaliOperazioni relazionali – Combinazione delle operazioni relazionali

SELECT colonna1, colonna

2, ... , colonna

m

FROM Tabella1, Tabella

2

WHERE CondizioneDiCongiunzione

AND CondizioneDiSelezione ;

Page 66: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Combinazione delle operazioni relazionaliOperazioni relazionali – Combinazione delle operazioni relazionali

Mostrare gli esiti di tutte le prove di Inglese sostenute dagli studenti della 5BM

Page 67: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Combinazione delle operazioni relazionaliOperazioni relazionali – Combinazione delle operazioni relazionali

SELECT Alunni.Cognome, Alunni.Nome, Prove.Data, Prove.Voto FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'INGLESE' AND Alunni.Classe = '5BM' );

Mostrare gli esiti di tutte le prove di Inglese sostenute dagli studenti della 5BM

Page 68: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

Funzioni predefinite che operano sui dati contenuti nelle righe selezionate

dall'interrogazione effettuando

conteggio, determinazione del massimo o del minimo, somma, media

fra i valori di una colonna.

COUNT

SUM

MIN e MAX

AVG

Page 69: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(colonna)

FROM Tabella

WHERE CondizioneDiSelezione ;

Restituisce il numero delle righe della tabella (solo quelle selezionate) ove si riscontra

un valore non nullo nella colonna.

Page 70: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(Cognome) FROM Alunni WHERE Classe = '5BM';

Mostrare il numero di alunni della 5BM

Page 71: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(Prove.Data) FROM Alunni,Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'INGLESE' AND Alunni.Classe = '5BM' )

Mostrare il numero delle prove (compiti e interrogazioni) sostenute dagli alunni della

5BM in Inglese

Page 72: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT( DISTINCT ( colonna ) )

FROM Tabella

WHERE CondizioneDiSelezione ;

Conta i valori diversi non ripetutii riscontrati nella colonna.

Page 73: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT( DISTINCT (CittaDiResidenza) ) FROM Alunni WHERE Classe = '5BM';

Mostrare il numero delle città di residenza degli alunni della 5BM

Page 74: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(*)

FROM Tabella

WHERE CondizioneDiSelezione ;

Restituisce il numero di tutte le righe selezionate della tabella; non sono escluse

righe con valori nulli.

Page 75: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(NumeroCartaDiCredito) FROM Correntisti;

Mostrare il numero dei correntisti titolari di carta di credito

Page 76: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT COUNT(NumeroCartaDiCredito) FROM Correntisti;

Mostra il numero dei correntisti titolari di carta di credito

SELECT COUNT(*) FROM Correntisti;

Mostra il numero di tutti i correntisti

Page 77: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT SUM(colonna)

FROM Tabella

WHERE CondizioneDiSelezione ;

Restituisce la somma di tutti i valori presenti in tutte le righe della tabella (solo quelle

selezionate) di una specifica colonna. La colonna deve contenere dati di tipo non

numerico.

Page 78: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT SUM(Prezzo) FROM LibriDiTesto WHERE Classe = '5BM';

Mostrare il costo totale dei libri di testo adottati per la 5BM

Page 79: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT MAX(colonna) oppure MIN(colonna)

FROM Tabella

WHERE CondizioneDiSelezione ;

Restituisce il massimo fra i valori presenti in tutte le righe della tabella (solo quelle

selezionate) di una specifica colonna. La colonna può contenere dati di tipo non

numerico.

Page 80: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT MIN(Voto) FROM Prove;

Mostrare qual'è il voto minimo fra tutti quelli che sono stati registrati

Page 81: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT MAX(Prove.Voto) FROM Alunni,Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'INGLESE' AND Alunni.Classe = '5BM' );

Mostrare qual'è il massimo riportato da un alunno della 5BM in Inglese.

Page 82: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT AVG(colonna)

FROM Tabella

WHERE CondizioneDiSelezione ;

Restituisce la media fra i valori presenti in tutte le righe della tabella (solo quelle

selezionate) di una specifica colonna. Ovviamente la colonna deve contenere dati di

tipo numerico.

Page 83: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT AVG(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM'

AND Alunni.Cognome = 'Martinelli' );

Mostrare qual'è la media dei voti assegnati a Martinelli della 5BM in Matematica

Page 84: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT AVG(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM');

Mostrare qual'è la media dei voti delle prove conseguiti dagli alunni della 5bm in

matematica.

Page 85: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT AVG(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM');

Mostrare qual è la media dei voti delle prove conseguiti dagli alunni della 5bm in

matematica.

Page 86: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Operazioni relazionali – Funzioni di aggregazioneOperazioni relazionali – Funzioni di aggregazione

SELECT Prove.Voto FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM');

Mostrare i voti riportati dagli alunni della 5 bm in matematica

Page 87: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

OrdinamentiOrdinamenti

L'interrogazione mostra le righe elencate come presenti nelle tabelle da cui sono

originate.

E' possibile mostrare le righe anche secondo un differente ordine basato sui valori

presenti in una colonna (o più) specificando la clausola

ORDER BY

Si impostare un ordinamento crescente (ASCending) o decrescente (DESCending)

Page 88: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

OrdinamentiOrdinamenti

SELECT colonna1, colonna

2, ..., colonna

n

FROM ...

WHERE ...

ORDER BY colonna1 [ ASC / DESC ] ,

colonna2 [ ASC / DESC ] ... ;

Page 89: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

OrdinamentiOrdinamenti

Lista delle prove (interrogazioni e compiti) di inglese svolte dagli alunni della 5BM

ordinati per data, dalla più recente alla più remota.

SELECT Prove.Data, Alunni.Cognome, Alunni.Nome, Prove.Voto FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'INGLESE' AND Alunni.Classe = '5BM' )

ORDER BY Prove.Data DESC;

Page 90: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

OrdinamentiOrdinamenti

Lista delle prove (interrogazioni e compiti) di inglese svolte dagli alunni della 5BM

ordinati in base alla quarta colonna definita nella proiezione, cioè in base al voto.

SELECT Alunni.Cognome, Alunni.Nome, Prove.Data, Prove.Voto FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'INGLESE' AND Alunni.Classe = '5BM' )

ORDER BY 4;

Page 91: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

OrdinamentiOrdinamenti

Lista delle prove (interrogazioni e compiti) svolte dagli alunni della 5BM ordinati

alfabeticamente per materia, in modo decrescente per voto nell'ambito delle prove di

una stessa materia ed infine per alunno.

SELECT Alunni.Cognome, Alunni.Nome, Prove.Data, Prove.Materia, Prove.Voto FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Alunni.Classe = '5BM' )

ORDER BY Prove.Materia, Prove.Voto DESC, Alunni.Cognome;

Page 92: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Le funzioni di aggregazione (MIN, MAX, AVG, COUNT, SUM )condensano le

informazioni di tutta una tabella (o solo delle righe selezionate) in un unico valore.

Le funzioni di aggregazione possono operare non solo su tutta la tabella ma per

gruppi di record.

Per esempio voglio che venga mostrata :

per ciascun alunno la sua media dei voti

per ciascuna materia il numero di prove che sono state sostenute

per ciascuna classe il voto più alto registrato al suo interno

Page 93: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Cliente Importo

8 1200

15 2000

Bellomo 3 150

Bellomo 7 1250

Bellomo 14 800

1 100

11 900

2 100

6 1500

10 500

NumFatt

Altomare

Altomare

Genchi

Genchi

Lorusso

Lorusso

Lorusso

Page 94: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Cliente Importo

8 1200

15 2000

Bellomo 3 150

Bellomo 7 1250

Bellomo 14 800

1 100

11 900

2 100

6 1500

10 500

NumFatt

Altomare

Altomare

Genchi

Genchi

Lorusso

Lorusso

Lorusso

Cliente Sum(Importo)

Altomare 3200

Bellomo 2200

Genchi 1000

Lorusso 2100

Page 95: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Il raggruppamento si definisce utilizzando la clausola

GROUP BY

Page 96: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

SELECT Colonna, FunzioneDiAggregazione(colonna)

FROM ...

GROUP BY Colonna ;

Page 97: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

SELECT Cliente, Sum(Importo) FROM Fatture GROUP BY Cliente;

Page 98: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Lista dei voti massimi riportati da ciascun alunno in qualunque prova.

Page 99: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

RaggruppamentiRaggruppamenti

Lista dei voti massimi riportati da ciascun alunno in qualunque prova.

SELECT Alunni.Cognome, Max(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID GROUP BY Alunni.Cognome;

Page 100: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

Lista dei voti massimi riportati da ciascun alunno della 5BM nelle prove di

Matematica.

SELECT Alunni.Cognome, Max(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'MATEMATICA' AND Alunni.Classe = '5BM' )

GROUP BY Alunni.Cognome;

Page 101: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

Lista dei voti massimi riportati da ciascun alunno della 5BM nelle prove di

Matematica.

SELECT Alunni.Cognome, Max(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'MATEMATICA' AND Alunni.Classe = '5BM' )

GROUP BY Alunni.Cognome;

Il raggruppamento opera sulle righe selezionate dalla clausola WHERE

Page 102: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

La clausola

HAVING condizione

usata insieme a GROUP BY, consente di visualizzare le sole righe prodotte dai

raggruppamenti che soddisfano la condizione.

Page 103: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

La clausola

HAVING condizione

usata insieme a GROUP BY, consente di visualizzare le sole righe prodotte dai

raggruppamenti che soddisfano la condizione.

Per esempio

gli alunni con una media superiore a 6

i professionisti che hanno un compenso totale superiore a 50.000 Euro

le discipline in cui gli studenti non abbiano riportato un voto superiore a 7

Page 104: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

SELECT Colonna, FunzioneDiAggregazione(colonna)

FROM ...

GROUP BY Colonna

HAVING condizione ;

La condizione si basa sul confronto tra la funzione di aggregazione e un altro

dato. Valuta per ciascun raggruppamento il risultato della funzione di aggregazione

sul raggruppamento e l'altro dato.

Page 105: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

Lista degli alunni che hanno riportato come loro voto più alto, un voto maggiore di 7.

In qualunque prova di qualunque disciplina

Page 106: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Raggruppamenti – condizioni sui raggruppamentiRaggruppamenti – condizioni sui raggruppamenti

Lista degli alunni che hanno riportato come loro voto più alto, un voto maggiore di 7.

In qualunque prova di qualunque disciplina

SELECT Alunni.Cognome, Max(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID GROUP BY Alunni.Cognome

HAVING Max(Prove.Voto) > 7;

Page 107: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery è una normale interrogazione che viene inclusa in un'altra query nella

espressione condizionale di quella che la contiene.

Page 108: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery è una normale interrogazione che viene inclusa in un'altra query nella

espressione condizionale di quest'ultima.

ES.

SELECT ............

FROM ......WHERE dato >, =, <, IN

;

Page 109: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery è una normale interrogazione che viene inclusa in un'altra query nella

espressione condizionale di quest'ultima.

ES.

SELECT ............

FROM ......WHERE dato >, =, <, IN

( SELECT ........ FROM WHERE ........) ;

Page 110: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery è una normale interrogazione che viene inclusa in un'altra query nella

espressione condizionale di quest'ultima.

ES.

SELECT ............

FROM ......WHERE dato >, =, <, IN

( SELECT ........ FROM WHERE ........) ;

SottoQuery o Query interna

Query principale

Page 111: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery produce un'unica colonna in una o più righe.

Quindi la sottoquery deve essere la proiezione di un'unica colonna.

Page 112: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery produce un'unica colonna in una o più righe.

Quindi la sottoquery deve essere la proiezione di un'unica colonna.

. . . SELECT AVG(Prove.Voto) FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') . . .

Media dei voti di tutte le prove di matematica degli alunni della 5BM.

Page 113: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

La sottoquery produce un'unica colonna in una o più righe.

Quindi la sottoquery deve essere la proiezione di un'unica colonna.

. . . SELECT AVG(Prove.Voto)

FROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') . . .

Media dei voti di tutte le prove di matematica degli alunni della 5BM.

AVG(Prove.Voto)

6,34

Page 114: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

Il valore prodotto dalla esecuzione della query interna

è utilizzato nella espressione condizionale che definisce la selezione della query

principale

6,34

AVG(Prove.Voto)

Page 115: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

Alunni della 5BM che conseguito nelle prove di Matematica almeno un voto

superiore alla media di tutte le prove.

Page 116: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

SELECT DISTINCT Alunni.Cognome, Alunni.NomeFROM Alunni, Prove WHERE Prove.IDAlunno = Alunni.ID AND Prove.Materia = 'Matematica' AND Prove.Voto >

( SELECT AVG(Prove.Voto) FROM Alunni, Prove

WHERE Prove.IDAlunno = Alunni.ID

AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') );

Alunni della 5BM che conseguito nelle prove di Matematica almeno un voto

superiore alla media dei voti di tutte le prove.

Page 117: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

SELECT DISTINCT Prove.IdAlunnoFROM ProveWHERE Prove.Materia = 'Matematica' AND Prove.Voto >

( SELECT AVG(Prove.Voto) FROM Alunni, Prove

WHERE Prove.IDAlunno = Alunni.ID

AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') );

Page 118: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

SELECT DISTINCT Prove.IdAlunnoFROM ProveWHERE Prove.Materia = 'Matematica' AND Prove.Voto >

( SELECT AVG(Prove.Voto) FROM Alunni, Prove

WHERE Prove.IDAlunno = Alunni.ID

AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') );

Codici degli alunni della 5BM che conseguito nelle prove di Matematica

almeno un voto superiore alla media dei voti di tutte le prove.

Page 119: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

SELECT DISTINCT Prove.IdAlunnoFROM ProveWHERE Prove.Materia = 'Matematica' AND Prove.Voto >

( SELECT AVG(Prove.Voto) FROM Alunni, Prove

WHERE Prove.IDAlunno = Alunni.ID

AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') );

35217

Prove.IdAlunno

Page 120: Linguaggio SQL - itcgiuliocesare.it fileLinguaggio SQL Prof. Giuseppe Tandoi Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale)

Linguaggio SQL

Prof. Giuseppe Tandoi

Query nidificate (o sottoquery)Query nidificate (o sottoquery)

SELECT DISTINCT Alunni.ComuneResidenza FROM Alunni WHERE Alunni.ID IN

( SELECT DISTINCT Prove.IdAlunno

FROM Prove

WHERE Prove.Materia = 'Matematica'

AND Prove.Voto >

( SELECT AVG(Prove.Voto)

FROM Alunni, Prove

WHERE Prove.IDAlunno = Alunni.ID

AND ( Prove.Materia = 'Matematica'

AND Alunni.Classe = '5BM') ) );