SQL. Structured Query Language



Похожие документы
ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

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

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

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

OSSIF WEB. Manuale query builder

Istruzioni DML di SQL

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

Structured Query Language parte 1

SQL (STRUCTURED QUERY LANGUAGE)

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

MAX, SUM, AVG, COUNT)

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Volumi di riferimento

Il linguaggio SQL e Access

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

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

Dispensa di database Access

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

Interrogazioni complesse. SQL avanzato 1

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

CONCETTO DI ANNIDAMENTO

Corso di Laboratorio di Basi di Dati

DBMS (Data Base Management System)

SQL - Funzioni di gruppo

SQL: definizione schema

Data management a.a Il linguaggio SQL

SQL IL LINGUAGGIO DI INTERROGAZIONE

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

UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest)

SOLUZIONI COMMENTATE

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

OR true null false true true true true null true null null false true null false NOT

IL LINGUAGGIO SQL. Caratteristiche generali. Il comando Select. Le basi di dati ed il linguaggio SQL A.Lorenzi D.Rossi - ATLAS. Pag.

Il linguaggio SQL. ing. Alfredo Cozzi 1

SQL (STRUCTURED QUERY LANGUAGE)

Corso di Sistemi di Elaborazione delle informazioni

ITIS "E. Divini" Specializzazione di INFORMATICA SAN SEVERINO MARCHE (MC) Il linguaggio SQL

Introduzione a MySQL

Introduzione al linguaggio SQL

MySQL Database Management System

GERARCHIE RICORSIVE - SQL SERVER 2008

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

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

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

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

Sistemi per la gestione di database: MySQL ( )

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.


SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

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

Operazioni sui database

Le query. Lezione 6 a cura di Maria Novella Mosciatti

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

Dispensa DB Mercato del Lavoro

QL (Query Language) Alice Pavarani

MODULO 5 ACCESS Basi di dati. Lezione 4

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Fogli Elettronici: MS Excel utilizzo avanzato

Introduzione ai database relazionali

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

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

SQL/OLAP. Estensioni OLAP in SQL

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

PROGRAMMA DI CLASSE 5AI

Linguaggio SQL. Structured Query Language

Linguaggio SQL seconda parte

S.Q.L. Introduzione a Structured Query Language. I.T.C. "V.Emanuele II" - Perugia. Prof.Claudio Maccherani INDICE

Gestione delle tabelle

Liberare la memoria allocata dinamicamente.

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

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

DATABASE.

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

Al giorno d oggi, i sistemi per la gestione di database

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

PHP e Structured Query Language

Applicazione DBToolsSync Manuale Utente

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

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

SQL: le funzioni di aggregazione

Microsoft Access. Microsoft Access

C A T A L O G O. Catalogo del Sistema Bibliotecario Padovano. Gruppo Lavoro per il Coordinamento dei Corsi all Utenza

User Tools: DataBase Manager

DATABASE RELAZIONALI

GUIDA ALL USO DELLA BANCA DATI FSTA (FOOD SCIENCE AND TECHNOLOGY ABSTRACTS)

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Le Basi di Dati. Le Basi di Dati

Estensioni del linguaggio SQL per interrogazioni OLAP

Esempi SQL con Access. Orazio Battaglia

Basi di Dati Corso di Laura in Informatica Umanistica

Транскрипт:

Structured Query Language fields seleziona i campi (colonne) da visualizzare table specifica la tabella da cui leggere i dati WHERE condizione seleziona i record (righe) da visualizzare expression è possibile specificare espressioni, contenenti table operazioni e funzioni di calcolo (campi calcolati) [field name] se il nome di un campo o di una tabella [table name] contiene spazi o altri caratteri speciali o coincide con una KEYWORD del linguaggio : deve essere indicato tra parentesi [ ] table.field occorre specificare la tabella di origine del campo tables quando i dati provengono da più tabelle

WHERE WHERE Code = 2 WHERE QID = Q0004 AND [Date] > #12/1/2005# WHERE QID = Q0004 OR QID = Q0013 WHERE Active = True WHERE QID IN ( Q0003, Q0004, Q0011, Q0044 ) WHERE QID LIKE Q000? WHERE QID LIKE Q0* LIKE: metacaratteri (wildcard) * zero o più caratteri qualsiasi (* in MS Access, % in standard)? un singolo carattere qualsiasi ( _ in standard) # una singola cifra (0-9) [charlist] qualsiasi singolo carattere in charlist [!charlist] qualsiasi singolo carattere NON in charlist PARAMETRIZZAZIONE DI UNA QUERY Per generalizzare una query (ad es. una ricerca) è possibile utilizzare come operando in una espressione, al posto di un valore fisso, un PARAMETRO variabile. Esempi: WHERE QID = pippo WHERE QID =??? WHERE QID = [Inserisci il QID da cercare:] WHERE [Text] LIKE [Stringa di ricerca (con metacaratteri):] Qualsiasi nome non riconosciuto dall interprete come nome di campo (o come keyword del linguaggio stesso) viene interpretato come un parametro: il valore del parametro viene richiesto interattivamente quando la query viene mandata in esecuzione.

JOIN JOIN INTERNO (INNER): Questions.QID, Questions.Text, Answers.Text Questions INNER JOIN Answers ON Questions.QID = Answers.QID JOIN ESTERNO (LEFT/RIGHT): Questions.QID, Questions.Text, Answers.Text Questions LEFT JOIN Answers ON Questions.QID = Answers.QID EQUI-JOIN = PRODOTTO CARTESIANO + SELEZIONE: WHERE Questions.QID, Questions.Text, Answers.Text Questions, Answers Questions.QID = Answers.QID UNION field(s) table1 UNION field(s) table2 La UNION è un altro tipo di operazione di unione tra tabelle rispetto al JOIN: in questo caso le righe della seconda tabella vengono accodate a quelle della prima, colonna per colonna l operazione ha senso quando le colonne corrispondenti delle due tabelle rappresentano gli stessi attributi il risultato è l insieme dei record (righe) delle due tabelle Si usa tipicamente per riunire i record di due o più tabelle che hanno esattamente la stessa struttura (cioè gli stessi attributi): * anagvr UNION * anagvi UNION * anagpd

INNER JOIN: table1.fields, table2.fields table1 INNER JOIN table2 ON table1.field=table2.field table1.fields, table2.fields table1 INNER JOIN table2 ON table1.field1=table2.field1 AND table1.field2=table2.field2 Esempio: Responses.QID, Responses.Code, Answers.Score Answers INNER JOIN Responses ON Answers.QID=Responses.QID AND Answers.Code=Responses.Code JOIN SEMPLICE: tra due tabelle table1.fields, table2.fields table1 INNER JOIN table2 ON table1.field=table2.field JOIN DOPPIO: tra tre tabelle table1.fields, table2.fields, table3.fields (table1 INNER JOIN table2 ON table1.field=table2.field) oppure anche: INNER JOIN table3 ON table2.field=table3.field table1.fields, table2.fields, table3.fields table1 INNER JOIN (table2 INNER JOIN table3 ON table2.field=table3.field) ON table1.field=table2.field

Esempio: Join doppio tra Answers, Responses e Users oppure: Users.Name, Responses.QID, Responses.Code, Answers.Score (Answers INNER JOIN Responses ON Answers.QID=Responses.QID AND Answers.Code=Responses.Code) INNER JOIN Users ON Responses.UID=Users.UID AND Responses.TID=Users.TID Answers INNER JOIN (Responses INNER JOIN Users ON Responses.UID=Users.UID AND Responses.TID=Users.TID) ON Answers.QID=Responses.QID AND Answers.Code=Responses.Code QUERY CON ORDINAMENTO: fields tables ORDER BY fields DESC Questions.QID, Questions.Text, Answers.Text, Answers.Score ORDER BY Questions INNER JOIN Answers ON Questions.QID=Answers.QID Questions.QID Questions.QID, Questions.Text, Answers.Text, Answers.Score ORDER BY Questions INNER JOIN Answers ON Questions.QID=Answers.QID Questions.QID DESC, Answers.Code

QUERY DI AGGREGAZIONE: GROUP BY fields, funzione_di_aggregazione(field) tables fields FUNZIONI DI AGGREGAZIONE: COUNT(), SUM(), AVG(), STDEVP(), MAX(), MIN(), FIRST(), LAST(), Esempi Questions.QID, COUNT(Answers.QID) AS NR GROUP BY Questions INNER JOIN Answers ON Questions.QID=Answers.QID Questions.QID Questions.QID, FIRST(Questions.Text) AS T, COUNT(*) AS N GROUP BY Questions INNER JOIN Answers ON Questions.QID=Answers.QID Questions.QID QUERY DI AGGREGAZIONE: WHERE GROUP BY HAVING ORDER BY fields, funzione_aggregazione(field) tables condizione fields condizione field Esempio: Ricerca libri disponibili in biblioteca WHERE GROUP BY HAVING ORDER BY Libri.ID, FIRST(Libri.Titolo), LAST(Prestiti.DataPrestito), LAST(Prestiti.DataRestituzione) Libri LEFT JOIN Prestiti ON Libri.ID=Prestiti.IDLibro Libri.Titolo LIKE [Titolo libro da cercare] Libri.ID LAST(Prestiti.DataRestituzione) IS NOT NULL FIRST(Libri.Titolo)

Esempio: Correzione dei compiti UID, COUNT(Responses.QID) AS N, SUM(Answers.Score) AS V Responses INNER JOIN Answers ON Responses.QID=Answers.QID AND Responses.Code=Answers.Code WHERE Responses.TID = 2008-01-08 GROUP BY UID Esempio: Correzione dei compiti (aggiungiamo i nomi degli studenti) Users.UID, FIRST(Users.Name) AS Nome, COUNT(Responses.QID) AS N, SUM(Answers.Score) AS V (Responses INNER JOIN Answers ON Responses.QID=Answers.QID AND Responses.Code=Answers.Code) INNER JOIN Users ON Users.UID=Responses.UID AND Users.TID=Responses.TID WHERE Users.TID="2008-01-08" GROUP BY Users.UID ORDER BY FIRST(Users.Name)

QUERY NIDIFICATE fields ( fields table ) table.fields, query.fields table INNER JOIN ( ) AS query ON table.field = query.field fields table WHERE field IN ( ) Esempio: Ricerca libri disponibili in biblioteca WHERE Libri.ID, Libri.Titolo Libri Libri.Titolo LIKE [Titolo libro da cercare] AND Libri.ID NOT IN ( IDLibro Prestiti WHERE DataRestituzione IS NULL)

Esempio: Correzione dei compiti (soluzione alternativa) Users.Name, Results.* Users LEFT JOIN ( UID, TID, COUNT(Responses.QID) AS N, SUM(Answers.Score) AS V Responses INNER JOIN Answers ON Responses.QID=Answers.QID AND Responses.Code=Answers.Code GROUP BY Responses.UID, Responses.TID) AS Results ON Results.UID=Users.UID AND Results.TID=Users.TID ORDER BY Users.Name CROSSTAB QUERY: query di riepilogo a campi incrociati TRANSFORM funzione_aggregazione(field) fields tables GROUP BY fields PIVOT field TRANSFORM Count(Code) UID, Count(Code) Responses GROUP BY UID ORDER BY UID PIVOT TID PIVOT Year([Date]) PIVOT Format([Date],"yymm")

La documentazione migliore si trova on-line (in inglese) Microsoft Jet Office: http://office.microsoft.com/en-us/assistance/ch062526881033.aspx Molti altri siti, es: Devguru: http://www.devguru.com/technologies/jetsql/quickref/jet_sql_list.html Wikipedia (inglese): http://en.wikipedia.org/wiki/sql Wikipedia (italiana): http://it.wikipedia.org/wiki/sql