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

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

Manuale SQL. Manuale SQL - 1 -

Caratteristiche dei linguaggi per Database

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

Structured Query Language

SQL (STRUCTURED QUERY LANGUAGE)

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

Linguaggio SQL seconda parte

SQL - Structured Query Language

PROGETTAZIONE DI DATABASE Linguaggio SQL

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

Interrogazioni nidificate

SQL e algebra relazionale

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

ESERCITAZIONI ACCESS

SQL: DDL, VI, Aggiornamenti e Viste

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

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

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

Basi di Dati: Corso di laboratorio

MODULO 2. Query normali e parametriche Query di:

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 (STRUCTURED QUERY LANGUAGE)

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

Oracle Database 10g: Introduction to SQL - LVC

Istruzioni DML di SQL

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

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

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1


Domande utili alla preparazione dell orale di Informatica all Esame di Stato

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

Funzioni MySQL. Qui di seguito vi pubblico una guida ai principaili comandi per il database Mysql:

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

Interrogazioni nidificate

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

Basi di dati (4) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: select (1.

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

Basi di Dati: Corso di laboratorio

CORSO ACCESS 2000 PARTE VI

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM : SQL ISO 9075:1992 SQL:1999 SQL:2003

Basi di Dati: Corso di laboratorio

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

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

<Nome Tabella>.<attributo>

Interrogazioni in SQL

Tipi di sottoquery SQL

Laboratorio di Basi di Dati

Introduzione Sql con Microsoft Access

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

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

Il Linguaggio SQL Teoria ed esempi

Esempi SQL con Access. Orazio Battaglia

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

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

DATABASE PER IL WEB. Programmazione Web 1

Il linguaggio SQL: le basi

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

Tabelle esempio: Impiegato/Dipartimento

Il linguaggio SQL. ing. Alfredo Cozzi 1

Esempio di database relazionale con l utilizzo del prodotto MySQL

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

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

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Laboratorio di Basi di Dati

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

Sommario. Introduzione... 13

Corso di Basi di Dati

PROGRAMMA DI CLASSE 5AI

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

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

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

Esercitazione: Interrogazioni SQL

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

Alessandra Raffaetà. Esercizio: Cinema

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

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

Corso di Laboratorio di Basi di Dati

Interrogazioni semplici

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

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

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

SQL IL LINGUAGGIO DI INTERROGAZIONE

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

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

Interrogazioni$e$il$valore$NULL$

CORSO ACCESS PARTE IV

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

Il linguaggio SQL. Massimo Paolucci DIST Università di Genova. SQL: Structured Query Language

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Il linguaggio SQL: autorizzazioni

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

Soluzione esercitazione 01

LABORATORIO di INFORMATICA

DUE GRUPPI DI COMANDI

Elena Baralis 2007 Politecnico di Torino 1

Operatori aggregati: COUNT

Transcript:

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 apici singoli. ( ' ) DATE data cancelletto. ( # ) INTEGER intero LONG intero lungo SINGLE decimale MEMO memo ed altri.. Istruzioni di tipo DDL (Data Definition Language) Creazione tabella: CREATE TABLE tabella ( attributo1 tipo1 [NOT NUL],............ attributon tipon [NOT NUL]) Rimozione tabella: DROP TABLE tabella Modifica tabella (aggiunge, toglie campi): ALTER TABLE tabella ADD attributo tipo ALTER TABLE tabella DROP attributo Creazione indice: CREATE [UNIQUE] INDEX indice ON tabella (attributoi1, attributoi2,..., attributoik) Rimozione indice: DROP INDEX indice ON tabella Creazione TABELLA, con Indici ed Associazioni: CREATE TABLE tabella ( attributo1 tipo1 [NOT NUL],............ attributon tipon [NOT NUL], PRIMARY KEY (chiave_primaria) FOREIGN KEY (chiave_esterna) REFERENCES tabella(chiave) ON DELETE set null/no action ON UPDATE cascade/no action ) Istruzioni di tipo DML (Data Manipulation Language) Inserimento dati: INSERT INTO tabella [(attr1, attr2,..., attrn)] VALUES (valore1, valore2,..., valoren) Variazione dati: UPDATE tabella SET attr1=exp1... attrn=expn Cancellazione dati: DELETE SQL_quick_reference.doc piccolo manuale di riferimento di SQL - prof. Claudio Maccherani, 2013 pag.1

Istruzioni di tipo QL (Query Language) Query semplice: SELECT lista attributi (risultato) FROM lista tabelle Query a "campi incrociati": TRANSFORM funzione_aggregazione istruzione_select PIVOT campo IN ( valore_1,, valore_n ) unione (R UNION S) intersezione (R INTERSECT S) differenza (R EXCEPTS S) Altre Istruzioni dove R ed S sono due qualsiasi espressioni SQL (ad esempio comandi SELECT) i cui valori siano però tabelle compatibili (attributi dello stesso tipo e nello stesso ordine). Si può assegnare una espressione SQL ad una variabile: Si possono dichiarare TABELLE VIRTUALI (o VISTE): ASSIGN TO variabile: espressione-sql CREATE VIEW Si può gestire la privatezza e l'integrità dei dati definendo quali operazioni su una tabella sono consentite e/o proibite ai vari utenti: GRANT / REVOKE Istruzione SELECT SELECT [DISTINCT] FROM [WHERE [GROUP BY [HAVING [ORDERED BY elenco campi / espressioni (risultato) [INTO nuova_tabella [IN database_esterno]] elenco tabelle condizione] espressione gruppo] condizione per il gruppo/risultato] campi di ordinamento [DESC]] I nomi dei campi contenenti spazi debbono essere delimitati da parentesi quadre [ ]. Con la clausola AS (nell elenco campi e/o nell elenco tabelle) si possono rinominare le colonne del risultato e/o le tabelle. Nell elenco campi si possono inserire espressioni il cui nome viene dichiarato da AS. SQL_quick_reference.doc piccolo manuale di riferimento di SQL - prof. Claudio Maccherani, 2013 pag.2

L asterisco ( * ) indica "tutti i campi". Se ci sono più tabelle, i campi si indicano con tabella.campo. Con la clausola DISTINCT le righe uguali del risultato vengono ridotte ad una (cancella i duplicati). Nelle condizioni - WHERE e HAVING - si usano gli operatori di relazione ( =, >, >=, <, <=, <> ), logoci (AND, OR, NOT) e le parentesi tonde. Si può testare se un campo del risultato è nullo con la clausola IS NULL (e, analogamente, se non è nullo con NOT IS NULL). Nelle condizioni si possono utilizzare gli operatori: BETWEEN per impostare un intervallo; IN per impostare un insieme di ricerca; LIKE per ricercare sottostringhe con i caratteri jolly % (tutto) e _ (singolo carattere). Il risultato può essere ordinato su uno o più campi in ordine crescente - per default - o in ordine decrescente, specificando la clausola DESC. Con la clausola INTO si crea una nuova tabella nella quale memorizzare permanentemente il risultato dell interrogazione e tale tabella può anche essere creata in un database esterno specificato dalla clausola ON. Funzioni di aggregazione COUNT(*) COUNT(campo) SUM(campo) AVG(campo) MAX(campo) MIN(campo) numero totale di record; numero di record con campo non nullo; somma dei valori di campo numerico; media aritmetica di campo numerico; valore massimo di campo numerico; valore minimo di campo numerico. Operazioni relazionali Con SELECT si possono fare le operazioni relazionali di proiezione, selezione e congiunzione. Intera Tabella: l intera tabella, tutti i record e tutti i campi Proiezione: alcuni campi di tutti i record Selezione: alcuni record filtrati in base ad una condizione di selezione Proiezione e Selezione: alcuni campi di alcuni record filtrati in base a condizione SELECT * SELECT campo_1,, campo_n SELECT * SELECT campo_1,, campo_n SQL_quick_reference.doc piccolo manuale di riferimento di SQL - prof. Claudio Maccherani, 2013 pag.3

Congiunzione (Join) Congiunzione: concatenazione dei record di due tabelle in associazione 1:N (legate da una chiave esterna) che hanno record correlati in entrambe le tabelle 1, tabella2 WHERE legame [AND condizione] La congiunzione di cui sopra - equi join - realizzata con la sintassi precedente produce un risultato "non aggiornabile". La equi join "aggiornabile" si realizza con la inner join, di cui esistono varianti come la left join, la right join e la self join.\ Inner Join: concatenazione dei record di due tabelle in associazione 1:N (legate da una chiave esterna) che hanno record correlati in entrambe le tabelle 1 INNER JOIN tabella2 Left Join: concatenazione di tutti i record della prima tabella con quelli della seconda tabella in associazione 1:N, anche di quelli che non hanno record correlati nella seconda tabella Right Join: concatenazione di tutti i record della seconda tabella con quelli della prima tabella in associazione 1:N, anche di quelli che non hanno record correlati nella prima tabella 1 LEFT JOIN tabella2 1 RIGHT JOIN tabella2 Self Join: concatenazione dei record della tabella con tutti i record della tabella stessa ai quali sono legati da una relazione 1:N (occorre rinominare la tabella) SELECT alias1.campi, alias2.campi AS alias1, tabella AS alias2 WHERE legame SQL_quick_reference.doc piccolo manuale di riferimento di SQL - prof. Claudio Maccherani, 2013 pag.4

Raggruppamento La clausola GROUP BY serve per effettuare il raggruppamento delle righe che hanno uno stesso valore nelle colonne indicate per il raggruppamento stesso. Ogni diverso gruppo produce una sola riga di risultato. I campi di raggruppamento che compaiono nella SELECT (unitamente alle funzioni di aggregazione) debbono comparire nella clausola GROUP BY. Nella SELECT non possono comparire campi non di raggruppamento. Con la condizione della clausola WHERE si selezionano i record "prima" del loro raggruppamento, mentre con la clausola HAVING si selezionano i risultati del raggruppamento, "a posteriori", si controllano cioè i risultati (generalmente i valori restituiti dalle funzioni Count, Sum, Min, Avg, Max). SELECT campi_raggruppamento, funzioni_aggregazione GROUP BY campi_raggruppamento [_a_priori] [HAVING condizione_a_posteriori] SubQuery Con il comando il comando Select si possono fare interrogazioni nidificate (inserire un istruzione Select all interno di un altra istruzione Select). La condizione della clausola Where può interrogare il risultato di un altro comando Select - SubQuery - che a sua volta può restituire come risultato solo una singola colonna o espressione (anche vuota). SELECT elenco_campi WHERE campo { = / > / >= / < / <= / <> / NOT } { IN / ANY / ALL / EXISTS } ( SELECT funzione_aggregazione FROM WHERE ) Con la clausola ANY la condizione è verificata se la subquery restituisce almeno un valore che la soddisfa (viene da pensare all operatore OR). Con la clausola ALL la condizione è verificata se la subquery restituisce valori ciascuno dei quali la soddisfa (viene da pensare all operatore AND). Con la clausola IN la condizione è verificata se la subquery restituisce almeno un valore che la soddisfa (l operatore IN equivale all operatore =ANY e l operatore NOT IN equivale a <>ALL). Utilizzando le clausole IN e Not IN si possono fare operazioni relazionali di intersezione e differenza. Con la clausola EXISTS la condizione è verificata se la subquery restituisce un risultato non vuoto SQL_quick_reference.doc piccolo manuale di riferimento di SQL - prof. Claudio Maccherani, 2013 pag.5