SQL IL LINGUAGGIO DI INTERROGAZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SQL IL LINGUAGGIO DI INTERROGAZIONE"

Transcript

1 SQL IL LINGUAGGIO DI INTERROGAZIONE SQL! Originato da SEQUEL-XRM e System-R ( ) dell IBM! Significato originario Structured Query Language! Standard de facto! Attuale standard ANSI/ISO è SQL:1999 Giorgio Giacinto 2010 Database 2

2 Componenti SQL! DML (Data Manipulation Language)! DDL (Data Definition Language)! Trigger e vincoli di integrità avanzati! SQL dinamico e embedded! Esecuzione client-server e accesso a basi di dati remote! Gestore di transazioni! Sicurezza! Funzioni avanzate Giorgio Giacinto 2010 Database 3 Schema base di dati di esempio Velisti(vid:integer,vnome:string, esperienza:integer,età:real) Barche(bid:integer,bnome:string, colore:string) Prenota(vid:integer,bid:integer, giorno:data) Giorgio Giacinto 2010 Database 4

3 P1 Istanze di esempio! Useremo nei nostri esempi queste istanze delle relazioni Velisti e Prenota! Se la chiave per la relazione Prenota contenesse solo gli attributi vid e bid, in che modo la semantica sarebbe diversa? V1 V2 vid bid giorno /10/ /12/96 vid vnome esperienza età 22 dustin lubber rusty vid vnome esperienza età 28 yuppy lubber guppy rusty Giorgio Giacinto 2010 Database 5 Interrogazioni SQL di base SELECT DISTINCT FROM WHERE lista-attributi lista-relazioni qualificazioni! Lista-relazioni. Una lista di nomi di relazioni (eventualmente con una variabile di range dopo ciascun nome)! Lista-attributi. Una lista di attributi delle relazioni in listarelazioni! Qualificazioni. Confronti (attr op cost oppure attr1 op attr2, dove op è uno tra <, >, =, <=, >= <>) combinati usando AND, OR e NOT! DISTINCT è una parola chiave opzionale che indica che la risposta non dovrebbe contenere duplicati. Per impostazione predefinita i duplicati non sono eliminati!! Il risultato è un multinsieme Giorgio Giacinto 2010 Database 6

4 Strategia di valutazione concettuale! La semantica di una interrogazione SQL è definita in termini della seguente strategia di valutazione concettuale! calcolare il prodotto scalare di lista-relazioni! scartare le tuple risultanti se non passano le qualificazioni! cancellare gli attributi che non sono in lista-attributi! se è specificato DISTINCT, eliminare le righe duplicate! Questa strategia è probabilmente il modo meno efficiente di calcolare una interrogazione! Un ottimizzatore troverà strategie più efficienti per calcolare le stesse risposte. Giorgio Giacinto 2010 Database 7 Esempio di valutazione concettuale SELECT V.vnome, Prenota P WHERE V.vid = P.vid AND P.bid = 103 (vid) vnome esperienza età (vid) bid giorno 22 dustin /10/96 22 dustin /12/96 31 lubber /10/96 31 lubber /12/96 58 rusty /10/96 58 rusty /12/96 Giorgio Giacinto 2010 Database 8

5 Nota sulle variabili di range! Se ne ha veramente bisogno solo se la stessa relazione appare due volte nella clausola FROM. L interrogazione precedente può anche essere scritta come SELECT V.vnome, Prenota P WHERE V.vid = P.vid AND bid = 103 oppure SELECT vnome FROM Velisti, Prenota WHERE Velisti.vid = Prenota.vid AND bid = 103 È buono stile, comunque, usare sempre le variabili di range! Giorgio Giacinto 2010 Database 9 Trovare i nomi dei velisti che hanno prenotato almeno una barca SELECT FROM WHERE V.vnome Velisti V, Prenota P V.vid = P.vid! Farebbe differenza aggiungere DISTINCT a questa interrogazione? Giorgio Giacinto 2010 Database 10

6 Espressioni e stringhe SELECT FROM WHERE V.età, età1 = V.età -5, 2 * V.età AS eta2 Velisti V V.vnome LIKE 'B_%B'! Illustra l uso delle espressioni aritmetiche e del pattern matching di stringhe: trovare le triple (le età dei velisti e due campi definiti da espressioni) per quei velisti il cui nome inizia e termina con B e contiene almeno tre caratteri! AS e = sono due modi di dare un nome ai campi del risultato! LIKE è usato per il matching di stringhe! _ indica qualunque carattere singolo! % sta per 0 o più caratteri arbitrari Giorgio Giacinto 2010 Database 11 OPERATORI INSIEMISTICI

7 Trovare i vid dei velisti che hanno prenotato una barca rossa o una barca verde! UNION può essere usato per calcolare l unione di qualunque coppia di insiemi di tuple (essi stessi risultati di interrogazioni SQL) compatibili rispetto all unione! Se nella prima versione sostituiamo OR con AND, cosa otteniamo?! Disponibile anche EXCEPT (cosa otteniamo se sostituiamo UNION con EXCEPT?) SELECT P.vid FROM Barche B, Prenota P WHERE P.bid=B.bid AND (B.colore= rosso OR B.colore= verde ) SELECT P.vid FROM Barche B, Prenota P WHERE P.bid = B.bid AND B.colore = rossa UNION SELECT P2.vid FROM Barche B2, Prenota P2 WHERE P2.bid = B2.bid AND B2.colore = verde Giorgio Giacinto 2010 Database 13 Trovare i vid dei velisti che hanno prenotato una barca rossa e una barca verde! INTERSECT può essere usato per calcolare l intersezione di qualunque coppia di insiemi di tuple compatibili rispetto all unione! Incluso nello standard SQL/92, ma alcuni sistemi non lo supportano! Confrontate la simmetria delle interrogazioni con UNION e INTERSECT con la diversità delle altre versioni SELECT P1.vid FROM Barche B1, Prenota P1, Barche B2, Prenota P2 WHERE P1.vid = P2.vid AND P1.bid = B1.bid AND P2.bid = B2.bid AND (B1.colore = rosso AND B2.colore = verde ) SELECT P.vid FROM Barche B, Prenota P WHERE P.bid = B.bid AND B.colore = rosso INTERSECT SELECT P.vid FROM Barche B, Prenota P WHERE P.bid = B.bid AND B.colore = verde Giorgio Giacinto 2010 Database 14

8 INTERROGAZIONI ANNIDATE Interrogazioni annidate Trovare i nomi dei velisti che hanno prenotato la barca #103 SELECT V.vnome WHERE V.vid IN (SELECTP.vid FROM Prenota P WHERE P.bid = 103)! Una funzione molto potente di SQL: una clausola WHERE può essa stessa contenere una interrogazione SQL!! In realtà, lo stesso vale per le clausole FROM e HAVING! Per trovare i velisti che non hanno prenotato la barca #103, usare NOT IN! Per comprendere la semantica delle interrogazioni annidate, pensate alla valutazione dei cicli annidati: per ciascuna tupla di Velisti, controllare la qualificazione calcolando la sottointerrogazione. Giorgio Giacinto 2010 Database 16

9 Interrogazioni annidate Trovare i nomi dei velisti che hanno prenotato solo barche rosse SELECT V.vnome WHERE V.vid NOT IN (SELECT P.vid FROM Prenota P WHERE P.bid NOT IN (SELECT B.bid FROM Barche B WHERE B.colore = rosso ))) Dobbiamo esprimere il concetto unicamente con una doppia negazione Come il quantificatore universale tutti Giorgio Giacinto 2010 Database 17 Interrogazioni annidate con correlazione Trovare i nomi dei velisti che hanno prenotato la barca #103 SELECT V.vnome WHERE EXISTS (SELECT * FROM Prenota P WHERE P.bid = 103 AND V.vid = P.vid)! EXISTS è un altro operatore di confronto tra insiemi, come IN! Restituisce VERO se il risultato della sottointerrogazione non è vuoto! NOT EXISTS restituisce VERO se il risultato della sottointerrogazione è vuoto Giorgio Giacinto 2010 Database 18

10 Interrogazioni annidate con correlazione Trovare i nomi dei velisti che hanno prenotato la barca #103 solo una volta SELECT V.vnome WHERE UNIQUE (SELECT P.bid FROM Prenota P WHERE P.bid = 103 AND V.vid = P.vid) UNIQUE è un altro operatore di confronto tra insiemi restituisce VERO se nessuna riga del risultato della sottointerrogazione appare due volte quindi restituisce VERO se il risultato è vuoto! Perché nella SELECT della sottointerrogazione occorre P.bid? Giorgio Giacinto 2010 Database 19 Ancora sugli operatori di confronto tra insiemi! Abbiamo già visto IN, EXISTS e UNIQUE. Possiamo anche usare NOT IN, NOT EXISTS e NOT UNIQUE! Disponibili anche: op ANY, op ALL, >, <, =, >=, <=, <>! IN equivale a = ANY e NOT IN equivale a <>ALL Trovare i velisti la cui esperienza è maggiore di quella di qualche velista chiamato Horatio SELECT * WHERE V.esperienza > ANY (SELECT V2.esperienza 2 WHERE V2.vnome = Horatio ) Se non ci sono velisti chiamati Horatio il confronto restituisce FALSE Giorgio Giacinto 2010 Database 20

11 Riscrittura delle interrogazioni INTERSECT usando IN Trovare i vid dei velisti che hanno prenotato sia una barca rossa che una barca verde SELECT V.vid, Barche B, Prenota P WHERE V.vid = P.vid AND P.bid = B.bid AND B.colore = rosso AND V.vid IN (SELECT V2.vid 2, Barche B2, Prenota P2 WHERE V2.vid = P2.vid AND P2.bid = B2.bid AND B2.colore = verde )! Analogamente, le interrogazioni EXCEPT si riscrivono usando NOT IN! Per trovare i nomi (non i vid) dei velisti che hanno prenotato sia barche rosse che barche verdi, basta sostituire V.vid con V.vnome nella clausola SELECT (che si può dire dell interrogazione con INTERSECT?) Giorgio Giacinto 2010 Database 21 Divisioni in SQL Trovare i velisti che hanno prenotato tutte le barche Prima soluzione, con EXCEPT SELECT V.vnome FROM Velisti WHERE NOT EXISTS ((SELECT B.bid FROM Barche B) EXCEPT (SELECT P.bid FROM Prenota P WHERE P.vid = V.vid)) Velisti V tali che Seconda soluzione, più complicata, senza EXCEPT SELECT V.vnome WHERE NOT EXISTS (SELECT B.bid FROM Barche B WHERE NOT EXITS (SELECT P.bid FROM Prenota P WHERE P.bid = B.bid AND P.vid = V.vid)) non ci sia una barca B senza una tupla di Prenota la quale mostra che V ha prenotato B Giorgio Giacinto 2010 Database 22

12 OPERATORI DI AGGREGAZIONE Operatori di aggregazione Importante estensione dell algebra relazionale COUNT (*) COUNT ([DISTINCT] A) SUM ([DISTINCT] A) AVG ([DISTINCT] A) MAX (A) MIN (A) Giorgio Giacinto 2010 Database 24

13 Esempi con operatori di aggregazione SELECT COUNT(*) SELECT COUNT(DISTINCT V.esperienza) WHERE V.vnome = Bob SELECT AVG(V.età) WHERE V.esperienza=10 SELECT AVG(DISTINCT V.età) WHERE V.esperienza = 10 Giorgio Giacinto 2010 Database 25 Trovare nome ed età del/i velista/i più anziano/i! La prima interrogazione è illegale! (Ne vedremo le ragioni un po più tardi, quando discuteremo GROUP BY)! La terza interrogazione è equivalente alla seconda, ed è permessa nello standard SQL/92, ma non è supportata in alcuni sistemi SELECT V.vnome, MAX(V.età) SELECT V.vnome, V.età WHERE V.età = (SELECT MAX(V2.età) 2) SELECT V.vnome, V.età WHERE (SELECT MAX(V2.età) 2) = V.età Giorgio Giacinto 2010 Database 26

14 GROUP BY e HAVING! Finora abbiamo applicato operatori di aggregazione a tutte le tuple (qualificanti). A volte vogliamo applicarli a ciascuno tra diversi gruppi di tuple! Consideriamo: Trovare l età del velista più giovane per ciascun grado di esperienza! In generale, non sappiamo quanti gradi di esperienza esistano, e quali siano i loro valori!! Supponiamo di sapere che i valori di esperienza variano da 1 a 10: possiamo scrivere 10 interrogazioni che somigliano a queste (!) for i = 1, 2,..., 10 SELECT MIN(V.età) WHERE V.esperienza = i Giorgio Giacinto 2010 Database 27 Interrogazioni con GROUP BY e HAVING SELECT FROM WHERE GROUP BY HAVING [DISTINCT] lista-target lista-relazioni qualificazioni lista-gruppi qualificazione-gruppi! La lista-target contiene (i) nomi di attributi (ii) termini con operazioni di aggregazione (ad esempio, MIN(V.età))! La lista di attributi (i) deve essere un sottoinsieme della lista-gruppi. Intuitivamente, ciascuna tupla nella risposta corrisponde a un gruppo, e questi attributi devono avere un singolo valore per gruppo (un gruppo è un insieme di tuple con lo stesso valore per tutti gli attributi in lista-attributi) Giorgio Giacinto 2010 Database 28

15 Valutazione concettuale! Viene calcolato il prodotto cartesiano della lista-relazioni, vengono scartate le tuple che non passano la qualificazione, i campi non necessari vengono cancellati, e le tuple rimanenti sono partizionate in gruppi dai valori degli attributi in lista-gruppi.! La qualificazione-gruppi viene poi applicata per eliminare alcuni gruppi. Le espressioni in qualificazione-gruppi devono avere un singolo valore per gruppo!! In effetti, un attributo in qualificazione-gruppi che non è un argomento di un operatore di aggregazione appare anche in lista-gruppi (SQL qui non sfrutta la semantica delle chiavi primarie!)! Viene generata una tupla di risposta per ogni gruppo qualificante Giorgio Giacinto 2010 Database 29 Trovare l età del velista più giovane con età!18, per ciascun livello di esperienza con almeno 2 velisti. SELECT V.esperienza, MIN(V.età) WHERE V.età >= 18 GROUP BY V.esperienza HAVING COUNT(*) > 1! Solo V.esperienza e V.età sono menzionati nelle clausole SELECT, GROUP BY e HAVING; altri attributi sono non necessari! La seconda colonna del risultato non ha un nome (usare AS per darle un nome) esperienza età esperienza età Relazione risultato Giorgio Giacinto 2010 Database 30 vid vnome esperienza età 22 dustin lubber zorba horatio brutus rusty

16 Estensioni SQL:1999! Nella clausola HAVING possono essere usate due nuove funzioni su insiemi EVERY! Ogni riga di un gruppo deve soddisfare la condizione di qualificazione del gruppo ANY! Almeno una riga di un gruppo deve soddisfare la condizione di qualificazione Giorgio Giacinto 2010 Database 31 Esempio con EVERY SELECT V.esperienza, MIN(V.età) WHERE V.età >= 18 GROUP BY V.esperienza HAVING COUNT(*) > 1 AND EVERY(V.età<=60) equivale a SELECT V.esperienza, MIN(V.età) WHERE V.età >= 18 AND NOT EXISTS (SELECT * 1 WHERE V1.età > 60 AND V1.esperienza = V.esperienza) GROUP BY V.esperienza HAVING COUNT(*) > 1 Giorgio Giacinto 2010 Database 32

17 Per ciascuna barca rossa, trovare il numero di prenotazioni per tale barca SELECT FROM WHERE GROUP BY B.bid, COUNT(*) AS vconta Barche B, Prenota P P.bid = B.bid AND B.colore = rosso B.bid! Raggruppamento su un join di due relazioni! Cosa otteniamo se rimuoviamo B.colore = rosso dalla clausola WHERE e aggiungiamo una clausola HAVING con tale condizione? Giorgio Giacinto 2010 Database 33 Trovare l età del velista più giovane con età >18 per ciascun livello di esperienza con almeno 2 velisti (di qualunque età) SELECT V.esperienza, MIN(V.età) WHERE V.età > 18 GROUP BY V.esperienza HAVING 1 < (SELECT COUNT(*) 2 WHERE V.esperienza = V2.esperienza)! Confrontare questa interrogazione con quella in cui consideravamo solo i livelli di esperienza con due velisti con più di 18 anni!! Che succede se la clausola HAVING viene sostituita con! HAVING COUNT(*) > 1 Giorgio Giacinto 2010 Database 34

18 Trovare quei livelli di esperienza per cui l età media è minima rispetto a tutti i livelli! Gli operatori di aggregazione non possono essere annidati! Soluzione errata: SELECT V.esperienza Velisti V FROM WHERE V.età = (SELECT MIN(AVG(V2.età)) 2) Soluzione corretta (in SQL/92): SELECT Temp.esperienza. Temp.etamedia FROM (SELECTV.esperienza, AVG(V.età)AS etamedia GROUP BY V.esperienza) AS Temp WHERE Temp.etamedia = (SELECT MIN(Temp.etamedia) FROM Temp) Giorgio Giacinto 2010 Database 35 Valori NULL! I valori dei campi di una tupla sono a volte sconosciuti! ad esempio, non è ancora stato stabilito un livello di esperienza oppure inapplicabili! ad esempio, nessuna moglie! SQL fornisce uno speciale valore NULL Giorgio Giacinto 2010 Database 36

19 Valori NULL! La presenza di NULL complica parecchie cose. Ad esempio:! operatori speciali per controllare se un valore è/non è NULL (IS NULL e IS NOT NULL)! esperienza > 8 è vera o falsa quando esperienza è NULL?! Abbiamo bisogno di una logica a 3 valori (vero, falso e NULL) True True True False False NULL True False NULL False NULL NULL AND True False NULL False False NULL OR True True True False NULL NULL Giorgio Giacinto 2010 Database 37 Valori NULL Impatto sui costrutti SQL! Il significato dei costrutti deve essere attentamente definito! ad esempio la clausola WHERE elimina le righe che non vengono valutate come vero! Impatto significativo nelle interrogazioni annidate che usano EXISTS e UNIQUE! Nel conteggio dei duplicati, due valori NULL sono considerati uguali! SUM, MAX, MIN, AVG scartano i valori NULL Giorgio Giacinto 2010 Database 38

20 Join esterni Velisti!" c Prenota! La relazione risultato del join può non contenere tutte le tuple di Velisti e di Prenota! (outer) right join contiene tutte le tuple di Prenota! valori NULL per gli attributi di Velisti per le tuple di Prenota non combinabili con tuple di Velisti! (outer) left join contiene tutte le tuple di Velisti! (outer) full join contiene tutte le tuple di Velisti e di Prenota Giorgio Giacinto 2010 Database 39 Impedire l uso di valori NULL! Nella definizione degli attributi di una colonna per i quali valori NULL non sono ammessi, vincolo NOT NULL VNOME CHAR(20) NOT NULL! Vincolo di NOT NULL implicito nel vincolo di PRIMARY KEY Giorgio Giacinto 2010 Database 40

21 Sommario! Un fattore importante nel rapido sviluppo del modello relazionale; più naturale che in precedenza, linguaggi di interrogazione procedurali! Relazionalmente completo; di fatto, potere espressivo significativamente superiore all algebra relazionale! Persino le interrogazioni che possono essere espresse in AR possono spesso essere espresse in maniera più naturale con SQL! Molti modi alternativi di scrivere una interrogazione; l ottimizzatore dovrebbe cercare il piano di valutazione più efficiente! Nella pratica, gli utenti devono essere consci di come le interrogazioni sono ottimizzate e valutate per ottenere risultati migliori Giorgio Giacinto 2010 Database 41

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

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

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

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre

Dettagli

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

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

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

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

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

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL Informatica Basi di dati parte 4 SQL Lezione 13 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2012 2013 1 Interrogazioni in

Dettagli

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

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Interrogazione della base di dati

Interrogazione della base di dati Interrogazione della base di dati SQL è un linguaggio di definizione e di manipolazione dei dati. In quanto linguaggio di manipolazione, SQL permette di selezionare dati di interesse dalla base e di aggiornarne

Dettagli

Basi di dati. Argomenti. Testo di riferimento. Laboratorio d'informatica

Basi di dati. Argomenti. Testo di riferimento. Laboratorio d'informatica Laboratorio d'informatica Laure Magistrale in Ingegneria per l'ambiente e il Territorio Università degli Studi di Cagliari A.A. 2014/2015 Docente: Giorgio Fumera Basi di dati Argomenti Basi di dati: introduzione

Dettagli

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

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

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

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Basi di Dati - V. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL (cont.) Corso di Laurea in Informatica Anno Accademico 2013/2014

Basi di Dati - V. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL (cont.) Corso di Laurea in Informatica Anno Accademico 2013/2014 Basi di Dati - V Corso di Laurea in Informatica Anno Accademico 2013/2014 Il linguaggio SQL Paolo Baldan baldan@math.unipd.it http://www.math.unipd.it/~baldan Il linguaggio SQL 3 Il linguaggio SQL (cont.)

Dettagli

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012

INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012 1 INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012 SQL Dopo aver eseguito l installazione del DBMS e di uno o più database: Accesso al DBMS Interpretazione di uno script Descrizione dello schema

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

SQL - Funzioni di gruppo

SQL - Funzioni di gruppo una funzione di gruppo permette di estrarre informazioni da gruppi di tuple di una relazione le funzioni di gruppo si basano su due concetti: partizionamento delle tuple di una relazione in base al valore

Dettagli

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL SQL come linguaggio di interrogazione Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse,

Dettagli

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

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Structured Query Language Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

Dettagli

Basi di Dati e Sistemi Informativi. SQL come linguaggio di manipolazione dei dati

Basi di Dati e Sistemi Informativi. SQL come linguaggio di manipolazione dei dati Basi di Dati e Sistemi Informativi Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come standard Varie versioni con successivi miglioramenti: SQL-1 o SQL-89 (rispetto ad SQL-86 introduce

Dettagli

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

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria.

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria. Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

Dettagli

Interrogazioni complesse. SQL avanzato 1

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

Dettagli

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

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Linguaggio SQL Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 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

Dettagli

4 SQL : Interrogazioni nidificate

4 SQL : Interrogazioni nidificate Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2010/2011 Andrea Marrella Ultimo aggiornamento

Dettagli

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

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26 Uso delle variabili di alias SQL slide aggiuntive Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione educazione Non solo per disambiguare la notazione

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

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

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,

Dettagli

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

Dettagli

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

Dettagli

SQL/OLAP. Estensioni OLAP in SQL

SQL/OLAP. Estensioni OLAP in SQL SQL/OLAP Estensioni OLAP in SQL 1 Definizione e calcolo delle misure Definire una misura significa specificare gli operatori di aggregazione rispetto a tutte le dimensioni del fatto Ipotesi: per ogni misura,

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

Basi di dati. SQL: concetti base

Basi di dati. SQL: concetti base Basi di dati SQL: concetti base SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo

Dettagli

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

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1 Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge

Dettagli

16. IL LINGUAGGIO SQL

16. IL LINGUAGGIO SQL 16. IL LINGUAGGIO SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale (in quanto non richiede la descrizione dei passi elementari di elaborazione) o di tipo dichiarativo (in

Dettagli

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia Algebra e calcolo relazionale Ripasso Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia I 4 Livelli di astrazione Le Tabelle Livello fisico (o interno)

Dettagli

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

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 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 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 4 Giugno 2007 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

CAPITOLO 5: DATABASE INTRODUZIONE

CAPITOLO 5: DATABASE INTRODUZIONE CAPITOLO 5: DATABASE INTRODUZIONE Una base di dati (o database) è semplicemente una collezione di dati organizzati in qualche modo e con qualche criterio. Il modello più diffuso è quello relazionale, ovvero

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 2012 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Lezione 3 Structured Query Language

Dettagli

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista

Dettagli

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

S.Q.L. Introduzione a Structured Query Language. I.T.C. V.Emanuele II - Perugia. Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. Introduzione a Structured Query Language I.T.C. "V.Emanuele II" - Perugia Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. - STRUCTURED QUERY LANGUAGE (SEQUEL)...1 ISTRUZIONI DI TIPO DDL (DATA DEFINITION

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

Interrogazioni nidificate, commenti

Interrogazioni nidificate, commenti Interrogazioni nidificate, commenti La forma nidificata è meno dichiarativa, ma talvolta più leggibile (richiede meno variabili) La forma piana e quella nidificata possono essere combinate Le sottointerrogazioni

Dettagli

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

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 DB2 Data Management Software Il linguaggio SQL Raggruppamenti Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute in questa

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO DI ANNIDAMENTO LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di

Dettagli

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle

Dettagli

Introduzione all Algebra Relazionale

Introduzione all Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

Il linguaggio SQL e Access

Il linguaggio SQL e Access Il linguaggio SQL e Access 1 Linguaggio SQL Caratteristiche generali L SQL (structured query language) è un linguaggio utilizzato per definire, gestire, controllare e reperire dati di un DBMS; prevede

Dettagli

Elaborazione Automatica dei Dati. SQL come Query Language. Enrico Cavalli. Anno Accademico 2012-2013. Il linguaggio SQL

Elaborazione Automatica dei Dati. SQL come Query Language. Enrico Cavalli. Anno Accademico 2012-2013. Il linguaggio SQL Elaborazione Automatica dei Dati SQL come Query Language Enrico Cavalli Anno Accademico 2012-2013 Il linguaggio SQL SQL = Structured Query Language Diverse versioni del linguaggio gli standard ANSI: SQL,

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Linguaggi per basi di dati

Linguaggi per basi di dati ALGEBRA RELAZIONALE Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento 2 Linguaggi

Dettagli

Domini elementari in SQL

Domini elementari in SQL SQL SQL è un acronimo per Structured Query Language. Fu sviluppato originalmente come linguaggio per il DBMS System R dall IBM Research Laboratory (San Jose, California) nei tardi anni settanta. Al giorno

Dettagli

SQL: definizione schema

SQL: definizione schema Si Clienti(codice,nome,indirizzo,p_iva) scriva il SQL che definisce il seguente schema relazionale Prodotti(codice,nome,descrizione,prezzo) SQL: definizione schema Fatture(codice,cliente,data) RigheFattura(codice,fattura,prodotto,quantità,prezzo)

Dettagli

Ricorsione in SQL-99. Introduzione. Idea di base

Ricorsione in SQL-99. Introduzione. Idea di base Ricorsione in SQL-99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione

Dettagli

Basi Di Dati, 09/12/2003

Basi Di Dati, 09/12/2003 Basi Di Dati, 09/12/2003 Una concessionaria di auto nuove ed usate vuole automatizzare alcune delle sue attività. L attività che la concessionaria vuole automatizzare riguarda la gestione delle auto nuove,

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

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. Caratteristiche generali. Il comando Select. Le basi di dati ed il linguaggio SQL A.Lorenzi D.Rossi - ATLAS. Pag. Caratteristiche generali IL LINGUAGGIO SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione di database relazionali.

Dettagli

Il linguaggio SQL: DDL di base

Il linguaggio SQL: DDL di base Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

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

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL: SQL Linguaggio di interrogazione per basi di dati relazionali Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL: Creazione delle tabelle Interrogazione della base di dati

Dettagli

Capitolo 4: SQL (Slides( da Atzeni,, Ceri, Paraboschi, Torlonee,, Basi di dati McGraw-Hill. Hill,, 2002)

Capitolo 4: SQL (Slides( da Atzeni,, Ceri, Paraboschi, Torlonee,, Basi di dati McGraw-Hill. Hill,, 2002) SQL, Definizione e interrogazione di basi di dati Capitolo 4: SQL (Slides( da Atzeni,, Ceri, Paraboschi, Torlonee,, Basi di dati McGraw-Hill Hill,, 2002) SQL Structured Query Language è un linguaggio con

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

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

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

Create la tabella Dipendenti:

Create la tabella Dipendenti: Create la tabella Dipendenti: create table Dipendenti( id int(3) not null auto_increment, livello int(1) not null, stipendio int(4) not null, primary key(id)); mysql> describe Dipendenti; --------+------+-----+---------+----------------+

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak ESEMPIO DELLE VENDITE: MISURE ED AGGREGABILITA E l esempio discusso nelle dispense è Dispense : http://www.dbgroup.unimo.it/sia/sia_2014_progettazionediundw_misure.pdf esteso e dettagliato. Il BACKUP è

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

ESEMPIO: RITARDI & BIGLIETTI ESEMPIO: RITARDI & BIGLIETTI Fatto Ritardi: l analisi a livello volo giornaliero, considerando l aeroporto di partenza, la città e lo stato di arrivo e la compagnia Fatto Biglietti: l analisi deve considerare

Dettagli

Sistemi per la gestione di database: MySQL ( )

Sistemi per la gestione di database: MySQL ( ) Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento

Dettagli

APPLICAZIONI DELLE BASI DI DATI

APPLICAZIONI DELLE BASI DI DATI APPLICAZIONI DELLE BASI DI DATI APPLICAZIONI TRADIZIONALI APPLICAZIONI INTERNET SQL EMBEDDED SQL nel codice applicativo! I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli