Linguaggio SQL. Prof. Giuseppe Tandoi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggio SQL. Prof. Giuseppe Tandoi"

Transcript

1

2 Caratteristiche generali SQL è uno strumento per organizzare gestire recuperare dati memorizzati in DataBase organizzati su base Relazionale.

3 Caratteristiche generali SQL è l'acronimo di Structured Query Language. SQL è un linguaggio (non procedurale) per interagire con database.

4 Caratteristiche 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.).

5 Caratteristiche generali SQL non è un software un sistema di gestione di database un linguaggio di programmazione procedurale

6 Caratteristiche generali - DBMS DBMS = Data Base Management System Software che controlla il database consente le operazioni di definizione, manipolazione e estrazione

7 Caratteristiche 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.

8 Caratteristiche generali - DBMS E' il DBMS che consente interazioni attraverso l'uso del linguaggio SQL.

9 Regole generali - formato istruzione Le istruzioni sono formate dal verbo imperativo e dai parametri e terminano con il punto e virgola ( ; ) create table ALUNNI ( ID Smallint, COGNOME char(20), NOME char(20) ) ;

10 Regole 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

11 Regole generali definizione identificatori L'identificatore assoluto di un attributo è costituita dalla abituale notazione : NomeTabella. NomeAttributo Ordini.Data Alunni.Data_di_Nascita NomeTabella si può omettere se non vi sono di ambiguità di identificazione.

12 Regole 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.

13 Definizione dei dati - DDL DDL : Data Description Language Sottoinsieme di istruzioni di SQL che consentono di * definire nuove tabelle * modificare la struttura delle tabelle * rimuovere tabelle

14 DDL tipi standard di dati BOOLEAN Valore logico True, false CHARACTER(n) Stringa di lunghezza (n) N da 1 a DATE Data nella forma mm/gg/aa TIME Ora nella forma hh:mm INTEGER(p) Numero intero di precisione P P da 1 a 45 SMALLINT Numero intero (16 bit) Da a INTEGER Numero intero (32 bit) Da a DECIMAL(p,s) Numero decimale di p cifre di cui s decimali REAL Numero reale con mantissa di precisione 7 FLOAT Numero reale con mantissa di precisione 15 FLOAT(p) Numero reale con mantissa di precisione p

15 DDL definizione nuove tabelle CREATE TABLE NomeTabella ( nome attr 1 tipo, nome attr 2 tipo,... nome attr n tipo) ;

16 DDL definizione nuove tabelle CREATE TABLE Alunni ( Id SMALLINT, Cognome Nome CHAR(20), CHAR(20), Indirizzo CHAR(40), Classe CHAR(10) );

17 DDL eliminazione tabella DROP TABLE NomeTabella ;

18 DDL eliminazione tabella DROP TABLE Alunni;

19 DDL modifica struttura tabella Aggiunta attributo ALTER TABLE NomeTabella ADD nome attr 1 tipo; Rimozione attributo ALTER TABLE NomeTabella DROP nome attr ;

20 DDL modifica struttura tabella Aggiunta attributo ALTER TABLE Alunni ADD ContattoMSN Char(50); Rimozione attributo ALTER TABLE Alunni DROP Classe;

21 DDL definizione nuove tabelle - clausole CREATE TABLE NomeTabella ( nome attr 1 tipo PRIMARY KEY, nome attr 2 nome attr 3 nome attr 4 tipo UNIQUE, tipo NOT NULL, tipo AUTO_INCREMENT,... nome attr n tipo DEFAULT valore) ;

22 DDL definizione nuove tabelle - clausole PRIMARY KEY UNIQUE NOT NULL DEFAULT dichiara quell'attributo come chiave primaria della tabella rende inammissibili valori uguali obbliga ad indicare un valore 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

23 DDL definizione nuove tabelle - clausole CREATE TABLE Alunni ( Id SMALLINT PRIMARY KEY, Cognome Nome CHAR(20) NOT Null, CHAR(20) NOT Null, Indirizzo CHAR(40), Classe CHAR(10) NOT Null, Citta CHAR(30) DEFAULT 'Bari' );

24 Manipolazione dei dati - DML DML : Data Manipulation Language Sottoinsieme di istruzioni di SQL che consentono di * inserire nuovi record * modificare il contenuto dei campi dei record * cancellare record

25 DML Inserimento record INSERT INTO NomeTabella (nome attr 1, nome attr 2,..., nome attr n ) VALUES (val 1, val 2,..., val n );

26 DML Inserimento record INSERT INTO Alunni (Id, Cognome, Nome, Indirizzo, Classe, Citta) VALUES (23,'Rossi', 'Mario','Via Roma,12', '', 'Bari' );

27 DML Modifica record UPDATE NomeTabella SET nome attr = valore WHERE CondizioneDiSelezione;

28 DML Modifica record UPDATE Alunni SET Classe = '5BM' WHERE ID = 23;

29 DML Elimina record DELETE FROM NomeTabella WHERE CondizioneDiSelezione;

30 DML Elimina record DELETE FROM Alunni WHERE ID = 23; DELETE FROM Alunni WHERE Alunni.Classe = '5BM';

31 Query 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

32 Query Language Interrogazione database Le interrogazioni al database si pongono attraverso il comando SELECT La struttura base del comando SELECT è SELECT colonne FROM tabella;

33 Query Language Interrogazione database SELECT * DELETE FROM Alunni FROM Alunni; WHERE ID = 23;

34 Query Language Interrogazione database SELECT * DELETE FROM Alunni FROM Alunni; WHERE ID = 23; SELECT Alunni.Id, Alunni.Cognome, Alunni.Nome, Alunni.Indirizzo, Alunni.Classe, Alunni.Citta FROM Alunni;

35 Query Language Interrogazione database SELECT * DELETE FROM Alunni FROM Alunni; WHERE ID = 23; SELECT Alunni.Id, Alunni.Cognome, Alunni.Nome, Alunni.Indirizzo, Alunni.Classe, Alunni.Citta FROM Alunni; SELECT Id, Cognome, Nome, Indirizzo, Classe, Citta FROM Alunni;

36 Query 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;

37 Query Language Interrogazione database SELECT Id AS Matricola, Cognome, Nome AS NomeDiBattesimo, DELETE FROM Alunni FROM Alunni; WHERE ID = 23;

38 Query 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;

39 Query Language Interrogazione database SELECT Numero, Data, Importo As Imponibile, Importo * 0,20 AS Iva, DELETE FROM Alunni Importo * 1,20 AS TotaleFattura WHERE ID = 23; FROM Fatture;

40 Operazioni relazionali Selezione Si ottiene specificando la clausola WHERE SELECT * FROM Tabella WHERE CondizioneDiSelezione;

41 Operazioni 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: =, >, <, <>, >=, <=

42 Operazioni relazionali Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Citta = 'Bari';

43 Operazioni 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

44 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Citta <> 'Bari' AND Alunni.Classe = '5BM';

45 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Citta <> 'Bari' AND Alunni.Classe = '5BM'; SELECT * FROM Alunni WHERE NOT (Alunni.Citta <> 'Bari' AND Alunni.Classe = '5BM') ;

46 Operazioni 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

47 Operazioni 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 ( valore 1, Valore 2,..., Valore n );

48 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Classe IN ('3BM', '4BM', '5BM');

49 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Classe IN ('3BM', '4BM', '5BM'); corrisponde a SELECT * FROM Alunni WHERE Alunni.Classe = '3BM' OR Alunni.Classe = '4BM' OR Alunni.Classe = '5BM';

50 Operazioni 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 Valore 1 AND Valore 2 ;

51 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Voto BETWEEN 6 AND 8;

52 Operazioni 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;

53 Operazioni relazionali Operatori di Selezione SELECT * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Cognome LIKE 'BA*'; SELECT * FROM Alunni WHERE Alunni.Cognome LIKE 'BA??';

54 Operazioni relazionali Predicati ALL e DISTINCT SELECT ALL colonna 1, colonna 2,..., colonna m FROM Tabella WHERE condizione; consente di ottenere tutte le righe che soddisfano la condizione. Il predicato ALL è considerato di default.

55 Operazioni relazionali Predicati ALL e DISTINCT SELECT ALL * DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Classe = '5BM';

56 Operazioni 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

57 Operazioni relazionali Predicati ALL e DISTINCT SELECT DISTINCT CittaNascita DELETE FROM Alunni FROM Alunni; WHERE ID = 23;

58 Operazioni relazionali Proiezione Si ottiene specificando l'elenco degli attributi richiesti SELECT colonna 1, colonna 2,..., colonna m FROM Tabella;

59 Operazioni relazionali Proiezione SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe DELETE FROM Alunni FROM Alunni; WHERE ID = 23;

60 Operazioni relazionali Proiezione SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe DELETE FROM Alunni FROM Alunni; WHERE ID = 23; SELECT Cognome, Nome, Classe FROM Alunni;

61 Operazioni relazionali Selezione di proiezione SELECT Colonna 1, Colonna 2,..., Colonna m FROM Tabella WHERE CondizioneDiSelezione ;

62 Operazioni relazionali Selezione di proiezione SELECT Alunni.Cognome, Alunni.Nome, Alunni.Classe DELETE FROM Alunni FROM Alunni WHERE ID = 23; WHERE Alunni.Citta = 'Bari';

63 Operazioni relazionali Congiunzione SELECT * FROM Tabella 1, 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).

64 Operazioni relazionali Congiunzione SELECT * DELETE FROM Alunni FROM Alunni, Prove WHERE ID = 23; 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.

65 Operazioni relazionali Combinazione delle operazioni relazionali SELECT colonna 1, colonna 2,..., colonna m FROM Tabella 1, Tabella 2 WHERE CondizioneDiCongiunzione AND CondizioneDiSelezione ;

66 Operazioni relazionali Combinazione delle operazioni relazionali Mostrare gli esiti di tutte le prove di Inglese sostenute dagli studenti della 5BM

67 Operazioni relazionali Combinazione delle operazioni relazionali Mostrare gli esiti di tutte le prove di Inglese sostenute dagli studenti della 5BM 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' );

68 Operazioni 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

69 Operazioni 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.

70 Operazioni relazionali Funzioni di aggregazione SELECT COUNT(Cognome) FROM Alunni WHERE Classe = '5BM'; Mostrare il numero di alunni della 5BM

71 Operazioni 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

72 Operazioni relazionali Funzioni di aggregazione SELECT COUNT( DISTINCT ( colonna ) ) FROM Tabella WHERE CondizioneDiSelezione ; Conta i valori diversi non ripetutii riscontrati nella colonna.

73 Operazioni relazionali Funzioni di aggregazione SELECT COUNT( DISTINCT (CittaDiResidenza) ) FROM Alunni WHERE Classe = '5BM'; Mostrare il numero delle città di residenza degli alunni della 5BM

74 Operazioni 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.

75 Operazioni relazionali Funzioni di aggregazione SELECT COUNT(NumeroCartaDiCredito) FROM Correntisti; Mostrare il numero dei correntisti titolari di carta di credito

76 Operazioni 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

77 Operazioni 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.

78 Operazioni relazionali Funzioni di aggregazione SELECT SUM(Prezzo) FROM LibriDiTesto WHERE Classe = '5BM'; Mostrare il costo totale dei libri di testo adottati per la 5BM

79 Operazioni 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.

80 Operazioni relazionali Funzioni di aggregazione SELECT MIN(Voto) FROM Prove; Mostrare qual'è il voto minimo fra tutti quelli che sono stati registrati

81 Operazioni 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.

82 Operazioni 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.

83 Operazioni 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

84 Operazioni 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.

85 Operazioni 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.

86 Operazioni 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

87 Ordinamenti 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)

88 Ordinamenti SELECT colonna 1, colonna 2,..., colonna n FROM... WHERE... ORDER BY colonna1 [ ASC / DESC ], colonna2 [ ASC / DESC ]... ;

89 Ordinamenti 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; Lista delle prove (interrogazioni e compiti) di inglese svolte dagli alunni della 5BM ordinati per data, dalla più recente alla più remota.

90 Ordinamenti 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; 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.

91 Ordinamenti 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; 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.

92 Raggruppamenti 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

93 Raggruppamenti Cliente Altomare NumFatt Importo Altomare Bellomo Bellomo Bellomo Genchi Genchi Lorusso Lorusso Lorusso

94 Raggruppamenti Cliente Altomare NumFatt Importo Altomare Bellomo Cliente Sum(Importo) Bellomo Bellomo Altomare 3200 Bellomo 2200 Genchi Genchi Lorusso Lorusso Lorusso Genchi 1000 Lorusso 2100

95 Raggruppamenti Il raggruppamento si definisce utilizzando la clausola GROUP BY

96 Raggruppamenti SELECT Colonna, FunzioneDiAggregazione(colonna) FROM... GROUP BY Colonna ;

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

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

99 Raggruppamenti 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;

100 Raggruppamenti 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;

101 Raggruppamenti 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

102 Raggruppamenti 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.

103 Raggruppamenti 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 Euro le discipline in cui gli studenti non abbiano riportato un voto superiore a 7

104 Raggruppamenti 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.

105 Raggruppamenti 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

106 Raggruppamenti 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;

107 Query nidificate (o sottoquery) La sottoquery è una normale interrogazione che viene inclusa in un'altra query nella espressione condizionale di quella che la contiene.

108 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 ;

109 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...) ;

110 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...) ; Query principale SottoQuery o Query interna

111 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.

112 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.

113 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

114 Query nidificate (o sottoquery) Il valore prodotto dalla esecuzione della query interna AVG(Prove.Voto) 6,34 è utilizzato nella espressione condizionale che definisce la selezione della query principale

115 Query nidificate (o sottoquery) Alunni della 5BM che conseguito nelle prove di Matematica almeno un voto superiore alla media di tutte le prove.

116 Query nidificate (o sottoquery) Alunni della 5BM che conseguito nelle prove di Matematica almeno un voto superiore alla media dei voti di tutte le prove. SELECT DISTINCT Alunni.Cognome, Alunni.Nome FROM 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') );

117 Query nidificate (o sottoquery) 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') );

118 Query nidificate (o sottoquery) 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') ); Codici degli alunni della 5BM che conseguito nelle prove di Matematica almeno un voto superiore alla media dei voti di tutte le prove.

119 Query nidificate (o sottoquery) 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') ); Prove.IdAlunno

120 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') ) );

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

PROGETTAZIONE DI DATABASE Linguaggio SQL

PROGETTAZIONE DI DATABASE Linguaggio SQL PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti

Dettagli

Linguaggio SQL seconda parte

Linguaggio SQL seconda parte Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

ESERCITAZIONI ACCESS

ESERCITAZIONI ACCESS ESERCITAZIONI ACCESS MS Access 2000 Struttura di riferimento: Studente (Matricola, Cognome, Nome) Esame (Matricola, Materia, Voto, Data) CREARE LE TABELLE IN SQL: Create table STUDENTE ( matricola char(6)

Dettagli

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1 I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice

Dettagli

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti

Dettagli

MODULO 2. Query normali e parametriche Query di:

MODULO 2. Query normali e parametriche Query di: MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze

Dettagli

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard SQL [1] Concetti essenziali di SQL 2 Il linguaggio SQL Uno dei principali motivi del successo delle basi di dati: è diventato uno standard Fornisce un interfaccia dichiarativa di alto livello, permettendo

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 5 Raffaella Gentilini 1 / 22 Sommario 1 Gruppi 2 / 22 Raggruppamenti Gruppi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1 Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente

Dettagli

Query SQL - singola tabella

Query SQL - singola tabella Query SQL - singola tabella Informatica@SEFA 07/08 - Lezione 9 Massimo Lauria http://massimolauria.net/courses/infosefa07/ Mercoledì, 6 Dicembre 07 Tabelle in SQL Tabelle nel

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio

Dettagli

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO ANNO SCOLASTICO 2016-2017 SETTORE Economico Classe V Sez. A MATERIA DI INSEGNAMENTO: INFORMATICA STRUMENTI Paolo Camagni, Riccardo Nikolassy (2014)

Dettagli

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti

Dettagli

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SQL, e.data, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami WHERE NOT EXISTS (SELECT * WHERE e.matricola = s.matricola

Dettagli

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL : fondamenti Linguaggio per gestire le basi di dati relazionali Structured Query Language SQL possiede istruzioni per definire lo schema di una base di dati relazionale leggere e scrivere i dati definire

Dettagli

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Basi di dati I Prova di autovalutazione 30 ottobre 2014 Basi di dati I Prova di autovalutazione 3 ottobre 214 La prova verrà discussa in aula, prevedibilmente giovedì 6 novembre. Si consiglia di svolgerlo simulando l esame, sulla carta e senza ausilio di libri

Dettagli

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Gestione e Analisi dei Dati Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Vincoli sui Dati Regole del dominio di interesse Unicità di codici di corso e matricole Un codice deve corrispondere

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio Trovare il codice e il numero di soci dei fornitori

Dettagli

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

Dettagli

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il

Dettagli

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice

Dettagli

Alessandra Raffaetà. Esercizio: Cinema

Alessandra Raffaetà. Esercizio: Cinema Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale

Dettagli

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query Corso di Access Modulo L2 A (Access) 2.3.1 Le query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB 2 1 Introduzione

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

Dettagli

Introduzione a MySQL. Definizione SQL. Esempio

Introduzione a MySQL. Definizione SQL. Esempio Introduzione a MySQL Moreno Marzolla Dipartimento di Informatica Università Ca' Foscari di Venezia marzolla@dsi.unive.it http://www.dsi.unive.it/~marzolla Definizione Una tabella (o relazione) è costituita

Dettagli

Interrogazioni in SQL

Interrogazioni in SQL Interrogazioni in SQL Corso di Basi di Dati 4 dicembre 2013 1 Interrogazioni sullo schema aziendale 1. Ottenere i nomi dei dipartimenti dislocati in piú sedi. 2. Ottenere il numero di supervisori. 3. Produrre

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

CORSO ACCESS 2000 PARTE VI

CORSO ACCESS 2000 PARTE VI Le Query Le Query selezionano dati, da una o più tabelle in un database, che soddisfano determinati requisiti e visualizzano i risultati in un foglio dati. I dati richiesti vengono visualizzati in un recordset

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Introduzione al linguaggio SQL

Introduzione al linguaggio SQL Introduzione al linguaggio SQL Structured Query Language (Linguaggio Strutturato di Interrogazione di Database) prof. Cleto Azzani IPSIA MORETTO BRESCIA (2004) Che cos è un Data Base (Base di dati) Insieme

Dettagli

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

Laboratorio di Basi di Dati Per Bioinformatica

Laboratorio di Basi di Dati Per Bioinformatica Laboratorio di Basi di Dati Per Bioinformatica Laurea in Bioinformatica - A.A. 2010/11 Docente: Carlo Combi Email: carlo.combi@univr.it Lezione 1 SQL Structured Query Language SQL è stato definito nel

Dettagli

Interrogazioni semplici

Interrogazioni semplici Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

Access. P a r t e t e r z a

Access. P a r t e t e r z a Access P a r t e t e r z a 1 Query: Concetti generali (2) Query 1 Tabella Query 2 Le query rappresentano viste differenti sul DB (possono coinvolgere una o più tabelle) 2 Creazione (1) Diverse possibilità,

Dettagli

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

Tabelle esempio: Impiegato/Dipartimento

Tabelle esempio: Impiegato/Dipartimento Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (4) Query di aggiornamento Prof. Alberto Postiglione

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab

Dettagli

VARIABILI, ASSEGNAZIONE, DECISIONI

VARIABILI, ASSEGNAZIONE, DECISIONI LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) PAG. 1 / 6 LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) T-SQL PROGRAMMAZIONE PARTE TERZA VARIABILI, ASSEGNAZIONE, DECISIONI Tratto da Gregory A. Larsen, http://www.databasejournal.com/features/mssql/article.php/3087431/t-sql-programming-part-1---defining-variables-and-if-logic.htm

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

Basi di Dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di Dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di Dati Il Linguaggio SQL Il Linguaggio SQL SQL (Structured Query Language) è di fatto lo standard tra i linguaggi per la gestione di basi di dati relazionali è un linguaggio dichiarativo (non-procedurale),

Dettagli

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

SQL - Sottointerrogazioni

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

Dettagli

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere

Dettagli

2.4. Creare ed operare con le query

2.4. Creare ed operare con le query 2.4. Creare ed operare con le query 2.4.1. I comandi per le query I comandi già presentati in precedenza per gli oggetti in generale (vedi RICHIAMO) valgono in particolare per le query; in figura sono

Dettagli

Introduzione alle basi di dati

Introduzione alle basi di dati Introduzione alle basi di dati Marco Botta botta@di.unito.it www.di.unito.it/~botta/didattica/bioinfo.html 1 Sistema Informativo Insieme di strutture in grado di acquisire, elaborare, trasmettere ed archiviare

Dettagli

Le query di comando e di servizio in Access

Le query di comando e di servizio in Access Le query di comando e di servizio in Access In questa parte sono presentate alcune query di Access che permettono di: creare nuove tabelle, aggiungere o eliminare righe in una tabella, modificare il contenuto

Dettagli

Corso base SQLite. Copyright (c) 2015 Antonio Gallo

Corso base SQLite. Copyright (c) 2015 Antonio Gallo Corso base SQLite Copyright (c) 2015 Antonio Gallo (antoniog.web@gmail.com) Il seguente documento è rilasciato sotto licenza Creative Commons 2.5 Attribution Share alike. Per leggere una copia della licenza

Dettagli

Tipi di sottoquery SQL

Tipi di sottoquery SQL Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Introduzione Sql con Microsoft Access

Introduzione Sql con Microsoft Access Introduzione Sql con Microsoft Access SQL (Structured Query Language) è un linguaggio per l interrogazione del database che permette anche di leggere, modificare, creare, eliminare e gestire i dati all

Dettagli

ESERCIZI SQL. Esercizio 1

ESERCIZI SQL. Esercizio 1 ESERCIZI SQL 2 Esercizio 1 3 Esercizio 1 4 Esercizio 1 Si specifichino le seguenti interrogazioni SQL sulla base di dati relazionale AZIENDA. Si mostri il risultato di ciascuna interrogazione. 1. Si restituisca

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic. 2007 da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori.

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic. 2007 da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori. Basi di dati ad oggetti:un esempio ODL-OQL 1. Caso filmoteca: modello dei dati lunghezza tipo_pellicola via città indirizzo titolo anno FILM attori recitain ATTORE nome posseduto da lunghezza_in_ore (

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

Dettagli

Filtri. Microsoft Access. Filtri. Filtri

Filtri. Microsoft Access. Filtri. Filtri Filtri Microsoft Access Filtri, query Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo requisito Per applicare un filtro a una tabella è

Dettagli

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3 ECDL - Database Ripasso European Computer Driving Licence - Modulo 5 - Database LEZIONE 3 Ripasso Cosa sono le relazioni? Come si gestiscono le relazioni in Access? Cosa si intende per query? Come interroghiamo

Dettagli