SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato"

Transcript

1 Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati: modelli e linguaggi di programmazione McGraw-Hill, 2003 Capitolo 4: SQL-1, prima parte 11/03/2005 SQL Structured Query Language è un linguaggio con varie funzionalità: contiene sia il Data Definition Language sia il Data Manipulation Language ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli 2 SQL: "storia" prima proposta SEQUEL (1974); prime implementazioni in SQL/DS e Oracle (1981) dal 1983 ca. "standard di fatto" Nuovi standard (1986, poi 1989 e infine 1992, 1999) recepiti in parte 3 Storia un po piu in dettaglio 1986 prevalementemente linguaggio di interrogazione 1989 aggiunta della integrita referenziale 1992 (SQL-2) molto piu ricca, cui faremo riferimento nel seguito 1999 (SQL-3) compatibile con SQL-2 + trigger (regole attive), nuovi tipi, supporto modelli a oggetti. In realta anche SQL-2 non e stato recepito completamente 4 Tre livelli per SQL-2 Entry SQL, corregge imprecisioni di SQL 1989 Intermediate SQL, nucleo adottato dal mercato Full SQL, funzioni avanzate che si stanno via via adottando Standard, dialetti, mercato In realta ogni sistema commerciale adotta un suo dialetto, con diverse intepretazioni semantiche per stesse funzionalita Questoe un problema: Gli standard richiedono accordi tra produttori, e con i grandi utenti Standard a posteriori, costosi per quelli che perdono E lento il processo di standardizzazione 5 6 1

2 Introduzione informale alla sintassi di SQL Una istruzione SQL e un insieme di termini, composti tramie regole sintattiche in cui: TERMINI DEL LINGUAGGIO sono maiuscoli termini variabili sono in minuscolo [termine] indicano termine opzionale puo comparire o meno {termine} il termine contenuto puo non comparire o essere ripetuto un numero arbitrario di volte Alcune volte daremo esempi, non sintassi Attenzione: convenzioni un po diverse sul libro! Esempio di sintassi di istruzione SQL Termine del linguaggio SELECT ListaAttributi FROM ListaTabelle [WHERE Condizione] Termine variabile Puo comparire o meno 7 8 SQL Data Definition Language Definizione di schemi, tabelle, domini in SQL 9 10 Ci servono istruzioni per descrivere i seguenti aspetti di uno schema relazionale Schema (Schema) Vincoli Relazione (Table) Dominio di Attributo (Domain) Schemi

3 Definizione di schemi CREATE SCHEMA nomeschema [AUTHORIZATION nomeutenteproprietario] AUTHORIZATION definisce il proprietario dello schema, colui che lo ha definito Relazioni (Table) E seguita dalle definizioni delle tabelle, domini, vincoli interschema. Non e necessario che siano specificati tutti insieme alla CREATE SCHEMA, si possono aggiungere con il comando ALTER e togliere con la DROP Definizione delle Tabelle in SQL Istruzione CREATE TABLE: definisce uno schema di relazione e ne crea un istanza vuota, cioe senza ennuple specifica attributi, domini e vincoli CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) Attributi (Domini) Vincoli Domini (o data types) Domini di attributi (Domain) Domini elementari (predefiniti) Domini definiti dall'utente (semplici, ma riutilizzabili)

4 Domini elementari CHARACTER (n): singoli caratteri o stringhe di n caratteri, anche di lunghezza variabile (VARCHAR(n)) Es. CHARACTER (20) Es. VARCHAR (30) BIT (n): singoli booleani o stringhe di booleani Usato nei flag, attributi che specificano se la generica nupla rispetta o meno una o piu proprieta Es BIT (2) per rappresentare se una persona e donna o uomo, lavoratore o nonlavoratore Domini numerici, data e ora Numerici, esatti e approssimati Numerici esatti Interi INTEGER, SMALLINT Decimali DECIMAL (i,j) o NUMERIC(i,j) dove i e la precisione, numero di cifre significative j e la scala, numero di cifre dopo la virgola Es. DECIMAL (5,1) > 3453, Continua Domini introdotti in SQL-2 Numerici approssimati (per grandezze fisiche) FLOAT, DOUBLE PRECISION, REAL Mantissa + esponente, come in altri linguaggi Data e ora Date, strutturata in YEAR, MONTH, DAY Time, strutturato in HOUR, MINUTE, SECOND TIMESTAMP, tutti i campi. BOOLEAN, con dominio 0,1 Per rappresentare singoli valori booleani, restrizione di Bit Bit per stringhe di booleani BLOB, CLOB: oggetti (costituiti da binari, Blob o caratteri, Clob) di grandi dimensioni. Memorizzati e trattati diversamente dagli altri valori Usati per informazioni non strutturate (testi) o multimediali (immagini, video) Domini semplici e domini definiti dall utente I domini si possono definire esplicitamente LNAME VARCHAR(15), SEX CHAR, In alternativa si puo dichiarare a parte un dominio e poi citare il nome. La dichiarazione si puo fare con la istruzione CREATE DOMAIN. Domini definiti dall utente Istruzione CREATE DOMAIN: definisce un dominio (semplice), utilizzabile in definizioni di relazioni, anche con vincoli e valori di default CREATE DOMAIN nomedominio AS tipodidato [valore di default] [vincolo] Es. CREATE DOMAIN LNAME_TYPE AS CHAR(9) E poi LNAME LNAME_TYPE

5 Domini definiti dall utente Istruzione CREATE DOMAIN: definisce un dominio (semplice), utilizzabile in definizioni di relazioni, anche con vincoli e valori di default CREATE DOMAIN nomedominio AS tipodidato [valore di default] {vincolo} L insieme dei costrutti di SQL e molto piu limitato di quellitipicideilinguaggiprogrammativi. Es. Non e possibile definire array Questa scelta anche perche e intrinseco al modello relazionale che gli attributi abbiano domini elementari CREATE DOMAIN, esempio CREATE DOMAIN Voto AS SMALLINT DEFAULT NULL CHECK (value >=18 AND value <= 30) Il comando crea flessibilita rispetto al solo utilizzo dei domini elementari. Se cambia qualche caratteristica di un dominio definito dall utente, basta modificarla nella definizione ed e propagata a tutti i riferimenti Es. Se cambia la convenzione sui voti Valore di DEFAULT CREATE TABLE, esempio Es. DEFAULT 0 Se non e specificato, nella definizione si assume NULL come default. Significato: quando in una operazione di inserimento il valore di un attributo non e specificato, si assume il valore di default. 27 CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 28 Vincoli Cosa e un vincolo E una proprieta sempre valida per le tuple di una o piu relazioni

6 Tipi di vincoli Intrarelazionali proprieta valida all interno di una relazione Interrelazionali proprieta relativa a piu relazioni Vincoli intrarelazionali Vincoli intrarelazionali Vincolo NOT NULL 1. NOT NULL 2. UNIQUE definisce chiavi 3. PRIMARY KEY: chiave primaria (una sola) 4. CHECK, permette di definire sia vincoli intra che inter relazionali, vedremo più avanti Indica che il valore nullo non e ammesso per quel dominio Regola: Quando in un inserimento non e specificato il valore, allora il valore di default deve essere non nullo Vincolo UNIQUE Si applica a uno (A) o un insieme di attributi (I) Impone che i valori dell attributo A o dell insieme I siano una chiave, cioe che tuple diverse abbiano valori diversi su A o I. Fa eccezione il valore nullo, che si assume sempre diverso nelle diverse occorrenze Due forme: nella definizione di un attributo, se forma da solo la chiave Es. Cognome CHAR(20) UNIQUE come elemento separato, se definito su piu attributi Es. Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, UNIQUE (Cognome,Nome) Chiavi su più attributi, attenzione Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, UNIQUE (Cognome,Nome), Nome CHAR(20) NOT NULL UNIQUE, Cognome CHAR(20) NOT NULL UNIQUE, Non è la stessa cosa!

7 CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 37 Clausola PRIMARY KEY Serve per specificare la chiave primaria Puo essere usata una sola volta Due forme (come per unique) per un attributo o piu attributi Gli attributi della chiave primaria non possono assumere valori nulli Matricola CHAR(6) PRIMARY KEY Matricola CHAR(6),, PRIMARY KEY (Matricola) 38 CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 39 Vincoli interrelazionali 40 Vincoli interrelazionali Vincoli di integrita referenziale (IR) REFERENCES e FOREIGN KEY CHECK, vedremo più avanti VincolidiIR Creano un legame tra i valori di n attributi della tabella corrente (detta interna) e i valori di n attributi di una seconda tabella (detta esterna o master, cioe principale) che tipicamente ne costituiscono una chiave di nuovo due sintassi (come in precedenza) per singoli attributi su più attributi E' possibile definire politiche di reazione alla violazione

8 Infrazioni (tabella interna) Codice Data Vigile Prov Numero /2/95 4/3/95 5/4/96 5/2/ MI TO PR PR 39548K E Infrazioni (interna) Codice Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile Prov Numero MI 39548K TO E39548 PR PR Vigili (esterna o master) Matricola Cognome 3987 Rossi 3295 Neri 9345 Neri 7543 Mori Nome Luca Piero Mario Gino 43 Auto (esterna o master) Prov Numero Cognome MI TO PR 39548K E Rossi Rossi Neri Nome Mario Mario Luca 44 CREATE TABLE, esempio con le due sintassi CREATE TABLE Infrazioni( Codice CHAR(6) NOT NULL PRIMARY KEY, Data DATE NOT NULL, Vigile INTEGER NOT NULL REFERENCES Vigili(Matricola), Provincia CHAR(2), Numero CHAR(6), FOREIGN KEY(Provincia, Numero) REFERENCES Auto(Provincia, Numero) ) Politiche di reazione alle violazioni o referential triggered action Cause di violazione: 1. Si opera sulla tabella interna (TI) inserimento di tupla nella TI modifica di valore di attributo nella TI In entrambi i casi il comando non viene eseguito 2. Si opera sulla tabella esterna/master (TE) Quattro politiche possibili (vedi ) Motivo della asimmetria: la TE e la tabella master Politiche per comando su TE: modifica/cancellazione 1. Cascade: Modifica valore modificato anche nella TI Cancellazione la cancellazione viene propagata alla TI 2. Set null: NULL nella TI 3. Set default: default nella TI 4. No action: rifiutata Politiche per comando su TE: modifica/cancellazione Le due politiche possono essere differenti per modifica/cancellazione Es. DipartCHARACTER (15) REFERENCES Dipartimento (NomeDip) ON DELETE SET NULL ON UPDATE CASCADE

9 Modifiche degli schemi: ALTER Istruzioni SQL di modifica di schema ALTER DOMAIN, modifica domini (default, vincoli) ALTER TABLE, modifica tabelle. Attenzione: Quando si definisce un nuovo vincolo, deve essere soddisafatto dai dati presenti, altrimenti viene rifiutato Modifiche degli schemi: DROP In pratica DROP DOMAIN, cancellazione del dominio (attributo) DROP TABLE, cancellazione della tabella Due opzioni: RESTRICT, un oggetto (dominio, tabella) non e rimosso se non e vuoto CASCADE, viene rimosso l oggetto e tutto cio che e coinvolto nella definizione dell oggetto In molti sistemi si utilizzano strumenti diversi dal codice SQL per definire lo schema della base di dati Es. Form in Access SQL, operazioni sui dati Data Manipulation Language: operazioni sui dati interrogazione: SELECT modifica: INSERT, DELETE, UPDATE

10 Operazioni di interrogazione L operazione SELECT Due forme per la SELECT SQL interrogazioni SELECT non nidificata: usata in interrogazioni semplici SELECT nidificata: usata in interrogazioni complesse Al contrario dell algebra relazionale, SQL e un linguaggio dichiarativo: specificacosasivuole, non come lo si vuole. E l ottimizzatore del DBMS che sceglie la implementazione ottima dal punto di vista dei costi Poiche tuttavia esistono molte espressioni diverse per la stessa interrogazione in SQL, occorre privilegiare nella scelta non la efficienza ma la leggibilita e comprensibilita Istruzione SELECT: sintassi Interrogazioni semplici: istruzione SELECT non nidificata SELECT ListaAttributi FROM ListaTabelle [WHERE Condizione] Lista attributi e la "target list, lista obiettivo, che si vuole riprodurre come esito della interrogazione clausolafrom clausolawhere

11 Istruzione SELECT: semantica SELECT ListaAttributi FROM ListaTabelle [WHERE Condizione] Seleziona tra le righe del prodotto cartesiano delle tabelle citate nella FROM, quelle che soddisfano le condizioni presenti nella WHERE, e di esse ne rappresenta solo gli attributi nella target list Un primo insieme di esercizi Maternità Legami Logici Chiavi Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio Figlio Maria Olga Filippo Figlio Olga Filippo Persone Nome Età Reddito Maria Anna Filippo Olga Sergio Luisa Maternità Madre Figlio Luisa Maria Paternità Luisa Anna Anna Maria Maria Olga Filippo Padre Figlio Sergio Olga Filippo Persone Nome Età Reddito Maria 55 Anna 50 Filippo Olga 30 Sergio 85 Luisa Trova a mente: - I figli di Luisa - Le nonne - I genitori di Olga -I genitori con piu di un figlio 64 Selezione e proiezione Nome e reddito delle persone con meno di trenta anni PROJ Nome, Reddito (SEL Eta<30 (Persone)) select nome, reddito from persone where eta < 30 Maternità Madre Figlio Luisa Maria Luisa Anna Olga Anna Filippo Maria Maria Paternità Padre Figlio Sergio Olga Filippo Persone Nome Età Reddito Maria Anna Filippo Olga Sergio Luisa Persone Nome Reddito Età Reddito Filippo Maria Anna Filippo Olga Sergio Luisa

12 Ridenominazione SELECT, abbreviazioni Si possono fare ridenominazioni su attributi e relazioni con la clausola AS select nome, reddito from persone where eta < 30 Esempio: Impiegato as I Si puo anche omettere AS Esempio: ImpiegatoI Puo scriversi, per ragioni di leggibilita, come select nome, reddito from persone as personegiovani where eta < Selezione, senza proiezione SELECT, abbreviazioni Nome, età e reddito delle persone con meno di trenta anni SEL Eta<30 (Persone) select * from persone where eta < 30 select * from persone where eta < 30 E EQUIVALENTE A select nome, età, reddito from persone where eta < Proiezione, senza selezione SELECT, abbreviazioni Nome e reddito di tutte le persone R(A,B) PROJ Nome, Reddito (Persone) select nome, reddito from persone select * from R equivale a select X.A as A, X.B as B from R X where true

13 Espressioni nella target list Maria Anna Filippo Olga Sergio Luisa Trova il reddito di, e lo divide per due, trovando quindi il reddito semestrale Select Reddito/2 as redditosemestrale from Persone where Nome = ' Condizione complessa Trova tutti gli attributi delle persone per le quali il reddito e >25 e l eta e compresa tra 30 e 60 select * from persone where reddito > 25 and (eta >= 30 and eta <= 60) Maternità Madre Figlio Persone Luisa Maria Nome Età Reddito Luisa Anna Olga Anna Filippo Maria Maria Anna Maria Filippo Paternità Padre Figlio Sergio Olga Olga Sergio Filippo Luisa Condizione LIKE Gestione dei valori nulli Seleziona stringhe di caratteri - indica carattere arbitrario % indica stringa con un numero arbitrario di caratteri Esempio: Le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera select * from persone where nome like 'A_d%' 75 Stesso significato dell algebra relazionale Impiegati Matricola Cognome Filiale Età Rossi Neri Milano Roma Bruni Neri Milano NULL Bruni Milano NULL Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) 76 Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) select * from impiegati where eta > 40 or eta is null Ricordiamo ancora il significato della SELECT SELECT ListaAttributi FROM ListaTabelle [WHERE Condizione] Seleziona tra le righe del prodotto cartesiano delle tabelle citate nella FROM, quelle che soddisfano le condizioni presenti nella WHERE, e di esse ne rappresenta solo gli attributi nella target list

14 Relazione tra SQL e algebra relazionale Date due schemi relazionali R1(A1,A2), R2(A3,A4) Select A1, A4 From R1, R2 Where A2 = A3 prodotto cartesiano (FROM) selezione (WHERE) proiezione (SELECT) SQL e algebra relazionale R1(A1,A2) R2(A3,A4) Select A1, A4 From R1, R2 Where A2 = A3 PROJ A1,A4 (SEL A2=A3 (R1 PROD CART R2)) Clausola PUNTO (.) Esempio Vi puo essere ambiguita nel riferire un attributo attraverso il nome, es. quando piu tabelle hanno lo stesso attributo Es. R1(A1, A2), R2 (A2, A3) In questi casi occorre usare la notazione nometabella.nomeattributo Schema Impiegato (Nome, Cognome, Citta, Dipartimento, Ufficio) Dipartimento (Nome, Citta ) Seleziona Nome (degli impiegati), Cognome, Citta (del dipartimento) degli impiegati Dove sono gli attributi nello schema? Esempio Esempio Schema Impiegato (Nome, Cognome, Citta, Dipartimento, Ufficio) Dipartimento (Nome, Citta ) Schema Impiegato (Nome, Cognome, Citta, Dipartimento, Ufficio) Dipartimento (Nome, Citta ) Seleziona Nome (degli impiegati), Cognome, Citta (del dipartimento) degli impiegati Vogliamo trovare Nome, Cognome e Citta del Dipartimento di tutti gli impiegati

15 Esempio Utilita delle ridenominazioni Schema Impiegato (Nome, Cognome, Citta, Dipartimento, Ufficio, Dipartimento (Nome, Citta ) Per Dipartimento Select I.Nome, Non Cognome, e necessario D.Citta usare la clausola. From Impiegato as I, Dipartimento as D Where Dipartimento = D.Nome Possono essere necessarie ridenominazioni nella selezione nella target list Select I.Nome, Cognome, D.Citta From Impiegato as I, Dipartimento as D Where Dipartimento = D.Nome select X.A1 AS B1,... from R1 X, R2 Y, R1 Z where X.A2 = Y.A3 AND Utilita delle ridenominazioni Ridenominazioni e variabili Schema R1(A1,A2), R2 (A3,A4) REN B1,B2 A1,A4 ( PROJ A1,A4 (SEL A2 = A3 AND A4 = C1 ( R1 JOIN R2 JOIN REN C1,C2 A1,A2 (R1)))) Si puo tradurre in select X.A1 AS B1, Y.A4 AS B2 from R1 X, R2 Y, R1 Z where X.A2 = Y.A3 AND Y.A4 = Z.A1 In effetti una ridenominazione svolge in SQL il ruolo che le variabili svolgono nei linguaggi programmativi. Es.... From Impiegato I1, Impiegato I2... E come se fossero create due versioni diverse della stessa tabella Impiegato Per questa ragione useremo nel seguito per le ridenominazioni anche il termine variabili Gestione duplicati in SQL In SQL, al contrario dell algebra relzionale, la tabella finale mantiene eventuali tuple distinte duplicate. Quindi per eliminarle, occorre utilizzare la clausola DISTINC cognome e filiale di tutti gli impiegati Matricola Cognome Filiale Stipendio 7309 Neri Napoli Neri Milano Rossi Roma Rossi Roma 64 PROJ Cognome, Filiale (Impiegati)

16 select cognome, filiale from impiegati Cognome Neri Neri Rossi Rossi Filiale Napoli Milano Roma Roma Cognome Neri Neri Rossi select distinct cognome, filiale from impiegati Filiale Napoli Milano Roma 91 Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio Figlio Maria Olga Filippo Figlio Olga Filippo Persone Nome Età Reddito Maria Anna Filippo Olga Sergio Luisa Selezione, proiezione e join I padri di persone che guadagnano più di venti mila PROJ Padre (Paternita JOIN Figlio =Nome SEL Reddito>20 (persone)) Maternità Madre Figlio Persone Luisa Maria Nome Età Reddito Luisa Anna Olga Anna Filippo Maria Maria Anna Maria Filippo Paternità Padre Figlio Sergio Olga Olga Sergio Filippo Luisa Selezione, proiezione e join I padri di persone che guadagnano più di venti mila select distinct padre from persone, paternita where figlio = nome and reddito > 20 Risultato Maternità Madre Figlio Persone Luisa Maria Nome Età Reddito Luisa Anna Olga Anna Filippo Maria Maria Anna Maria Filippo Paternità Padre Figlio Sergio Olga Olga Sergio Filippo Luisa Join naturale Padre e madre di ogni persona Algebra: Paternita JOIN Maternita SQL select Paternita.figlio, padre, madre from Maternita, Paternita where Paternita.figlio = Maternita.figlio Maternità Madre Figlio Persone Luisa Maria Nome Età Reddito Luisa Anna Olga Anna Filippo Maria Maria Anna Maria Filippo Paternità Padre Figlio Sergio Olga Olga Sergio Filippo Luisa Le persone che guadagnano più dei rispettivi padri; mostrare nome, reddito e reddito del padre PROJ Nome, Reddito, RP (SEL Reddito>RP (REN NP,EP,RP Nome,Eta,Reddito (Persone) JOIN NP=Padre (paternita JOIN Figlio =Nome persone))) Maternità Madre Figlio Luisa Maria Luisa Anna Olga Anna Filippo Maria Maria Paternità Padre Figlio Sergio Olga Filippo Persone Nome Età Reddito Maria Anna Filippo Olga Sergio Luisa

17 Le persone che guadagnano più dei rispettivi padri; mostrare nome, reddito e reddito del padre select f.nome, f.reddito, p.reddito from persone p, paternita, persone f wherep.nome= padre and figlio = f.nome and f.reddito > p.reddito Maternità Madre Figlio Luisa Maria Luisa Anna Olga Anna Filippo Maria Maria Paternità Padre Figlio Sergio Olga Filippo Persone Nome Età Reddito Maria Anna Filippo Olga Sergio Luisa SELECT, con ridenominazione del risultato select figlio, f.reddito as reddito, p.reddito as redditopadre from persone p, paternita, persone f where p.nome = padre and figlio = f.nome and f.reddito > p.reddito 98 17

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

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia

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

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

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

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. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: "storia" Domini. CREATE TABLE, esempio

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL. Definizione dei dati in SQL. SQL: storia Domini. CREATE TABLE, esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 4: SQL 24/09/2002 originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

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 Cos'è SQL? Linguaggio di riferimento per le basi di dati relazionali

Dettagli

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011 Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse

Dettagli

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

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

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

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

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

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

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati Creazione di una tabella (1/3) Si utilizza

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio Coadiutore: Dott.ssa D. Nicotera PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare

Dettagli

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

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Argomenti della lezione SQL Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Figlio Olga Filippo Sergio Olga Filippo Persone

Dettagli

Operatori aggregati: COUNT

Operatori aggregati: COUNT Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato

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

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

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

Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte.

Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte. Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte 11/03/2005 Maternità Legami logici Paternità Madre Luisa Luisa Anna Anna Padre

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

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

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard SQL [1] Concetti essenziali di SQL 2 Il linguaggio SQL Uno dei principali motivi del successo delle basi di dati: è diventato uno standard Fornisce un interfaccia dichiarativa di alto livello, permettendo

Dettagli

Parte III. L algebra relazionale

Parte III. L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

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

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

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Gestione e Analisi dei Dati Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Vincoli sui Dati Regole del dominio di interesse Unicità di codici di corso e matricole Un codice deve corrispondere

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

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie: Tipi di linguaggi per basi di dati Si distinguono due categorie: DDL DML Linguaggi di definizione dei dati o data definition languages: utilizzati per definire gli schemi logici, esterni e fisici e le

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

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati 1 SQL Il nome stava per Structured Query Language Più che un semplice linguaggio di query: si compone di una parte DDL e di una DML DDL:

Dettagli

Introduzione Basi di Dati. Orazio Battaglia

Introduzione Basi di Dati. Orazio Battaglia Introduzione Basi di Dati Orazio Battaglia Introduzione basi di dati Ogni organizzazione è dotata di un sistema informativo che organizza e gestisce le informazioni necessarie per perseguire gli scopi

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operazioni di aggiornamento operazioni di inserimento: insert eliminazione: delete modifica: update di una o più ennuple di una

Dettagli

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Idoneita Informatica. Sistemi per la gestione di basi di Dati Idoneita Informatica Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari mauro.gaspari@unibo.it Rielaborazione delle slide del Dott. Matteo Magnani e del Dott. Nicola Dragoni 1 Sistema Informativo

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. Metodologie informatiche per le discipline umanistiche. SQL Database. SQL = Structured Query Language Linguaggio di Interrogazione Strutturato

SQL. Metodologie informatiche per le discipline umanistiche. SQL Database. SQL = Structured Query Language Linguaggio di Interrogazione Strutturato Metodologie informatiche per le discipline umanistiche SQL Database Coordinatore: Docenti: Prof. Paolo Nesi Prof. Paolo Nesi http://www.dsi.unifi.it/~nesi Dr. Emanuele Bellini ebellini@dsi.unifi.it 1 SQL

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

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

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL : fondamenti Linguaggio per gestire le basi di dati relazionali Structured Query Language SQL possiede istruzioni per definire lo schema di una base di dati relazionale leggere e scrivere i dati definire

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti

Dettagli

SQL. SQL (Structured Query Language) è un linguaggio di interrogazione per basi di dati relazionali

SQL. SQL (Structured Query Language) è un linguaggio di interrogazione per basi di dati relazionali SQL SQL (Structured Query Language) è un linguaggio di interrogazione per basi di dati relazionali Contiene funzionalità anche di Data Definition Language (DDL) e di Data Manipulation Language (DML) DDL:

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2016/2017 4 SQL : Structured Query Language Tiziana Catarci Ultimo aggiornamento : 22/02/2016 SQL : Structured

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti

Dettagli

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

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli Base di dati, tabella, ennupla, attributo, dominio Le Basi di Dati Relazionali Concetti Fondamentali Valori nulli Vincoli di chiave, di ennupla, di riferimento 2 Modello logico dei DBMS (Data Base Management

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

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

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

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

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 29/03/2014 SQL : Structured Query Language

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

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

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

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

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

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/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

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

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

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 D1.2 Selezione e proiezione 1 Prerequisiti Elementi di teoria degli insiemi Composizione di operazioni 2 1 Introduzione Oltre alle operazioni insiemistiche, può capitare

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

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

SQL aspetti essenziali SQL aspetti essenziali Sommario 2 Definizioni di dati e tipi di dato in SQL Specifica di vincoli in SQL Interrogazioni di base in SQL Istruzioni INSERT, DELETE, e UPDATE Funzionalità aggiuntive SQL 3 SQL

Dettagli

ESERCITAZIONE: Fornitore-Fornisce-Articolo

ESERCITAZIONE: Fornitore-Fornisce-Articolo ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : IL MODELLO RELAZIONALE I modelli logici dei dati Tre modelli logici tradizionali gerarchico reticolare relazionale Più recente (e

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio

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

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

Progettazione concettuale usando il modello Entità-Relazione (ER)

Progettazione concettuale usando il modello Entità-Relazione (ER) Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati

Dettagli

Dr. C. d'amat. SQL: cenni storici

Dr. C. d'amat. SQL: cenni storici SQL Dr. C. d'amat SQL: cenni storici 1973: presso il laboratorio di ricerca IBM di San Josè (California) viene sviluppato il sistema relazionale System/R. Si decide di utilizzare un linguaggio dichiarativo

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 Il Linguaggio SQL SQL (Structured Query Language) è di fatto lo standard tra i linguaggi per la gestione di basi di dati relazionali è un linguaggio dichiarativo (non-procedurale),

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

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

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

Basi di dati. Linguaggio SQL: fondamenti - Introduzione. Elena Baralis 2007 Politecnico di Torino 1 D B M G 2 D B M G D B M G 4 D B M G 6

Basi di dati. Linguaggio SQL: fondamenti - Introduzione. Elena Baralis 2007 Politecnico di Torino 1 D B M G 2 D B M G D B M G 4 D B M G 6 Linguaggio SQL: fondamenti Sistemi informativi Istruzione : fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 al linguaggio SQL Istruzioni

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

Basi di Dati. 3. Il Linguaggio SQL. Basi di Dati - A.A. 2003/2004 - Diego Calvanese 3. SQL - 1. Diego Calvanese SQL SQL-92

Basi di Dati. 3. Il Linguaggio SQL. Basi di Dati - A.A. 2003/2004 - Diego Calvanese 3. SQL - 1. Diego Calvanese SQL SQL-92 Università di Roma La Sapienza Laurea in Ingegneria Informatica Basi di Dati Anno Accademico 2003/2004 Canale M-Z Diego Calvanese Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di

Dettagli

3 SQL : Interrogazioni

3 SQL : Interrogazioni 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

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

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

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

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

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

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL 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

Dettagli

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Laboratorio di Basi di Dati Esercizio 8.4/9.1 Laboratorio di Basi di Dati Esercizio 8.4/9.1 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs S.p.A. R&D Department

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : ALGEBRA E CALCOLO RELAZIONALE Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi 34 45 5998 Bianchi 37 38 9553 Neri 42 35 5698

Dettagli

Interrogazioni in SQL

Interrogazioni in SQL Interrogazioni in SQL Corso di Basi di Dati 4 dicembre 2013 1 Interrogazioni sullo schema aziendale 1. Ottenere i nomi dei dipartimenti dislocati in piú sedi. 2. Ottenere il numero di supervisori. 3. Produrre

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

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

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

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

Linguaggio SQL. Prof. Giuseppe Tandoi

Linguaggio SQL. Prof. Giuseppe Tandoi Caratteristiche generali SQL è uno strumento per organizzare gestire recuperare dati memorizzati in DataBase organizzati su base Relazionale. Caratteristiche generali SQL è l'acronimo di Structured Query

Dettagli