Elaborazione dati informatici

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

TIPI STANDARD DI SQL BOOLEAN Valori: vero, falso CHAR(n)
Structured Query Language
SQL applicato a SQL Server
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 Comandi per la manipolazione dei dati. 2 Tipi di comandi INSERT UPDATE DELETE COMANDI COMANDI 2.
DML – Data Manipulation Language
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
SQL.
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Access: Query semplici
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Equivalenza di espressioni
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Corso di laurea di I livello in Tecnico di laboratorio biomedico
Realizzato da Roberto Savino
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
Prof Ing Gaetano La Rosa1 Corso di laurea di I livello in Tecnico di laboratorio biomedico Prof Ing Gaetano La Rosa
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Interrogare il database
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
SQL (III) Data Definition Language/ Data Manipulation Language.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Operazioni Relazionali
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Transcript della presentazione:

Elaborazione dati informatici Università degli Studi di Catania Facoltà medicina Corsi di laurea in: Tecnici di Radiologia Medica per Immagini Radioterapia Esempi SQL - Prof Ing G. La Rosa

Linguaggio SQL Prof Ing Gaetano La Rosa email: info@glrstudio.com Web: www.glrstudio.com Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa SQL: caratteri SQL utilizza i caratteri alfabetici; Cifre decimali; Operatori aritmetici (+ - * /); Operatori di confronto (< >); Caratteri di sintassi (, ;); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa SQL: identificatori Gli identificatori sono i nomi di tabelle o di attributi Sono costituiti da sequenze di caratteri di lunghezza non superiore a 18 Devono iniziare con una lettera e possono contenere il carattere ‘_’ Per separare il nome tabella dal nome attributo si utilizza il carattere ‘.’ Nometabella.nomeattributo Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa SQL: tipi di dati Nella dichiarazione della struttura di una tabella occorre specificare il tipo di dati per ogni attributo Alcuni tipi standard: character(n)  stringa n char Character  stringa 1 char Date  data nel formato aaaa/mm/gg Time  ora nel formato hh:mm Integer(p)  intero con precisione p Smallint  intero con precisione 5 Integer  intero con precisione 10 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa SQL: tipi di dati (2) Decimal(p,s)  decimale con precisione p e cifre decimali s Real numero reale con precisione 7 Float(p)  numero reale con mantissa di precisione p Float  numero reale con mantissa di precisione 15 Abbreviazioni Char(n) anziché character(n) Char anziché character Int(p) anziché integer(p) Dec(p,s) anziché decimal(p,s) NB alcune versioni SQL prevedono definizioni tipi lievemente diverse Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Costanti e operatori Le costanti stringa sono delimitate da apici: ‘stringa’ Gli attributi che non hanno un valore definito assumono il valore NULL (diverso sia da 0 che da stringa vuota) Sono previsti gli operatori NOT, AND, OR Clausola ‘not null’: va inserita accanto ai nomi degli attributi che non possono prevedere valori null (ad esempio le chiavi) Esempi SQL - Prof Ing G. La Rosa

Comandi DDL: Data Definition Language Permettono di implementare il modello logico dei dati sulle memorie di massa. Nelle più recenti versioni di DBMS dette operazioni sono effettuate con interfacce interattive senza l’uso di comandi specifici. Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Comando CREATE TABLE Utilizzato per la creazione di tabelle Va seguito dal nome della tabella e dall’elenco degli attributi: CREATE TABLE personale (Matricola char(5), Cognome char(30), Nome char(30), CodFis char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2) ); Esempi SQL - Prof Ing G. La Rosa

Modifica di una tabella creata ALTER TABLE: permette di modificare una tabella con aggiunta (ADD) o rimozione (DROP) di attributi: ALTER TABLE personale ADD Nascita date; ALTER TABLE personale DROP StipBase; Esempi SQL - Prof Ing G. La Rosa

Creazione di indici su tabelle CREATE INDEX: permette la creazione di un nuovo indice su una tabella esistente su specifici attributi: CREATE INDEX Ipersonale ON personale (cognome, Nome); Esempi SQL - Prof Ing G. La Rosa

Cancellazione di tabelle e indici: DROP DROP TABLE personale; DROP INDEX Ipersonale ON personale; Esempi SQL - Prof Ing G. La Rosa

Comandi DML: Data Manipulation Language Permettono di modificare i valori degli attributi mediante inserimento, modifica e cancellazione. INSERT, UPDATE, DELETE Anche questi comandi in alcune versioni di DBMS possono risultare nascosti all’utente grazie all’utilizzo di maschere e interfacce visuali Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Comandi DML: INSERT INSERT INTO personale (Matricola, Cognome, Nome, CodFis, Nascita, assunto, Filiale, Funzione, Livello, StipBase, Via, Cap, Citta, Prov) VALUES (‘CS342’,’Pillera’, ‘Luigi’, ‘PLLLGU…’, ………,’CT’); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Comandi DML: UPDATE UPDATE personale SET Livello=6, SET Stipbase=1260, WHERE matricola=‘CS212’; SET Stipbase=Stipbase*1.05, WHERE livello >5; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Comandi DML: DELETE DELETE FROM personale WHERE Matricola=‘CS102’; WHERE Stipbase < 500; Esempi SQL - Prof Ing G. La Rosa

Comandi di interrogazione: SELECT SELECT [ALL| DISTINCT] Attributi FROM Tabelle [WHERE Condizione]; Esempi SQL - Prof Ing G. La Rosa

QUERY su TABELLA studenti Esempi SQL - Prof Ing G. La Rosa

QUERY su TABELLA studenti (2) SELECT Indirizzo, Telefono FROM Studenti WHERE Nome=‘Teo Verdi’ Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Altri esempi: Utilizzando il database personale 1 Visualizzare Cognome, nome e codice fiscale del personale avente qualifica impiegato 2 Visualizzare tutti i dati del personale avente residenza in Milano Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposte 1) SELECT Cognome, Nome, CodFis FROM personale WHERE Funzione=‘impiegato’; 2) SELECT * WHERE Prov=‘MI’; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola distinct SELECT Funzione FROM personale; produce l’elenco di tutte le professioni dei dipendenti ripetendo la stessa professione in righe diverse quanti sono i dipendenti che svolgono quella funzione SELECT DISTINCT Funzione produce l’elenco di tutte le professioni dei dipendenti specificando una sola volta le singole funzioni presenti Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola AS La clausola AS serve per assegnare l’intestazione della tabella che si ottiene a seguito di un comando SELECT Esempi: Utilizzando il database personale visualizzare 1 L’ elenco di tutte le province di provenienza dei dipendenti con intestazione Provincia 2 l’ elenco di tutti i dipendenti con cognome, nome, stipendio attuale con intestazione attuale e valore previsionale in caso di aumento del 5% con intestazione Nuovo. (Il database non deve subire modifiche) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposte 1 SELECT DISTINCT Prov AS Provincia FROM personale; 2 SELECT Cognome, Nome, Stipbase AS Attuale, StipBase*1.05 AS Nuovo FROM personale; Esempi SQL - Prof Ing G. La Rosa

Query parametriche (MSAccess) SELECT Cognome, Nome FROM personale WHERE Funzione =‘impiegato’; Query fissa su attributo Funzione= ‘impiegato’ WHERE Funzione =[quale funzione?]; Query parametrica su attributo Funzione Il sistema chiederà quale funzione? Esempi SQL - Prof Ing G. La Rosa

Capacità del comando SQL SELECT Selezione Proiezione Tabella 1 Tabella 1 Join Tabella 1 Tabella 2 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Selezione Selezione  consente di ricavare da una relazione un’altra relazione contenente solo le righe che soddisfano una certa condizione Si realizza con la clausola WHERE SELECT * FROM personale WHERE Funzione = ‘dirigente’; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Proiezione Proiezione  consente di ricavare da una relazione un’altra relazione contenente solo alcune colonne della relazione di partenza Si realizza indicando accanto a SELECT gli attributi richiesti SELECT Cognome, Nome FROM personale; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Congiunzione - Join Congiunzione  consente la congiunzione di più tabelle attraverso degli attributi comuni CREATE TABLE personale (Matricola char(5) not null, Cognome char(30), Nome char(30), CodFis char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2) ); CREATE TABLE dipendenza (CodFil smallint not null Descrizione char(20) Indirizzo char(25) ); Fra dipendenza e personale esiste un’associazione 1n pertanto la chiave di dipendenza (CodFil) viene posta come chiave esterna in personale (Filiale) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Congiunzione – Join (2) Utilizzando la join e le tabelle personale e dipendenza creare la query per visualizzare l’elenco di tutti i dipendenti (completo di tutti i dati) con l’indicazione e la descrizione della filiale nella quale lavorano Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT * FROM personale, dipendenza WHERE Filiale=CodFil; oppure SELECT * FROM personale, dipendenza WHERE personale.Filiale = dipendenza.CodFil; oppure SELECT * FROM personale INNER JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Esempi SQL - Prof Ing G. La Rosa

Congiunzione – Left/Right Join La forma SELECT * FROM personale INNER JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune  INNER JOIN o EQUI JOIN. Se si desidera visualizzare altre informazioni di record per i quali non sussiste la corrispondenza fra le due tabelle è possibile utilizzare left o right prima di join a seconda se i dati da visualizzare stanno posti sulla matrice di destra o sinistra rispetto al join Esempi SQL - Prof Ing G. La Rosa

Congiunzione – Left Join SELECT * FROM personale LEFT JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella personale (tabella di sinistra) non aventi corrispondenze nella tabella di destra. Esempi SQL - Prof Ing G. La Rosa

Congiunzione –Right Join SELECT * FROM personale RIGHT JOIN dipendenza ON personale.Filiale = dipendenza.CodFil; Permette di selezionare le righe delle due tabelle con l’attributo comune e gli eventuali campi della tabella dipendenza (tabella di destra) non aventi corrispondenze nella tabella di sinistra. Esempi SQL - Prof Ing G. La Rosa

Congiunzione – Self-Join La congiunzione è detta di self-Join quando opera su una medesima tabella ES: aggiungiamo alla tabella personale l’attributo Dirigente che contiene il codice della persona che dirige il dipendente. Le informazioni sul Dirigente, in quanto anch’esso dipendente, saranno contenute sulle medesima tabella personale. Esempi SQL - Prof Ing G. La Rosa

Congiunzione – Self-Join (2) CREATE TABLE personale (Matricola char(5), Cognome char(30), … Assunto date, Dirigente char(5), Filiale smallint, Prov char(2) ); Per effettuare una self-join si utilizzano gli alias sui nomi delle tabelle utilizzando la clausola AS. Esempio: Utilizzando il self join e la tabella personale con il campo dirigente, visualizzare l’elenco dei dipendenti con i dati cognome e nome del dipendente e indicazione del cognome del relativo dirigente Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Tab1.Cognome, Tab1.Nome, Tab2.Cognome FROM personale AS Tab1, personale AS Tab2 WHERE Tab1.Dirigente = Tab2.Matricola ; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatori logici AND, OR, NOT Esercizio: Realizzare una Query per ottenere elenco dei dipendenti con funzione impiegato con cognome, nome, descrizione e indirizzo della filiale dove lavorano: Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome, Descrizione, indirizzo FROM personale, dipendenza WHERE Funzione=‘impiegato’ AND Filiale=CodFil; …. O per maggiore chiarezza: Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT personale.Cognome, personale.Nome, dipendenza.Descrizione, dipendenza.indirizzo FROM personale, dipendenza WHERE personale.Funzione=‘impiegato’ AND personale.Filiale=dipendenza.CodFil; Esempi SQL - Prof Ing G. La Rosa

Funzioni di aggregazione COUNT: conteggio SUM: somma AVG: media MIN: minimo MAX: massimo Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzione COUNT Conta le righe presenti in una tabella Sintassi: COUNT(arg) Arg= *  tutte le righe Arg= attributo  tutte le righe con att !=NULL COUNT permette di determinare la cardinalità di una relazione Può utilizzarsi con clausola WHERE Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzione COUNT (2) Esercizio Utilizzando la funzione count visualizzare: 1 Il numero di dipendenti presenti nel database personale; 2 il numero di dipendenti aventi uno specifico livello assegnato (ovvero con campo !=Null) 3 il numero di dipendenti residenti nella provincia di Catania Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta 1 SELECT COUNT (*) FROM personale; 2 SELECT COUNT(livello) 3 SELECT COUNT(*) FROM personale WHERE Prov=‘CT’; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzione COUNT (3) Esercizio Utilizzando la clausola DISTINCT visualizzare il numero di differenti livelli che risiedono nella provincia di CT. Intestare l’uscita con livelli. Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT COUNT (DISTINCT livello) AS livelli FROM personale WHERE Prov=‘CT; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzione SUM Restituisce la somma dei valori di una colonna di tipo numerico Eventuali campi NULL vanno considerati come 0 Può utilizzarsi con clausola WHERE e DISTINCT Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzione SUM (2) Esercizio Utilizzando l’archivio personale visualizzare la Somma degli stipendi base (stipbase) appartenenti al livello 5 La somma degli stipendi base del livello 5 qualora si effettui un aumento del 10%, intestando la colonna come Previsione Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta 1 SELECT SUM (StipBase) FROM personale WHERE Livello=5; 2 SELECT SUM (StipBase*1,1) AS Previsione FROM personale WHERE Livello = 5; Esempi SQL - Prof Ing G. La Rosa

Funzione AVG (average) Restituisce la media aritmetica dei valori di una colonna di tipo numerico Eventuali campi NULL non influiscono nel computo della media Può utilizzarsi con clausola WHERE e DISTINCT SELECT AVG (StipBase) FROM personale WHERE Funzione=‘Impiegato’; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzioni MAX e MIN Restituiscono rispettivamente il max e il min tra i valori di una colonna Operano anche su attributi sia numerici che di tipo carattere Ignorano i campi NULL L’argomento di MIN e MAX può essere un’espressione numerica Può utilizzarsi con clausola WHERE Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Funzioni MAX e MIN (2) SELECT MIN(StipBase), MAX (StipBase) FROM personale; SELECT MIN (Cognome), MAX (Cognome) Esempi SQL - Prof Ing G. La Rosa

Funzioni di ordinamento e raggruppamento ORDER BY: criterio di ordinamento GROUP BY: criterio di raggruppamento Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa FUNZIONE ORDER BY Permette di ordinare il risultato di una query secondo i valori contenuti in una o più colonne Opera sia su valori numerici che carattere Può essere ascendente ASC (default) o discendente DESC Il valore NULL sarà posta all’inizio delle sequenze crescenti, alla fine in quelle decrescenti Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa FUNZIONE ORDER BY (2) Esercizio Utilizzando la tabella personale visualizzare Elenco alfabetico dei dipendenti con cognome, nome, data_nascita e CF ordinato per cognome e, in caso di cognomi uguali, per nome Elenco dei dipendenti con cognome e stipendio per stipendio decrescente e, a parità di stipendio, per cognome crescente Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome, CodFisc,Nascita FROM personale ORDER BY Cognome, Nome; SELECT Cognome, StipBase FROM personale ORDER BY StipBase DESC, Cognome; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa FUNZIONE GROUP BY Permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate (statistiche) Produce una riga per ogni raggruppamento Se utilizzata con funzioni di aggregazione produce un valore di raggruppamento per ciascuna riga I valori NULL vengono raggruppati solo se si utilizza COUNT(*) Tutti gli attributi posti nella lista del SELECT devono essere inclusi nella clausola GROUP BY oppure essere argomenti di una funzione di aggregazione Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa FUNZIONE GROUP BY (2) Esercizio: utilizzando la tabella personale visualizzare la lista delle funzioni dei dipendenti con la somma degli stipendi e il numero dei dipendenti appartenenti alle diverse funzioni (tante righe quante sono le funzioni diverse) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Funzione, SUM (StipBase), COUNT (*) FROM personale GROUP BY Funzione; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa FUNZIONE GROUP BY (3) Esercizio: Visualizzare l’elenco dei livelli esistenti tra i dipendenti con funzione di impiegato con il numero di dipendenti per ciascun livello intestato come conteggio (una riga per ogni livello) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Livello, COUNT (Livello) AS Conteggio FROM personale WHERE Funzione=‘impiegato’ GROUP BY Livello; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola HAVING La clausola HAVING è, in genere, utilizzata con GROUP BY e serve ad aggiungere dei controlli sui gruppi di righe ottenuti Dopo che GROUP BY ha formato dei raggruppamenti HAVING serve a visualizzare le righe di raggruppamento che soddisfano determinate condizioni Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola HAVING (2) Esercizio: Visualizzare l’elenco delle funzioni dei dipendenti con lo stipendio medio per ciascuna funzione nella quale ci siano almeno 2 dipendenti (non vengono visualizzate funzioni con un solo dipendente) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Funzione , AVG (StipBase) FROM personale GROUP BY Funzione HAVING COUNT(*) >1; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola HAVING (3) Esercizio: utilizzando la tabella personale visualizzare l’elenco delle filiali con l’indicazione del numero dei dipendenti con qualifica impiegato, intestato come conteggio. Omettere le filiali ove questo numero è <= 10 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Filiale, COUNT (Filiale) AS Conteggio FROM personale WHERE Funzione=‘impiegato’ GROUP BY Filiale HAVING COUNT(*) >10; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Clausola HAVING (4) HAVING opera un filtraggio come WHERE ma: WHERE agisce sulle righe della tabella HAVING sui risultati delle funzioni di aggregazione applicati ai gruppi di righe Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Riepilogo di Select Select [all/distinct] * | lista_campi From tabella|tabelle [where condizione] [Group by campo[,campo..]] [having condizione] [order by campo [asc|desc]] Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (2) L’esecuzione del comando select avviene secondo il seguente ordine di clausole: 1) clausola from  definisce la tabella da cui accedere ai dati tab1 from tab1 tab3 tab2 database Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (3) 2) clausola where  riduce la selezione secondo una condizione where Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (4) 3) clausola group by  raggruppa le righe in base a certi valori uguali di certe colonne group by Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (5) 4) clausola having  impone condizioni sulla scelta delle righe having Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (6) 5) clausola select  seleziona le colonne select Esempi SQL - Prof Ing G. La Rosa

Esecuzione di Select (7) 6) clausola order by  ordina le righe selezionate select Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatori di ricerca Operatori di confronto Operatori logici BETWEEN: valore compreso fra… IN : appartenenza ad un insieme LIKE: ricerca con metacaratteri IS : controllo dei campi NULL Esempi SQL - Prof Ing G. La Rosa

Operatori di confronto =  uguale <  minore >  maggiore <>  diverso <=  minore o uguale >=  maggiore o uguale Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatori logici NOT  negazione logica a NOT a F V V F L’uscita è il negato dell’ingresso Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatori logici (2) AND  prodotto logico a b a AND b F F F F V F V F F V V V L’uscita è vera se entrambi gli ingressi sono veri Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatori logici (3) OR  somma logica a b a OR b F F F F V V V F V V V V L’uscita è vera se almeno un ingresso è vero Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatore BETWEEN Controlla un intervallo Esercizio: Utilizzando la tabella personale visualizzare l’ elenco dei dipendenti con cognome , nome e funzione, assunti da febbraio ad agosto 2006 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome, Funzione FROM personale WHERE Assunto BETWEEN 01/02/06 AND 31/08/06 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatore IN Controlla l’appartenenza ad un insieme Esercizio  Visualizzare l’elenco completo di tutti i dati dei dipendenti residenti nelle province CT, ME, PA, EN Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT * FROM Personale WHERE Prov IN (‘CT’,’ME’,’PA’, ‘En’); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatore LIKE Permette l’utilizzo di caratteri jolly o metacaratteri: _ (underscore)  singolo carattere qualunque % (percento)  stringa qualunque LIKE ‘abc%’  stringhe che iniziano con abc LIKE ‘abc_’  stringhe di 4 char che iniziano con abc LIKE ‘%abc%’  stringhe che contengono abc LIKE ‘%abc’  stringhe che terminano con abc Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatore LIKE (2) Esercizio: Visualizzare l’elenco con cognome e filiale dei dipendenti aventi cognome che inizia con ‘Mac’ Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Filiale FROM Personale WHERE Cognome LIKE ‘Mac%’; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Operatore IS E’ utilizzato con NULL oppure con NOT NULL per verificare se un certo campo è o no NULL: SELECT Cognome, Nome FROM personale WHERE Prov IS NOT NULL  elenco dei dipendenti nel cui record è indicata la provincia Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery Il comando select permette di inserire un altro comando select all’interno della struttura di un comando select creando interrogazioni nidificate  subquery o select interna Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery (2) La condizione scritta dopo il where confronta il valore di un attributo con il risultato di un altro comando select Una subquery può restituire Un valore singolo Nessun valore Un insieme di valori Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery (3) La clausola select di subquery Può far riferimento a una singola colonna o ad una espressione Non può contenere distintc Non può contenere order by Può avere altre select dentro where e having Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery semplici Dapprima viene valutata la query interna il cui risultato viene utilizzato dalla query esterna La query interna deve fornire pertanto fornire un risultato che possa essere valutato in termini booleani dalla where esterna Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery semplici (2) Elenco nominativo dei dipendenti con StipBase > della media degli stipendi SELECT Cognome, Nome From personale Where StipBase > (select avg (Stipbase) From personale); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery semplici (3) Esercizio: visualizzare l’elenco con cognome, nome e descrizione della filiale in cui operano dei dipendenti aventi Stipendio pari al max per la funzione impiegato. L’elenco va visualizzato ordinato per cognome e nome. Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome, Descrizione From personale, dipendenza Where Filiale=CodFil And StipBase = (select max(Stipbase) From personale where Funzione=’impiegato’) Order by Cognome, Nome; Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con any Il predicato any indica che la subquery può restituire 1 Insieme di valori E che la condizione di ricerca è verificata se il confronto è vero per almeno uno dei valori restituiti Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con any (2) La condizione di ricerca è falsa se la subquery restituisce un insieme vuoto oppure se il confronto è falso per ciascuno dei valori restituiti dalla subquery Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con any (3) Esercizio: visualizzare l’elenco con cognome nome e funzione dei dipendenti non impiegati e aventi Stipbase > di uno qualsiasi di quello degli impiegati Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome,Funzione From personale Where Funzione <> ‘impiegato’ And StipBase > any (select Stipbase where funzione=‘impiegato’); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con all Il predicato all indica che la subquery può restituire 1 Insieme di valori E che la condizione di ricerca è verificata se il confronto è vero per tutti i valori restituiti Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con all (2) La condizione di ricerca è falsa se il confronto è falso per almeno uno tra i valori restituiti dalla subquery Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con all (3) Esercizio: visualizzare l’elenco con cognome, nome e funzione dei dipendenti non impiegati aventi Stipbase > a quello di tutti gli impiegati Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome,Funzione From personale Where Funzione <> ‘impiegato’ And StipBase > all (select Stipbase where Funzione=‘impiegato’); Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con IN Il predicato IN serve a controllare se il valore di un attributo è compreso fra quelli restituiti dalla subquery effettuata con la select nidificata E’ possibile utilizzare NOT IN per ottenere la condizione opposta Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con IN (2) Esercizio: visualizzare l’elenco con cognome e nome dei dipendenti che operano nelle filiali con più di 20 dipendenti Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome From personale Where Filiale IN (select Filiale group by Filiale Having count(*) >20); Esempi SQL - Prof Ing G. La Rosa

Equivalenze IN – ANY - ALL Si osservi che la condizione where attributo IN (select…) Equivale a: where attributo = ANY (select…) Analogamente la condizione where attributo NOT IN (select…) Equivale a: where attributo < > ALL (select…) Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con exists Il predicato exists controlla se vengono restituite righe dall’esecuzione della subquery La condizione è vera se la select nidificata produce una o più righe falsa se restituisce un insieme vuoto Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con exists (2) Nelle subquery con exists le colonne sono irrilevanti pertanto nella subquery si utilizza il carattere * E’ possibile utilizzare la forma negativa NOT EXISTS Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Subquery con exists (3) Esercizio: Visualizzare l’ elenco cognome e nome dei dipendenti se esistono dipendenti di livello 8 Esempi SQL - Prof Ing G. La Rosa

Esempi SQL - Prof Ing G. La Rosa Risposta SELECT Cognome, Nome From personale Where exists (select * where livello=8); Esempi SQL - Prof Ing G. La Rosa