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

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL"

Transcript

1 Interrogazioni con ANY e ALL Operatori ANY e ALL Sintassi: WHERE Attributo OperatoreConfronto [ANY ALL] (SelectAttributoSingolo) ANY: la riga soddisfa la condizione se risulta vero il confronto con almeno uno dei risultati della sottointerrogazione ALL: la riga soddisfa la condizione solo se tutti gli elementi restituiti dall interrogazione annidata rendono vero il confronto 1 2 Interrogazioni con ANY e ALL Interrogazioni con ANY e ALL SELECT COD-ORD FROM ORDINE WHERE IMPORTO > ANY SELECT IMPORTO FROM ORDINE SELECT COD-ORD FROM ORDINE WHERE IMPORTO >= ALL SELECT IMPORTO FROM ORDINE Trovare gli impiegati che lavorano in dipartimenti situati a Firenze: IMPIEGATO (NOME, COGNOME, DIPART, UFFICIO, STIPENDIO) DIPARTIMENTO (NOME, INDIRIZZO, CITTA) SELECT * FROM IMPIEGATO WHERE DIPART = ANY (SELECT NOME FROM DIPARTIMENTO WHERE CITTA = 'FIRENZE') 3 4 Query con ANY e ALL Trovare gli impiegati che hanno lo stesso nome di un impiegato del dipartimento di Produzione: SELECT NOME FROM IMPIEGATO WHERE NOME = ANY (SELECT NOME FROM IMPIEGATO WHERE DIPARTIMENTO = 'PRODUZIONE') Analoga a: SELECT I1.NOME FROM IMPIEGATO AS I1, IMPIEGATO AS I2 WHERE I1.NOME = I2.NOME AND I2.DIPARTIMENTO = 'PRODUZIONE') Interrogazioni con ANY e ALL Trovare i dipartimenti in cui non lavorano impiegati di cognome 'Rossi': SELECT NOME FROM DIPARTIMENTO WHERE NOME <> ALL (SELECT DIPARTIMENTO FROM IMPIEGATO WHERE COGNOME = 'ROSSI') Analoga a: SELECT NOME FROM DIPARTIMENTO EXCEPT SELECT DIPARTIMENTO FROM IMPIEGATO WHERE COGNOME = 'ROSSI' 5 6

2 Interrogazioni nidificate IN equivale a = ANY NOT IN equivale a <> ALL Vincoli di integrità 7 8 Integrità Vincolo di integrità: condizione che deve essere soddisfatta affinché lo stato del database sia corretto Se l utente tenta di eseguire un operazione che violerebbe il vincolo, il sistema può: impedire l operazione eseguire un azione compensativa tale da raggiungere un nuovo stato corretto 9 Vincoli di integrità In SQL è possibile specificare i vincoli di integrità in modo dichiarativo, affidando al sistema la verifica della loro consistenza vincoli di tabella: permettono di specificare restrizioni sui dati permessi in ciascuna colonna di una tabella vincoli d integrità referenziale: violati da tuple nella tabella referenziante per la cui chiave esterna non esiste un corrispondente valore nelle colonne della tabella referenziata asserzioni di tipo generale 10 Vincoli di tabella (intrarelazionali) Nell istruzione create table nome attributo not null: valori nulli non ammessi per la colonna nome attributo lista attributi unique: valori duplicati non ammessi per la combinazione degli attributi in lista attributi lista attributi primary key: gli attributi in lista attributi sono la chiave primaria della tabella check condizione 11 Not null Vincoli di tabella Il valore null non è ammesso come valore dell attributo Se all attributo è associato un valore di default (ovviamente diverso dal valore null), diventa possibile effettuare l inserimento anche senza fornire un valore per l attributo Esempi: Cognome varchar(20) not null Stipendio numeric(10,2) default 0 not null 12

3 Unique Vincoli di tabella Si applica ad un attributo (o ad una lista di attributi) ed impone che i valori dell attributo (o degli attributi) siano una chiave (o superchiave), ossia righe diverse della tabella non possono avere lo stesso valore L eccezione è data dal valore null, che puo comparire su diverse righe : Matricola char(20) unique 13 Vincoli di tabella Nome varchar(20) not null Cognome varchar(20) not null unique (Cognome, Nome) è diverso da Nome varchar(20) not null unique Cognome varchar(20) not null unique Il primo caso impone l unicità della coppia nome e cognome Il secondo caso impone che non vi possano essere casi in cui vi siano gli stessi cognomi o gli stessi nomi 14 Vincoli di tabella Primary Key Definisce la chiave primaria Può essere associato ad un singolo attributo oppure una lista di attributi : CREATE TABLE SP ( S# CHAR(5), P# CHAR(6), QTY INTEGER NOT NULL PRIMARY KEY (S#,P#) ) 15 Vincoli di tabella check: condizione sulla colonna oggetto della restrizione Il vincolo è soddisfatto se la condizione è vera per ogni tupla della tabella. I vincoli di tabella sono verificati dopo ogni istruzione SQL che inserisca in una tabella o modifichi colonne soggette a vincoli Se il vincolo è violato, liistruzione SQL che ha causato la violazione subisce rollback 16 DB prodotti-fornitori Esempi S P S# SNAME STATUS CITY S2 S3 S4 S5 P1 P2 P3 P4 P5 P6 Smith Jones Blake Clark Adams Nut Bolt Screw Screw Cam Cog Red Green Blue Red Blue Red London Paris Paris London Athens P# PNAME COLOR WEIGHT CITY London Paris Rome London Paris London SP S# S2 S2 S3 S4 S4 S4 P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTY Creazione della tabella S (fornitori) CREATE TABLE S (S# CHAR(6), SNAME CHAR(20) NOT NULL, STATUS SMALLINT CHECK(STATUS > 0), CITY CHAR(15), PRIMARY KEY (S#)) 17 18

4 Esempi Creazione della tabella P (prodotti) CREATE TABLE P (P# CHAR(6), PNAME VARCHAR(20) NOT NULL UNIQUE, COLOR VARCHAR(6), WEIGHT SMALLINT CHECK(WEIGHT > 0), CITY CHAR(15), PRIMARY KEY (P#)) Esempi Creazione della tabella SP (forniture) CREATE TABLE SP (S# CHAR(6), P# CHAR(6), QTY INTEGER CHECK(QTY IS NOT NULL AND QTY > 0), PRIMARY KEY (S#,P#)) Vincoli d integrità referenziale Il vincolo impone che per ogni riga degli attributi referenzianti (se diversi dal valore null) i valori siano presenti nella tabella referenziata attributi referenzianti: chiave esterna della tabella attributi referenziati: attributi che controllano i valori nelle colonne referenzianti Gli attributi nella tabella referenziata devono essere soggetti a vincolo di Vincoli d integrità referenziale Un solo attributo referenziante NomeAttributoReferenziante Dominio references Tabella(NomeAttributoReferenziato) CREATE TABLE Impiegato ( Matricola char(6) primary key, Nome varchar(20) not null, Cognome varchar(20) not null, Stipendio numeric(9) default 0, Dipart varchar (15) references Dipartimento(NomeDip) unique(cognome, Nome)) unique (o primary key) Vincoli d integrità referenziale Lista di attributi referenzianti foreign key (NomeAttributo {,NomeAttributo}) references NomeTabella(NomeAttributo {,NomeAttributo}) CREATE TABLE Impiegato ( Matricola char(6) primary key, Nome varchar(20) not null, Cognome varchar(20) not null, Stipendio numeric(9) default 0, Dipart varchar (15) references Dipartimento(NomeDip) unique(cognome, Nome) foreign key (Nome, Cognome) references Anagrafe(Nome, Cognome)) 23 Politiche di reazione Le operazioni nella tabella referenziata che possono introdurre delle violazioni corrispondono alle operazioni di modifica o di cancellazione di un attributo referenziato È possibile definire la politica di reazione all azione che causa la violazione Si distinguono i casi di Reazione per cancellazione Reazione per modifica 24

5 Reazioni per cancellazione o modifica Sintassi: On <delete update> <cascade set null set default no action> Reazioni per cancellazione Cascade tutte le righe della tabella referenziante corrispondenti alla tupla cancellata vengono cancellate Set null all attributo referenziante viene assegnato il valore null al posto del valore cancellato Reazioni per cancellazione Set default all attributo referenziante viene assegnato il valore di default al posto del valore cancellato No action la cancellazione non viene consentita 27 Reazioni per modifica Cascade il nuovo valore assunto dall attributo referenziato viene modificato in tutte le tuple in cui compare come attributo referenziante Set null all attributo referenziante viene assegnato il valore null al posto del valore modificato 28 Reazioni per modifica Set default all attributo referenziante viene assegnato il valore di default al posto del valore modificato No action la modifica non viene consentita 29 Vincoli d integrità referenziale per la tabella SP CREATE TABLE SP (S# CHAR(6), P# CHAR(6), QTY INTEGER CHECK(QTY IS NOT NULL AND QTY > 0), PRIMARY KEY (S#,P#), FOREIGN KEY (S#) REFERENCES S(S#) ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY(P#) REFERENCES P(P#) ON DELETE NO ACTION ON UPDATE CASCADE) 30

6 Asserzioni CREATE ASSERTION nome asserzione CHECK (condizione) [ [ NOT ] DEFERRABLE [ < INITIALLY DEFERRED INITIALLY IMMEDIATE>] ] condizione: predicato SQL arbitrario se l asserzione è vera, il vincolo è soddisfatto valutazione immediate: vincolo valutato dopo ogni modifica della basi di dati deferred: vincolo valutato solo al termine dell esecuzione di una serie di operazioni (transazione) 31 Valutazione immediata Vincoli di tabella (not null, unique, primary key) e vincoli di integrità referenziale (foreign key) sono verificati in modo immediato 32 Rollback Se un vincolo immediato non è soddisfatto, l operazione di modifica non viene eseguita (rollback parziale) Una violazione di vincolo differito viene valuata solo al termine di una transazione e non c è modo di individuare la singola operazione che ha violato il vincolo Diventa dunque necessario eliminare tutte le operazioni che costituiscono la transazione (rollback) 33 Esempi Lo stipendio di tutti gli impiegati è compreso tra 30 e 100 create table imp... check (sal >= 30 and sal <= 100) Lo stipendio medio degli impiegati è inferiore a 50 create assertion verif-media check ((select avg(sal) from imp) < 50) 34 Esempi Vincolo: ogni prodotto può essere fornito da al più 10 fornitori diversi CREATE ASSERTION TooManyS CHECK (NOT EXISTS (SELECT * FROM SP GROUP BY P# HAVING COUNT(DISTINCT S#)>10)) DEFERRABLE INITIALLY DEFERRED Modifica del controllo associato al vincolo Il controllo associato al vincolo può essere modificato attraverso i seguenti comandi SET CONSTRAINTS NomeVincolo IMMEDIATE SET CONSTRAINTS NomeVincolo DEFERRED 35 36

7 Viste 37 Viste La vista (view) è una tabella virtuale: non esiste realmente anche se l utente la percepisce sotto forma di tabella Una tabella di base (al contrario di una view) ha un riscontro fisico: ad ogni elemento della tabella corrisponde un elemento sul supporto magnetico La definizione di una view è basata su tabelle di base e viene memorizzata nel catalogo del sistema 38 Definizione di una vista CREATE VIEW nome-vista [(ListaAttributi)] AS SelectSQL [WITH [LOCAL CASCADED] CHECK OPTION] Definire una vista contenente il codice, la città e lo stato di tutti i fornitori con status maggiore di 15 CREATE VIEW GOOD_SUPPLIERS AS SELECT S#, STATUS, CITY FROM S WHERE STATUS > In questo caso, l'interrogazione SELECT.. FROM.. WHERE... che segue AS non viene eseguita, ma semplicemente salvata nel catalogo Gli utenti possono operare sulla vista come se fosse una tabella: SELECT * FROM GOOD_SUPPLIERS WHERE CITY <> 'London' 41 L interrogazione è concatenata con la definizione della vista residente nel catalogo: SELECT S#, STATUS, CITY FROM S WHERE STATUS > 15 AND CITY <> 'London' 42

8 Regole di definizione delle viste Nell interrogazione che definisce una vista possono comparire anche altre viste La sintassi SQL non ammette però dipendenze ricorsive (né immediate, né transitive) 43 Definizione di una vista Se i nomi delle colonne della vista non sono specificati, sono utilizzati quelli specificati nella target list della SelectSQL I nomi delle colonne devono essere specificati se: rappresentano il risultato di una funzione interna rappresentano il risultato di un espressione o sono costanti due colonne hanno lo stesso nome 44 Definire una vista contente codice prodotto, nome, peso e città di tutti i prodotti di colore rosso: CREATE VIEW REDPARTS (P#, PNAME, WT, CITY) AS SELECT P#, PNAME, WEIGHT, CITY FROM P WHERE COLOR = 'Red' Definire una vista contenente il codice prodotto (di ogni prodotto fornito) e la somma di tutte le corrispondenti quantità fornite: CREATE VIEW PQ (P#, TOTQTY) AS SELECT P#, SUM(QTY) FROM SP GROUP BY P#; Definire una vista contenente tutte le coppie di città x,y tali che un fornitore localizzato nella città x fornisca un prodotto immagazzinato nella città y: CREATE VIEW CITY_PAIRS (SCITY, PCITY) AS SELECT DISTINCT S.CITY, P.CITY FROM S, SP, P WHERE S.S# = SP.S# AND SP.P# = P.P# 47 Definire una vista contenente codice prodotto e peso di tutti i prodotti rossi immagazzinati a Londra: CREATE VIEW LONDON_REDPARTS AS SELECT P#, WT FROM REDPARTS WHERE CITY = 'London' 48

9 Cancellazione di viste Aggiornamento dei dati Per cancellare una vista: DROP VIEW nome-vista La cancellazione di una tabella (di base) comporta l eliminazione automatica delle viste che ad essa si riferiscono 49 È possibile eseguire operazioni di aggiornamento dei dati contenuti in una vista solo per alcune tipologie di viste Standard SQL-92: sono aggiornabili le viste in cui una sola riga di ciascuna tabella di base corrisponde a una sola riga della vista I prodotti relazionali non presentano un comportamento standard 50 Aggiornamento dei dati Non sono aggiornabili: viste che non contengono la chiave primaria della tabella di base viste contenenti join che rappresentano corrispondenze uno a molti o molti a molti viste contenenti funzioni aggregate viste contenenti DISTINCT CREATE VIEW GOOD_SUPPLIERS AS SELECT S#, STATUS, CITY FROM S WHERE STATUS > 15 UPDATE GOOD_SUPPLIERS SET STATUS = STATUS + 10 WHERE CITY = 'Paris' CREATE VIEW S#_CITY AS SELECT S#, CITY FROM S; CREATE VIEW STATUS_CITY AS SELECT STATUS, CITY FROM S; Inserimento di (S6,Rome) in S#_CITY inserimento di (S6,NULL,NULL,Rome) in S cancellazione di (,London) da S#_CITY cancellazione di (,Smith,20,London) da S modifica di (,London) in (,Rome) in S#_CITY modifica che porta a (,Smith,20,Rome) in S 53 Inserimento di (40,Rome) in STATUS_CITY impossibile inserire (NULL,NULL,40,Rome) in S Cancellazione di (20,London) da STATUS_CITY quale record cancellare da S? Modifica di (20,London) in (20,Rome) in STATUS_CITY quale record modificare in S? 54

10 CREATE VIEW BIG_SUPPLIERS(S#,SNAME,P#,QTY) AS SELECT S.S#,SNAME,P#,QTY FROM S,SP WHERE S.S#=SP.S# AND QTY>100 La vista non è aggiornabile corrispondenza uno a molti tra fornitore e sue forniture 55 CREATE VIEW BIG_SUPPLIERS2(S#,SNAME) AS SELECT S#,SNAME FROM S WHERE S# IN (SELECT S# FROM SP WHERE QTY > 100) La vista è aggiornabile una riga nella vista corrisponde a una sola riga nella tabella S il contenuto informativo è diverso da SUPPLIERS (mancano P# e QTY) 56 CREATE VIEW BIG_SUPPLIERS3 (S#,SNAME,TOTQTY) AS SELECT S.S#,SNAME,SUM(QTY) FROM S,SP WHERE S.S#=SP.S# GROUP BY S.S#,SNAME HAVING SUM(QTY) > 100 La vista non è aggiornabile contiene una funzione aggregata 57 Check option Si possono aggiornare solo righe appartenenti alla vista Dopo l aggiornamento le righe devono ancora appartenere alla vista Se una vista è definita in termini di altre viste l opzione LOCAL verifica la correttezza dell aggiornamento solo sulla vista aggiornata l opzione CASCADED (default) esegue la verifica su tutte le viste coinvolte nell aggiornamento 58 CREATE VIEW HEAVY_REDPARTS (P#, PNAME, WT) AS SELECT P#, PNAME, WT FROM RED_PARTS WHERE WT >= 10 WITH CHECK OPTION CREATE VIEW LIGHTER_REDPARTS(P#,WT) AS SELECT P#, WT FROM HEAVY_REDPARTS WHERE WT<20 WITH CHECK OPTION Non si può aggiornare il peso con valori < Se clausola CASCADED (default) peso aggiornabile solo con valori tra 10 e 20 Se clausola LOCAL peso aggiornabile con valori < 20 60

11 Uso di viste per formulare interrogazioni complesse Le viste in SQL possono essere utilizzate per formulare interrogazioni complesse (o non altrimenti esprimibili) Si consideri una base di dati con il seguente schema: DIPARTIMENTO (Nome, Indirizzo, Città) IMPIEGATO (Nome, Cognome, Dipart, Ufficio, Stipendio, Città) Soluzione con viste Estrarre il numero medio di uffici per ogni dipartimento Soluzione non corretta: SELECT AVG(COUNT (DISTINCT Ufficio)) CREATE VIEW DipartUffici (NomeDip, NroUffici) AS SELECT Dipart, COUNT(DISTINCT Ufficio) FROM IMPIEGATO GROUP BY Dipart FROM Impiegato GROUP BY Dipart SQL non permette di combinare in cascata la valutazione di diversi operatori aggregati 63 SELECT AVG(NroUffici) FROM DipartUffici 64 Determinare quale è il dipartimento che spende il massimo di stipendi La seguente soluzione non è ammessa dal linguaggio SELECT Dipart SQL FROM Impiegato GROUP BY Dipart HAVING SUM (Stipendio) = MAX (SELECT (SUM(Stipendio)) FROM Impiegato GROUP BY Dipart) 65 Soluzione ammissibile: SELECT Dipart FROM Impiegato GROUP BY Dipart HAVING SUM (Stipendio) >= ALL (SELECT SUM(Stipendio) FROM Impiegato GROUP BY Dipart) 66

12 Soluzione con una vista: CREATE VIEW BudgetStipendi (Dip, TotStipendi) AS SELECT Dipart, SUM(Stipendio) FROM Impiegato GROUP BY Dipart SELECT Dip FROM BudgetStipendi WHERE TotStipendi = (SELECT MAX(TotStipendi) FROM BudgetStipendi) 67 Catalogo di sistema Una base di dati dispone di tabelle che contengono i metadati (dati che descrivono i dati) Tali tabelle prendono il nome di catalogo di sistema Contiene i descrittori di alcuni elementi rilevanti per il sistema: Tabelle, viste, indici, utenti, privilegi di accesso, 68 Catalogo di sistema Il catalogo è strutturato in tabelle come i dati L ottimizzatore usa il catalogo per decidere le strategie di accesso Il catalogo di prodotti diversi può essere strutturato in modo diverso (es. il catalogo di DB2 è diverso dal catalogo di INGRES) Tabelle fondamentali del catalogo SYSTABLES Una riga per ogni relazione o vista Contiene il nome della tabella (NAME), il nome dell utente (CREATOR), il numero di colonne (COLCOUNT) ed altre informazioni SYSTABLES NAME CREATOR COLCOUNT Tabelle fondamentali del catalogo SYSCOLUMNS Una riga per ogni colonna di ogni tabella Contiene il nome della colonna (NAME), il nome della tabella (TAB-NAME), il tipo di dato (COLTYPE) ed altre informazioni SYSCOLUMNS NAME TABNAME COLTYPE Tabelle fondamentali del catalogo SYSINDEX Una riga per ogni indice Contiene il nome dell'indice (NAME), il nome della tabella indicizzata (TBNAME), il nome dell utente (CREATOR) ed altre informazioni SYSINDEX NAME TBNAME CREATOR 71 72

13 Interrogazione del catalogo È possibile interrogare il catalogo con istruzioni SQL : trovare quali tabelle contengono una colonna S# SELECT TBNAME FROM SYSCOLUMNS WHERE NAME = 'S#' Risultato : TBNAME S SP Interrogazione del catalogo Quali colonne ha la tabella S? SELECT NAME FROM SYSCOLUMNS WHERE TBNAME = 'S' Quante tabelle ha creato l utente Rossi? SELECT COUNT(*) FROM SYSTABLES WHERE CREATOR = 'Rossi' Aggiornamento del catalogo Il catalogo non può essere aggiornato dagli utenti esempio: l eliminazione di una colonna impedirebbe di accedere ai dati in essa contenuti L aggiornamento del catalogo avviene con l uso delle istruzioni CREATE TABLE, INDEX, VIEW ALTER TABLE DROP TABLE, INDEX, VIEW in modo indiretto 75

Il linguaggio SQL: le viste

Il linguaggio SQL: le viste Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

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

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

SQL Laboratorio di Basi di Dati a.a. 2002/2003

SQL Laboratorio di Basi di Dati a.a. 2002/2003 1 SQL Laboratorio di Basi di Dati a.a. 2002/2003 dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 2 Sommario (V parte) Aspetti avanzati della definizione dei dati

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

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

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

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

Dettagli

SQL Sintassi Dei Comandi

SQL Sintassi Dei Comandi SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la

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

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: Definizione e Manipolazione di Relazioni. Capitolo 2

SQL: Definizione e Manipolazione di Relazioni. Capitolo 2 SQL: Definizione e Manipolazione di Relazioni Capitolo 2 1 Sintassi della Creazione di uno Schema Relazionale CREATE TABLE ( [NOT NULL] [UNIQUE] [],...,...,

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab

Dettagli

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

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

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

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI 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)) CREATE SCHEMA

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

Caratteristiche dei linguaggi per Database

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;

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

Elena Baralis 2007 Politecnico di Torino 1

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

Dettagli

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

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

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

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

---------------------------------------------------------------------------- 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

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

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

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

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

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

Dettagli

SQL - Sottointerrogazioni

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

SQL terza 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 2010/11

SQL terza 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 2010/11 SQL terza 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 2010/11 Operatori aggregati Costituiscono una estensione delle normali interrogazioni SQL (non hanno corrispondenza in

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo

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

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

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

Dettagli

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

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

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice

Dettagli

Basi di Dati e Sistemi Informativi. Structured Query Language

Basi di Dati e Sistemi Informativi. Structured Query Language Basi di Dati e Sistemi Informativi Structured Query Language Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

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

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

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati 15/07/2010 Corso di Laurea in Ingegneria Informatica Prof. Laura Po Nome Cognome Matr Corso di laurea Esercizio Sia dato il seguente database per la gestione dei concorsi fotografici.

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

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

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

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. Storia e standard

SQL. Storia e standard SQL Lorenzo Sarti 2009 Basi di Dati 1 Storia e standard Lorenzo Sarti 2009 Basi di Dati 2 SQL-2 È ricco e complesso e nessun sistema commerciale lo implementa in maniera completa Sono definiti 3 livelli

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

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

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1 Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

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

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici Il linguaggio SQL Il linguaggio SQL il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è diventato

Dettagli

SQL - Tipi di dato Il linguaggio SQL

SQL - Tipi di dato Il linguaggio SQL SQL - Tipi di dato Il linguaggio SQL I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined ci concentreremo sui tipi predefiniti i tipi predefiniti sono suddivisi

Dettagli

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 22/02/2016 Interrogazioni nidificate In

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione

Dettagli

ALGEBRA RELAZIONALE. L algebra relazionale

ALGEBRA RELAZIONALE. L algebra relazionale ALGEBRA RELAZIONALE 2 L algebra relazionale L insieme principale di operazioni per il modello relazionale è l algebra relazionale. Le operazioni dell algebra relazionale consentono all utente di specificare

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

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati Microsoft Access Programma applicativo del pacchetto Microsoft Office per la gestione delle basi di dati. Microsoft Access 2 Creazione base di dati Apertura di una base dati Una nuova base dati si crea

Dettagli

5 SQL : Definizione e manipolazione dei dati

5 SQL : Definizione e manipolazione dei dati 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

Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle

Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle 1 Materiale disponibile Gli script e il testo delle esercitazioni sono disponibili nel direttorio della propria home, nella

Dettagli

Linguaggio SQL. Structured Query Language

Linguaggio SQL. Structured Query Language Linguaggio SQL Structured Query Language Creato negli anni 70 presso IBM Inizialmente solo linguaggio di interrogazione Ora linguaggio di riferimento per DB relazionali Standardizzato grazie al lavoro

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

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

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere

Dettagli

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati: Gestione dei dati e della conoscenza, a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati: Si vuole modellare

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ SQL (Structured Query Language) e il linguaggio di riferimento per le basi di dati relazionali. Diverse

Dettagli

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna 1985 13 laura sicuro rimini 1984 esami codice

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

Dettagli

SQL. (Structured Query Language) Eugenio Di Sciascio

SQL. (Structured Query Language) Eugenio Di Sciascio SQL (Structured Query Language) Eugenio Di Sciascio SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio di definizione e manipolazione dati DDL (Data Definition Language): consente

Dettagli

Tipi di sottoquery SQL

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

Dettagli

OBIETTIVI DELL'ESERCITAZIONE

OBIETTIVI DELL'ESERCITAZIONE Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2005/2006 Esercitazione su SQL Giuseppe De Giacomo Domenico Lembo OBIETTIVI DELL'ESERCITAZIONE Creare schema

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

Corrado Aaron Visaggio 1. Esercizio

Corrado Aaron Visaggio 1. Esercizio SQL Corrado Aaron Visaggio 1 Esercizio Definire un archivio di polizia, ispirato al sistema disponibile sull sito www.fbi.gov. Ogni criminale deve possedere: informazioni anagrafiche (nome, cognome, indirizzo,

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

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: 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

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

Basi di dati: appello 08/03/06

Basi di dati: appello 08/03/06 Basi di dati: appello 08/03/06 Si consideri il seguente schema di base di dati che vuole tenere traccia delle rappresentazioni di un gruppo di compagnie teatrali: COMPAGNIA (nome, cfdirettore, città_sede)

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 prof. Letizia Tanca

Basi di Dati prof. Letizia Tanca Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini

Dettagli

Laboratorio di Basi di Dati SQL avanzato

Laboratorio di Basi di Dati SQL avanzato Laboratorio di Basi di Dati SQL avanzato Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Interrogazioni nidificate Syntax: SELECT {* [, ]} FROM [,

Dettagli

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione Introduzione Modello Relazionale Concetti e definizioni 1 Modello proposto nel 1970 da E.F. Codd A relational model for large shared data banks Communications of the ACM Vol. 13, n. 6, pagg. 377-387 Prime

Dettagli

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5 Domini elementari, Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Bit Valori booleani (vero/falso), singoli o in sequenza (la sequenza può essere di lunghezza variabile) Sintassi: bit

Dettagli

Basi di dati: appello 28/02/06

Basi di dati: appello 28/02/06 Basi di dati: appello 28/02/06 Si consideri il seguente schema di base di dati che vuole tenere traccia della programmazione delle radio italiane: EMITTENTE (id, nome, frequenza, città.) SCALETTA (id_radio,

Dettagli

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive Note introduttive Il metodo di lavoro proposto ripercorre il ciclo di vita di un sistema informativo automatizzato attraverso l analisi, il progetto, la realizzazione e il testing. Il sistema informativo

Dettagli

Laboratorio di Basi di Dati Per Bioinformatica

Laboratorio di Basi di Dati Per Bioinformatica Laboratorio di Basi di Dati Per Bioinformatica Laurea in Bioinformatica - A.A. 2010/11 Docente: Carlo Combi Email: carlo.combi@univr.it Lezione 1 SQL Structured Query Language SQL è stato definito nel

Dettagli

Linguaggio SQL Descriviamo la notazione usata nel seguito:

Linguaggio SQL Descriviamo la notazione usata nel seguito: Descriviamo la notazione usata nel seguito: i termini del linguaggio sono sottolineati; i termini variabili sono scritti in corsivo; le parentesi angolari (< >)permettono di isolare un termine della sintassi;

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

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

Le query di comando e di servizio in Access

Le query di comando e di servizio in Access Le query di comando e di servizio in Access In questa parte sono presentate alcune query di Access che permettono di: creare nuove tabelle, aggiungere o eliminare righe in una tabella, modificare il contenuto

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

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

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

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic. 2007 da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori. Basi di dati ad oggetti:un esempio ODL-OQL 1. Caso filmoteca: modello dei dati lunghezza tipo_pellicola via città indirizzo titolo anno FILM attori recitain ATTORE nome posseduto da lunghezza_in_ore (

Dettagli

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio INTRODUZIONE L algebra relazionale è l algebra su cui si basa il linguaggio

Dettagli

Basi di Dati. Esercitazione 3: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Basi di Dati. Esercitazione 3: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL Basi di Dati Esercitazione 3: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: MODELLI(cod_modello, nome, versione, cod_fabbrica) VEICOLI(targa,

Dettagli

Basi di dati. SQL: Amministrazione e Viste. Prof.ssa Rosalba Giugno Dott. Aurelio Giudice

Basi di dati. SQL: Amministrazione e Viste. Prof.ssa Rosalba Giugno Dott. Aurelio Giudice Basi di dati SQL: Amministrazione e Viste Prof.ssa Rosalba Giugno Dott. Aurelio Giudice SQL per definire ed amministrare Ad ogni utente tipicamente viene associata una base di dati, creata dall amministratore

Dettagli

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere capitolo 7 di Garcia- Molina et al. Vincoli e Triggers Un vincolo e una relazione tra dati che il DBMS deve assicurare. Esempio: vincoli

Dettagli