QL (Query Language) Alice Pavarani
|
|
|
- Aloisio Spina
- 7 anni fa
- Visualizzazioni
Transcript
1 QL (Query Language) Alice Pavarani
2 QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione è sempre una tabella Il comando di interrogazione dei dati riflette la natura dichiarativa del linguaggio SQL: le interrogazioni sul database sono eseguite specificando solo cosa si vuole ottenere, senza preoccuparsi di problemi di rappresentazione e memorizzazione dei dati.
3 Struttura di base: SELECT-FROM-WHERE La struttura più semplice di interrogazione di una base di dati è composta da 3 clausole: SELECT FROM WHERE Permette di estrapolare le informazioni, prese da una o più tabelle, che rispettano determinate condizioni SELECT Attributi FROM Tabelle WHERE Condizioni
4 PROIEZIONE (taglio verticale) Esempi Si usa una, (virgola) per separare più attributi da visualizzare nella clausola SELECT SELECT Cognome, Nome, Residenza Si ottiene l elenco con Cognome, Nome, Residenza di tutti gli Impiegati SELECT Cognome, Nome, Residenza WHERE Dipartimento = Prod Si ottiene l elenco con Cognome, Nome, Residenza di tutti gli Impiegati del Dipartimento con codice Prod SELECT IDImpiegato, Cognome, Nome WHERE Dipartimento = Prod AND Residenza = Torino Si ottiene l elenco con ID, Cognome, Nome di tutti gli Impiegati del Dipartimento con codice Prod e che risiedono a Torino SELEZIONE (taglio orizzontale) SELECT * WHERE Residenza = Roma Si ottiene l elenco completo di tutte le informazioni degli Impiegati residenti a Roma
5 SELECT La clausola SELECT richiede che venga specificata la lista degli attributi (colonne) da elencare Se sono necessari tutti gli attributi delle tabelle indicate, è sufficiente scrivere SELECT * Predicati ALL (di default) impone che nel risultato vengano incluse tutte le righe che soddisfano alle condizioni contenute nel comando DISTINCT riduce ad un unica riga tutte le righe duplicate ottenute come risultato di un interrogazione
6 Calcolo di espressioni Si utilizza la clausola AS per rinominare una colonna Con il comando SELECT si può anche richiedere il calcolo di espressioni sugli attributi dell interrogazione La tabella risultante contiene una colonna aggiuntiva con i risultati del calcolo ottenuto per ogni riga Il calcolo di espressioni non modifica il valore dell attributo in tabella SELECT Cognome, Nome, Stipendio AS Attuale, Stipendio*1.05 AS Nuovo WHERE Dipartimento = Mag Si ottiene una tabella composta da 4 colonne: Cognome, Nome, Attuale, Nuovo dove, per ogni riga, viene visualizzato sia lo Stipendio memorizzato nella tabella Impiegato (Attuale), sia il nuovo stipendio se il precedente fosse aumentato del 5% per tutti gli impiegati del dipartimento Mag (Nuovo)
7 Condizioni di ricerca: WHERE I criteri di selezione delle righe vengono determinati in base ad una o più condizioni (Vero/Falso) Nella scrittura di una condizione sono leciti i simboli: Operatori di confronto =, <, >, <=, >=, <> Connettivi logici AND, OR, NOT Altri predicati Ordine di precedenza: NOT AND OR BETWEEN / NOT BETWEEN controlla se un valore è compreso in un intervallo, estremi inclusi IN / NOT IN controlla se un valore appartiene o meno (NOT IN) ad un insieme di valori precisato dopo il predicato LIKE / NOT LIKE confronta il valore di un attributo di tipo carattere con un modello di stringa eventualmente composto da caratteri jolly IS NULL / IS NOT NULL confronta il valore di una colonna con NULL L uso di questo predicato il solo modo per controllare la presenza del valore NULL in una colonna
8 In Access: _? % * Il predicato LIKE Caratteri jolly (metacaratteri): _ (underscore) indica uno e un solo carattere qualsiasi in quella posizione della stringa % (percento) indica una sequenza di zero o più caratteri in quella posizione della stringa Esempi Il predicato LIKE utilizzato con un modello di stringa che non contiene caratteri jolly è equivalente all operatore = Attr LIKE xyz% tutti gli attributi che iniziano con xyz Attr LIKE %xyz tutti gli attributi che finiscono con xyz Attr LIKE %xyz% tutti gli attributi che comprendono xyz Attr LIKE _xyz tutti gli attributi che iniziano con un carattere e poi xyz
9 Esempi SELECT Cognome, Nome, Residenza WHERE Stipendio BETWEEN AND SELECT IDImpiegato, Cognome, Nome WHERE Residenza IN ( Roma, Milano, Torino ) SELECT IDImpiegato, Cognome, Nome WHERE Residenza NOT IN ( Roma, Milano ) SELECT IDImpiegato, Cognome, Nome WHERE Residenza IS NULL Si ottiene l elenco con Cognome, Nome, Residenza di tutti gli Impiegati aventi Stipendio compreso tra e (equivale a >= AND <=) Si ottiene l elenco con IDImpiegato, Cognome, Nome di tutti gli Impiegati con Residenza a Roma, Milano o Torino (equivale al connettivo OR tra le condizioni di uguaglianza) Si ottiene l elenco con IDImpiegato, Cognome, Nome di tutti gli Impiegati tranne quelli con Residenza a Roma o a Milano (equivale al connettivo AND tra le condizioni di disuguaglianze) Si ottiene l elenco con ID, Cognome, Nome di tutti gli Impiegati di cui non è nota la Residenza
10 JOIN Grazie al comando SELECT è possibile operare su più tabelle: operazione di JOIN Per realizzare un collegamento tra due tabelle occorre specificare nella clausola WHERE una condizione che coinvolga un attributo comune: chiave primaria chiave esterna SELECT *, Dipartimento WHERE Impiegato.Dipartimento = Dipartimento.Codice Si ottiene l elenco di tutti gli Impiegati con i dati del Dipartimento in cui lavorano Se la condizione è di uguaglianza si chiama equi-join
11 INNER JOIN La versione SQL adottata da Access prevede un altra istruzione per realizzare il JOIN tra due tabelle, del tutto equivalente alla precedente ma con una sintassi diversa SELECT * INNER JOIN Dipartimento ON Impiegato.Dipartimento = Dipartimento.Codice Se si utilizza l INNER JOIN la condizione di collegamento è scritta nella clausola FROM, dopo la parola chiave ON
12 SELF JOIN Viene chiamata SELF JOIN quella particolare operazione che collega una tabella con sé stessa Occorre utilizzare un alias per il nome della tabella, per evitare ambiguità nei ruoli dell associazione Esempio: PERSONA (CF, Cognome, Nome, Coniuge) in cui il campo Coniuge è chiave esterna riferita al campo CF di Persona SELECT Marito.Cognome, Marito.Nome, Moglie.Cognome, Moglie.Nome FROM Persona AS Marito, Persona AS Moglie WHERE Marito.CF = Moglie.Coniuge Si ottiene l elenco con Cognome e Nome di ogni coppia di Coniugi
13 JOIN esterni A A A B B B Generalmente, l equi-join NON include nella selezione risultante quelle righe di una delle due tabelle che non trovano corrispondenza nell altra (valori nulli) Esistono tre diverse forme di JOIN, detti join esterni, per rispondere a questa esigenza Left-join FROM TabellaA LEFT JOIN TabellaB ON ChiaveA = ChiaveB Right-join FROM TabellaA RIGHT JOIN TabellaB ON ChiaveA = ChiaveB Full-join FROM TabellaA FULL JOIN TabellaB ON ChiaveA = ChiaveB
14 Esempio: Left-join SELECT Descrizione, Nome, Cognome FROM Dipartimento LEFT JOIN Impiegato ON Dipartimento.Codice = Impiegato.Dipartimento Seleziona la Descrizione di tutti i Dipartimenti e, se noti, il Nome ed il Cognome degli Impiegati che vi lavorano SELECT Descrizione, Nome, Cognome FROM Dipartimento LEFT JOIN Impiegato ON Dipartimento.Codice = Impiegato.Dipartimento WHERE Cognome IS NULL Seleziona la Descrizione di tutti i Dipartimenti senza Impiegati
15
16 Ordinamenti La clausola ORDER BY consente l ordinamento dei risultati di un interrogazione, secondo una o più colonne in senso: ASC (default) = crescente per i numeri, alfabetico per le stringhe (dalla A alla Z) DESC = decrescente per i numeri, alfabetico inverso per le stringhe (dalla Z alla A) SELECT Cognome, Nome WHERE Dipartimento = Mag ORDER BY Cognome SELECT Cognome, Stipendio WHERE Dipartimento = Mag ORDER BY DESC Stipendio Seleziona Cognome e Nome degli Impiegati del Dipartimento Mag in ordine alfabetico per Cognome Seleziona Cognome e Stipendio degli Impiegati del Dipartimento Mag in ordine decrescente di Stipendio Il valore NULL compare, di norma, all inizio delle sequenze crescente e alla fine delle sequenze decrescenti
17 Funzioni di aggregazione Le funzioni di aggregazione agiscono sui valori di una singola colonna e restituiscono un unico valore (il massimo, il minimo, la somma, ) Le righe considerate per l aggregazione sono quelle prodotte dall interrogazione, cioè rispettano le eventuali condizioni (clausola WHERE) Possono essere utilizzate solo nella clausola SELECT oppure nella clausola HAVING
18 Ovviamente su attributi di tipo numerico Anche su attributi di tipo carattere (seguendo l ordine alfabetico) Funzioni di aggregazione COUNT conta il numero di righe risultanti dall interrogazione SUM calcola la somma dei valori contenuti nella colonna AVG calcola la media dei valori contenuti nella colonna MIN / MAX restituisce il minimo/massimo tra i valori della colonna Si può specificare il nome dell attributo o il carattere *: nel primo caso non vengono conteggiate le righe con valore NULL nell attributo specificato SELECT COUNT (*) WHERE Residenza = Milano SELECT SUM (Stipendio) WHERE Dipartimento = Amm SELECT AVG (Stipendio) WHERE Dipartimento = Amm SELECT MAX (Stipendio) Restituisce il numero di Impiegati residenti a Milano Restituisce la somma degli Stipendi degli Impiegati del Dipartimento Amm Restituisce la media degli Stipendi degli Impiegati del Dipartimento Amm Restituisce lo Stipendio massimo tra tutti gli Impiegati NB: L unica funzione di aggregazione che considera anche i valori NULL è COUNT(*)
19 Raggruppamenti Le funzioni di aggregazione condensano le informazioni di una tabella in un solo valore (il numero di righe, la somma, il massimo, ) Spesso è necessario sintetizzare i valori per classi omogenee secondo opportuni criteri di raggruppamento Per tale scopo si utilizza la clausola GROUP BY
20 GROUP BY La clausola GROUP BY permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate dalla clausola Produce una riga di risultati per ogni raggruppamento NOTA BENE: Quando si utilizza una clausola GROUP BY, tutti gli attributi che compaiono nella lista della clausola SELECT devono essere inclusi nella clausola GROUP BY oppure devono essere argomenti di una funzione di aggregazione
21 Esempio: GROUP BY Elenca il codice dei dipartimenti (Dipartimento) in cui lavorano gli Impiegati, la somma degli stipendi (Stipendi) ed il numero di impiegati (NumDipendenti) per ogni Dipartimento SELECT Dipartimento, COUNT (ID) AS NumDipendenti, SUM (Stipendio) AS Stipendi GROUP BY Dipartimento L istruzione viene eseguita per passi: Le righe sono raggruppate per Dipartimento (clausola GROUP BY) Le funzioni di aggregazione sono applicate singolarmente su ogni raggruppamento
22 HAVING La clausola HAVING permette di imporre condizioni sui gruppi, creati precedentemente tramite la clausola GROUP BY Permette di visualizzare i soli raggruppamenti che soddisfano alle condizioni della clausola HAVING Specifica una condizione che, generalmente, controlla il valore restituito dalle funzioni di aggregazione SELECT Dipartimento, COUNT (ID) AS NumDipendenti, SUM (Stipendio) AS Stipendi GROUP BY Dipartimento HAVING COUNT (ID) >= 2 Elenca il codice dei dipartimenti in cui lavorano almeno 2 Impiegati, la somma degli stipendi (Stipendi) ed il numero di impiegati (NumDipendenti) per ogni Dipartimento
23 Comando SELECT SELECT FROM WHERE GROUP BY HAVING ORDER BY Elenco colonne da mostrare Tabelle da cui estrarre i record Condizioni che i record devono verificare Campi da considerare per i raggruppamenti Condizioni sui raggruppamenti Ordinamenti sulle colonne elencate
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
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
SQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
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;
Select From Where...
Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle
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
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
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,
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
<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
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
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
Il linguaggio SQL: raggruppamenti
Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono
Linguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Istruzione SELECT: esempio Trovare il codice
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
Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento
Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple
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 è
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING
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
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
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
SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni
SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non
Interrogazioni complesse. SQL avanzato 1
Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio
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
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
Esempi SQL con Access. Orazio Battaglia
con Access Orazio Battaglia Consideriamo la base di dati in figura. 2 Interrogazione 1: Selezioniamo tutti gli impiegati, vogliamo Cognome, Nome e Posizione SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.Posizione
SQL - Sottointerrogazioni correlate
SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire
Interrogazioni Interrogazioni in SQL } L'istruzione base dell'sql per costruire interrogazioni di complessita arbitraria e lo statement SELECT } Sinta
Interrogazioni } L'istruzione base dell'sql per costruire interrogazioni di complessita arbitraria e lo statement SELECT } Sintassi di base: SELECT [DISTINCT ALL] FROM [WHERE
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)
Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna 1985 13 laura sicuro rimini 1984 esami codice
Linguaggio SQL Il linguaggio SQL (Structured Query Language) è il linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali sostenuti codice matricola anno voto
