ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7



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

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

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

Istruzioni DML di SQL

OSSIF WEB. Manuale query builder

Operazioni sui database

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

CONCETTO DI ANNIDAMENTO

SQL - Funzioni di gruppo

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

SQL/OLAP. Estensioni OLAP in SQL

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Dispensa DB Mercato del Lavoro

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

MODULO 5 ACCESS Basi di dati. Lezione 4

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Raggruppamenti Conti Movimenti

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Database 3 affitto veicoli. Testo del quesito

Capitolo 13. Interrogare una base di dati

Dispensa di database Access

Interrogazioni complesse. SQL avanzato 1

Le query di raggruppamento

Basi Di Dati, 09/12/2003

Sistemi per la gestione di database: MySQL ( )

Data la seguente tabella :

Dati relazionali e XML

Le query. Lezione 6 a cura di Maria Novella Mosciatti

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Esercizio sui data base "Gestione conti correnti"

Nelle Caselle Gialle vanno inserite le date che comprendono il periodo a noi interessato; Es. dal 1 gennaio 2008 al 31 maggio 2008 compreso

SQL. Structured Query Language

Access. P a r t e p r i m a

Gli operatori relazionali

MAX, SUM, AVG, COUNT)

MySQL Database Management System

Introduzione ai database relazionali

Esercizio data base "Biblioteca"

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

PROGRAMMA SVOLTO NELLA SESSIONE N.

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

SOLUZIONI COMMENTATE

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Database e Microsoft Access. Ing. Antonio Guadagno

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

SQL (STRUCTURED QUERY LANGUAGE)

Vogliamo creare una anagrafe e poi creare delle query che rispondono a delle domandi. Utilizzando Microsoft Access

Esercitazione Simulazione Compito

I database relazionali (Access)

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

AD HOC Servizi alla Persona

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

User Tools: DataBase Manager

SQL: definizione schema

Volumi di riferimento

L istruzione SELECT di SQL

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

MANUALE PARCELLA FACILE PLUS INDICE

Lezioni di Laboratorio sui Data Base

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

Basi di Dati e Microsoft Access

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Il foglio elettronico. Excel PARTE

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Obiettivi del corso. Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000.

Ricorsione in SQL-99. Introduzione. Idea di base

CREAZIONE DI UN AZIENDA

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

A ridurre le dimensioni del database. A ordinare i record secondo criteri fissati sui campi. A facilitare le operazioni di inserimento dei dati

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

Data management a.a Il linguaggio SQL

OSSERVATORIO REGIONALE CONTRATTI PUBBLICI DI LAVORI, SERVIZI E FORNITURE

MySQL Database Management System

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

STAMPA UNIONE DI WORD

Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...).

Le Basi di Dati. Le Basi di Dati

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Il linguaggio SQL: query innestate

GUIDA OPERATIVA. INFOWeb. Programma presenze

Database 1 biblioteca universitaria. Testo del quesito

EXCEL FUNZIONI PRINCIPALI

GUIDA SALDOREALE Guida passo passo per il calcolo degli interessi anatocistici con il programma SaldoReale 2014.

SQL IL LINGUAGGIO DI INTERROGAZIONE

Il BACKUP è disponibile in

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

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

Corso di Sistemi di Elaborazione delle informazioni

Transcript:

ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni sui dati 2)... 3 Query su più tabelle... 4 Esempio 5 (INNER JOIN)... 4 Esempio 6 (LEFT JOIN)... 4 Esempio 7 (LEFT JOIN 2)... 5 Funzioni di aggregazione... 5 Esempio 8 (funzione AVG)... 6 Esempio 9 (funzione COUNT)... 6 Raggruppamenti... 6 ESEMPIO 10 (GROUP BY)... 7 Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Dati di esempio Consideriamo il seguente database, formato dalle tabelle Soci, Prenotazioni e Campi che è utilizzato da un Tennis Club per memorizzare la prenotazioni dei propri campi da tennis da parte dei soci. Di seguito il dettaglio dei dati memorizzati nelle varie tabelle. Vediamo alcuni esempi di query SQL. Query su una sola tabella In questo caso le query vengono effettuate su una sola tabella (quindi la clausola FROM è seguita da un solo elemento tabella). Vengono effettuate o per ordinare i dati (clausola ORDER BY) o per estrarre solamente alcune righe in base ad alcune condizioni (clausola WHERE). Esempio 1 (Ordinamento) Visualizzare l elenco dei soci in ordine alfabetico: SELECT * FROM Soci ORDER BY Cognome, Nome; In questa query dopo la clausola SELECT inseriamo * che indica di prendere tutte le colonne, l unica tabella coinvolta è la tabella Soci, i dati vengono presentati in ordine alfabetico di Cognome e in caso di cognomi uguali in ordine alfabetico di Nome. Se avessi voluto un ordinamento decrescente avrei dovuto aggiungere in coda la clausola DESC. Ecco il risultato della query: Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 2 di 7

Esempio 2 (Scelta di alcune colonne) Visualizzare Cognome, Nome e Cellulare dei soci: SELECT Cognome, Nome, Cellulare FROM Soci; Esempio 3 (Condizioni sui dati) Visualizzare i dati dei campi con Costo orario maggiore di 12,00 : SELECT * FROM Campi WHERE Costo > 12; La condizione che seleziona le righe da visualizzare deve essere inserita nella clausola WHERE. Ecco il risultato: Esempio 4 (Condizioni sui dati 2) Visualizzare i dati dei soci maschi nati negli anni 70: SELECT * FROM Soci WHERE Sesso = M AND DataN BETWEEN #01/01/1970# AND #12/31/1979# Le condizioni sui dati che si devono impostare possono essere anche più di una, in questo caso devono essere legate dalle parole chiave AND oppure OR. Le parole chiave BETWEEN AND servono per indicare che un certo campo è compreso tra due valori, in questo caso 1 gennaio 1970 e 31 dicembre 1979. Quando si impostano le condizioni i testi vanno indicati tra virgolette, le date tra i caratteri # ed i numeri senza nessun carattere particolare. Le date vanno indicate in formato americano e cioè #MM/GG/AAAA# (mesi, giorni, anni: 31 dicembre 1979 = #12/31/1979#). Ecco di seguito il risultato della query: Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 3 di 7

Query su più tabelle Quando si devono estrarre dati da più tabelle (collegate tra loro tramite chiavi primarie ed esterne) le tabelle interessate vanno unite. Ci sono vari modi per unire le tabelle e più precisamente: INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL JOIN. Esempio 5 (INNER JOIN) Visualizzare dalla tabella Soci il Cognome, il Nome ed il Cellulare e dalla tabella Prenotazioni FKCampo, Data, Ora e Durata: SELECT Cognome, Nome, Cellulare, FKCampo, Data, Ora, Durata FROM Soci, Prenotazioni WHERE IdSocio = FKSocio; La condizione per unire due tabelle in INNER JOIN viene specificata nella clausola WHERE impostando l uguaglianza tra la chiave esterna e quella primaria. Ricordiamo che la INNER JOIN riporta tutte e sole le righe per le quali c è corrispondenza tra le chiavi. La query può essere alternativamente scritta nella maniera seguente: SELECT Cognome, Nome, Cellulare, FKCampo, Data, Ora, Durata FROM Soci INNER JOIN Prenotazioni ON Soci.IdSocio = Prenotazioni.FKSocio; Esempio 6 (LEFT JOIN) Come nell esempio precedente vogliamo visualizzare dalla tabella Soci il Cognome, il Nome ed il Cellulare e dalla tabella Prenotazioni FKCampo, Data, Ora e Durata ma in più vogliamo visualizzare anche i dati di soci che eventualmente non hanno mai effettuato prenotazioni (se non hanno mai effettuato prenotazioni non hanno corrispondenza nella tabella prenotazioni) SELECT Cognome, Nome, Cellulare, FKCampo, Data, Ora, Durata FROM Soci LEFT JOIN Prenotazioni ON Soci.IdSocio = Prenotazioni.FKSocio; Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 4 di 7

In questo caso oltre alle righe che erano state visualizzate nell esempio precedente (quelle che hanno corrispondenza nelle due tabelle) vengono visualizzate anche le righe della tabella di sinistra (LEFT) in questo caso Soci che non hanno corrispondenza nella tabella di destra. Non avendo corrispondenza a destra, i campi presi dalla tabella Prenotazioni saranno vuoti (NULL). Vediamo il risultato Come si può notare l utente Pluti Pluto non ha mai effettuato alcuna prenotazione ed infatti i campi della tabella Prenotazioni (FKCampo, Data, Ora, Durata) sono vuoti. Esempio 7 (LEFT JOIN 2) Vogliamo visualizzare i dati dei soci (Cognome, Nome e Cellulare) che non hanno mai effettuato prenotazioni: SELECT Cognome, Nome, Cellulare FROM Soci LEFT JOIN Prenotazioni ON Soci.IdSocio = Prenotazioni.FKSocio WHERE IdPrenotazione IS NULL; In questo caso la LEFT JOIN fa in modo che unendo le due tabelle siano presenti sia i soci che hanno corrispondenza nelle due tabelle (che cioè hanno effettuato prenotazioni) sia i soci che questa corrispondenza non l hanno (i soci che non hanno mai prenotato). La clausola WHERE inoltre specifica che deve essere vuoto il campo IdPrenotazione e questo fa in modo che le righe che contengono la corrispondenza Soci Prenotazioni vengano escluse. Rimangono quindi solamente le righe in cui non è presente IdPrenotazione (quindi i soli soci che non hanno mai prenotato) Funzioni di aggregazione Le funzioni di aggregazione sono: MIN, MAX, SUM, AVG, COUNT. In particolare MIN restituisce il valore minimo presente in una data colonna, MAX il valore massimo, SUM restituisce la somma dei dati contenuti in una data colonna, AVG la media e COUNT serve per contare il numero di righe. Vediamo alcuni esempi. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 5 di 7

Esempio 8 (funzione AVG) Visualizzare il costo medio orario dei campi SELECT AVG(Costo) AS CostoMedioCampi FROM Campi; In questa query non è necessario unire tabelle in quanto i dati dei costi sono presenti nella sola tabella Campi. La clausola AS serve per dare un nome alla colonna risultato della query. Esempio 9 (funzione COUNT) Visualizzare il numero di Soci SELECT COUNT(*) AS NumeroSoci FROM Soci; La funzione COUNT quando tra parentesi viene indicato * serve per contare il numero di righe di una tabella o di un raggruppamento. Raggruppamenti La clausola GROUP BY è usata per raggruppare righe che hanno valori uguali nei campi specificati. Quando un comando presenta la clausola GROUP BY, nella riga della clausola SELECT può essere presente una funzione di aggregazione; in questo caso il comando restituisce un valore calcolato dalla funzione per ogni gruppo di righe. Vediamo un esempio. Unendo in INNER JOIN le tabelle Soci e Prenotazioni e selezionando le colonne IdSocio, Cognome, Nome otterremmo: IdSocio Cognome Nome 000C Rossi Laura 000D Neri Maria 000D Neri Maria I soci vengono riportati tante volte quante sono le prenotazioni da loro effettuate. Se noi andiamo ora a raggruppare per IdSocio, Cognome, Nome (tramite GROUP BY IdSocio, Cognome, Nome) avremo una nuova tabella nella quale le righe che hanno gli stessi valori nelle colonne vengono riportate una sola volta: Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 6 di 7

IdSocio Cognome Nome 000C Rossi Laura 000D Neri Maria I raggruppamenti sono spesso utilizzati in combinazione con le funzioni di aggregazione per effettuare calcoli all interno di gruppi di dati. Va ricordato che nella clausola GROUP BY sono sempre riportati gli stessi campi che sono presenti nella clausola SELECT ad eccezione eventualmente delle funzioni di aggregazione. ESEMPIO 10 (GROUP BY) Visualizzare il numero di prenotazioni effettuate da ogni socio (IdSocio, Cognome, Nome). SELECT IdSocio, Cognome, Nome, COUNT(*) AS NumeroPrenota FROM Soci, Prenotazioni WHERE IdSocio = FKSocio GROUP BY IdSocio, Cognome, Nome; Per prima cosa bisogna notare che si devono unire (INNER JOIN) le tabelle Soci e Prenotazioni. In questo modo vengono considerate le righe che hanno corrispondenza nelle due tabelle. Siccome è presente la clausola GROUP BY IdSocio, Cognome, Nome (da notare che i campi della clausola sono gli stessi presenti dopo SELECT ad eccezione di COUNT(*) che è una funzione di aggregazione) tutte le righe che presentano stessi valori su IdSocio, Cognome e Nome vengono raggruppate tra loro (e visualizzate una sola volta). All interno di questi raggruppamenti la funzione di aggregazione COUNT(*) conta il numero delle righe. Ecco il risultato della query: Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 7 di 7