Richiami sul linguaggio SQL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Richiami sul linguaggio SQL"

Transcript

1 Richiami sul linguaggio SQL Sistemi Informativi Avanzati Anno Accademico 2012/2013 Corso di Laurea Magistrale in Ingegneria Gestionale Reggio Emilia, 8 marzo 2013 UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA

2 Il linguaggio SQL SQL è il linguaggio standard de facto per DBMS relazionali SEQUEL: Structured English Query Language Ossia un linguaggio di interrogazione dei dati con sintassi molto vicina alla lingua inglese SQL è un linguaggio dichiarativo (non- procedurale), ovvero non specifica la sequenza di operazioni da compiere per ottenere il risultato relazionalmente completo Il modello dei dati di SQL è basato su tabelle anziché relazioni: Possono essere presenti righe (tuple) duplicate

3 Il linguaggio SQL: Struttura Si divide in tre sottoinsiemi: Data Definition Language (DDL) - permette di creare e cancellare database o di modificarne la struttura Es: CREATE, DROP, ALTER Data Manipulation Language (DML) - permette di inserire, cancellare e modificare i dati Es: SELECT, INSERT, UPDATE, DELETE Data Control Language (DCL) - permette di gestire gli utenti e i permessi Es: GRANT, REVOKE

4 Data Definition Language Il DDL di SQL permette di definire schemi di relazioni TABLE specificare vincoli ROW definire nuovi domini, oltre a quelli predefiniti (Per vincoli e domini si può anche fare uso del DML) definire viste VIEW efficientemente ai dati Le istruzioni principali sono: CREATE: per creare nuovi database, tabelle, indici, o viste. DROP: per cancellare esistenti database, tabelle, indici, o viste. ALTER: per modificare un oggetto esistente nel database. TRUNCATE: per svuotare irreversibilmente una tabella.

5 CREATE TABLE Consente di creare una nuova tabella specificando uno o più campi accompagnati dal rispettivo tipo di dato. CREATE TABLE <tabella> ( <campo> <tipo> [ NULL NOT NULL ] [ <chiave> ] [ <vincolo> ], <campo> <tipo> [ NULL NOT NULL ] [ <chiave> ] [ <vincolo> ],... ) Tabella: nome della tabella Campo: nome di una colonna della tabella Tipo: specifica il tipo di dati della colonna (campo) NULL NOT NULL: opzionale, indica se il campo ammette valori nulli o meno Chiave: opzionale, indica che il campo è una chiave (primary key o foreign key) della tabella Vincolo: vincoli aggiuntivi (e opzionali) ai campi

6 CREATE TABLE: Tipi di Dato (SQL Server 2005) Tipi di dati per SQL SERVER 2005 DATI NUMERICI ESATTI Int: Ammette i valori da a Numeric (p,s): Possono avere valori compresi tra 10 ^38 +1 e - 10^38-1. p - è la precisione, che rappresenta il numero massimo di cifre decimali che possono essere memorizzate (da entrambe le parti della virgola). Il massimo della precisione è 28 cifre. s - è la scala, che rappresenta il numero di massimo di cifre decimali dopo la virgola e deve essere minore od uguale alla precisione. BIT: Tipo di dati integer che può accettare un valore di 1, 0 o NULL

7 CREATE TABLE: Tipi di Dato (SQL Server 2005) DATI NUMERICI APPROSSIMATI: Tipi di dati numerici approssimati da utilizzare con dati numerici a virgola mobile. I dati a virgola mobile sono approssimati. Pertanto, non tutti i valori nell'intervallo del tipo di dati possono essere rappresentati in modo esatto. Float (n): il valore n (compreso tra 1 e 53) indica la precisione e le dimensioni di archiviazione. Valore n Precisione Archiviazione cifre 4 byte cifre 8 byte Real: dato numerico ad archiviazione a 4 byte Tipo di dato Intervallo Archiviazione FLOAT Da - 1,79E+308 a - 2,23E- 308, 0 e da 2,23E- 308 a 1,79E byte REAL Da - 3,40E + 38 a - 1,18E - 38, 0 e da 1,18E - 38 a 3,40E byte

8 CREATE TABLE: Tipi di Dato (SQL Server 2005) DATI CARATTERE Char (n): dati carattere. Ha una lunghezza fissa (n) e può contenere fino ad 8000 caratteri ANSI Varchar (n): dati carattere. Come il tipo Char può contenere fino a 8000 caratteri ANSI, ma ha una lunghezza variabile DATI TEMPORALI Datetime: Dati ora e data. Ammette valori compresi tra il 1 gennaio 1753 al 31 dicembre 9999 (precisione al trecentesimo di secondo) Esempio creazione tabella: CREATE TABLE T_SEDI_REGIONALI( CODICE_SEDE_REGIONALE INT NOT NULL PRIMARY KEY, ) SIGLA_REGIONE varchar(3) NOTNULL, DENOMINAZIONE varchar(60),

9 Campo IDENTITY Indica che la nuova colonna è una colonna Identity: quando si aggiunge una nuova riga alla tabella, viene assegnato automaticamente un valore univoco e incrementale alla colonna. È possibile creare una sola colonna Identity per ogni tabella. IDENTITY (<seed>,<increment>) Seed: Valore utilizzato per la prima riga caricata nella tabella. Increment: Valore incrementale aggiunto al valore Identity della riga caricata in precedenza. È necessario specificare sia il valore di inizializzazione, sia l'incremento oppure nessuno dei due per impostare di default (1,1) CREATE TABLE nomi_dipendenti( id int IDENTITY (1,1) PRIMARY KEY, nome varchar (80) )

10 Campo IDENTITY Osservazioni: Se una colonna Identity si trova in una tabella in cui vengono eseguite spesso eliminazioni, è possibile che la sequenza di valori Identity presenti interruzioni. SET IDENTITY_INSERT ON. SET IDENTITY_INSERT nomi_dipendenti ON [..codice di inserimento..] SET IDENTITY_INSERT nomi_dipendenti OFF La proprietà IDENTITY_INSERT può essere impostata su ON per una sola tabella di una sessione. Per questo Se il valore immesso è maggiore del valore Identity corrente per la tabella, il nuovo valore viene utilizzato automaticamente come valore Identity corrente (rif. esempio)

11 ELIMINAZIONE DATI DROP TABLE: Comando utilizzato per eliminare una tabella e tutti i dati in essa contenuti DROP TABLE <nome tabella> Con l'eliminazione di una tabella, le regole o i valori predefiniti della tabella vengono disassociati e i vincoli associati alla tabella vengono eliminati automaticamente. Se la tabella viene ricreata, è necessario associare nuovamente le regole e i valori predefiniti appropriati e aggiungere tutti i vincoli necessari, perché il DROP TABLE è un processo non reversibile. DELETE: Elimina alcune righe da una tabella. DELETE FROM T_CODICI_MISURA WHERE CODICE = 2 T_CODICI_MISURA CODICE DESCRIZIONE 1 Lavoro Autonomo 2 Microimpresa 3 Franchising T_CODICI_MISURA CODICE DESCRIZIONE 1 Lavoro Autonomo 3 Franchising Se non viene specificata alcuna clausola WHERE, DELETE rimuove tutte le righe rollback spazio di storage dei dati.

12 ELIMINAZIONE DATI TRUNCATE TABLE: Rimuove tutte le righe da una tabella. TRUNCATE TABLE è simile all'istruzione DELETE senza clausola WHERE, ma non è possibile fare il rollback. Per questo è più veloce rispetto alla DELETE (non utilizza spazio di undo come la DELETE). Utilizzando la DROP STORAGE option, viene eliminato lo spazio di storage dei dati. T_CODICI_MISURA ES: TRUNCATE TABLE T_CODICI_MISURA CODICE DESCRIZIONE 1 Lavoro Autonomo 2 Microimpresa 3 Franchising T_CODICI_MISURA CODICE DESCRIZIONE OSSERVAZIONI: Se si eliminano tutte le righe di una tabella con DELETE o TRUNCATE TABLE, la tabella continua a esistere fino a quando non viene eliminata Le istruzioni DELETE e TRUNCATE TABLE possono avere esito negativo se tentano di rimuovere una riga a cui fanno riferimento i dati di un'altra tabella contenente un vincolo FOREIGN KEY

13 Data Manipulation Language Data Manipulation Language (DML) è un linguaggio di programmazione che consente di leggere, inserire, modificare o eliminare i dati in un database. Le istruzioni principali del DML di SQL sono SELECT: esegue interrogazioni (query) sul DB INSERT: inserisce nuove tuple nel DB DELETE: cancella tuple dal DB UPDATE: modifica tuple del DB

14 Il caso di esempio (1/3) strutturata: T_TITOLI_STUDIO T_CODICI_MISURA T_SEDI_REGIONALI CODICE DESCRIZIONE int varchar(50) <pk> CODICE DESCRIZIONE int varchar(50) <pk> CODICE_SEDE_REGIONALE SIGLA_REGIONE DENOMINAZIONE int varchar(3) varchar(60) <pk> CODICE = TITOLO_STUDIO CODICE = MISURA CODICE_SEDE_REGIONALE = SEDE_REGIONALE_COMPETENTE T_AUTENTICAZIONI CODICE_PROPONENTE bigint CODICE_FISCALE varchar(16) COGNOME varchar(70) NOME varchar(70) DATA_REGISTRAZIONE varchar(255) SESSO varchar(1) TITOLO_STUDIO int <pk> <fk> T_DATI_AMMISSIONE PROTOCOLLO INVESTIMENTO_AMMESSO GESTIONE_AMMESSO DATA_DELIBERA CAPITALE_AMMESSO MUTUO_AMMESSO COSTO_ASSISTENZA_TECNICA DATA_REVOCA varchar(7) float(15) float(15) varchar(255) float(15) float(15) float(15) varchar(255) <pk,fk> T_DOMANDE PROTOCOLLO CODICE_PROPONENTE = CODICE_PROPONENTE CODICE_PROPONENTE MISURA CODICE_STATO DATA_RICEZIONE SEDE_REGIONALE_COMPETENTE varchar(7) bigint int varchar(3) varchar(255) int <pk> <fk1> <fk3> <fk2> PROTOCOLLO = PROTOCOLLO

15 Il caso di esempio (2/3) T_AUTENTICAZIONI CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 T_DOMANDE PROTOCOLLO CODICE_ PROPONENTE MISURA CODICE_ STATO DATA_ RICEZIONE SEDE_REGIONALE_C OMPETENTE E1A 12/02/ E1B 21/03/ E1A 05/02/ T_DATI_AMMISSIONE PROTOCOLLO INVESTIMENTO_ AMMESSO GESTIONE_ AMMESSO DATA_ DELIBERA CAPITALE_ AMMESSO MUTUO_ AMMESSO DATA_REVOCA , ,57 09/09/ , , ,57 03/03/ , , ,57 03/03/ , ,28 29/12/2007

16 Il caso di esempio (3/3) T_SEDI_REGIONALI CODICE_SEDE_R EGIONALE SIGLA_ REGIONE DENOMINAZIONE 1 ABR Sviluppo Italia Abruzzo 2 BAS Sviluppo Italia Basilicata 3 CAL Sviluppo Italia Calabria 4 CAM Sviluppo Italia Campania 5 FRI Sviluppo Italia Friuli Venezia Giulia 6 LAZ Sviluppo Italia S.p.A. - Unita Lazio 7 LIG Sviluppo Italia Liguria 8 MAR Sviluppo Italia Marche 9 MOL Sviluppo Italia Molise 10 PUG Sviluppo Italia Puglia 11 SAR Sviluppo Italia Sardegna 12 SIC Sviluppo Italia Sicilia 13 TOS Sviluppo Italia Toscana 14 UMB B.I.C. Umbria 15 VEN Sviluppo Italia Veneto 16 EMI Sviluppo Italia Emilia Romagna T_TITOLI_STUDIO CODICE DESCRIZIONE 1 SCUOLA ELEMENTARE 2 SCUOLA MEDIA INFERIORE 3 SCUOLA MEDIA SUPERIORE 4 SCUOLA FINI SPECIALISTICI 5 LAUREA BREVE 6 LAUREA 7 CORSI POST LAUREA \ MASTER T_CODICI_MISURA CODICE DESCRIZIONE 1 Lavoro Autonomo 2 Microimpresa 3 Franchising 17 PIE Sviluppo Italia Piemonte 19 LOM Sviluppo Italia Lombardia 90 LAZ Sviluppo Italia S.p.A. - Sede centrale 99 LAZ Sviluppo Italia S.p.A. - Funzione Franchising

17 Il linguaggio SQL Data Manipulation Language

18 SELECT La clausola SELECT viene utilizzata per le interrogazioni (query) delle basi dati relazionali. La sintassi (presa dal manuale di Microsoft SQL Server): SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC DESC ] ] Esempio: SELECT COGNOME, NOME, SESSO FROM T_AUTENTICAZIONI COGNOME NOME SESSO SCAVOLINI ANDREA M BONOLI BARBARA F GHEDINI MATTEO M

19 WHERE La SELECT list definisce cosa si vuole come risultato La clausola FROM indica da dove si prendono i dati La clausola WHERE indica quali condizioni deve soddisfare Esempio: SELECT COGNOME, NOME, SESSO FROM T_AUTENTICAZIONI COGNOME NOME SESSO SCAVOLINI ANDREA M GHEDINI MATTEO M Se si vogliono tutti gli attributi si utilizza la target list speciale * SELECT * FROM T_AUTENTICAZIONI WHERE SESSO='M' CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3

20 Tabelle vs. Relazioni: DISTINCT Il risultato di una query SQL può contenere righe duplicate: SELECT SESSO FROM T_AUTENTICAZIONI SESSO M M F DISTINCT nella SELECT list: SELECT DISTINCT SESSO FROM T_AUTENTICAZIONI SESSO M F

21 Tabelle vs. Relazioni: ORDER BY ordinamento ha senso SELECT * FROM T_AUTENTICAZIONI CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 Con ordinamento utilizzo la clausola ORDER BY SELECT * FROM T_AUTENTICAZIONI ORDER BY SESSO DESC, COGNOME ASC CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F 3

22 Espressioni nella clausola SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: SELECT PROTOCOLLO, CAPITALE_AMMESSO*2 FROM T_DATI_AMMISSIONE PROTOCOLLO (Si noti che in questo caso la seconda colonna non ha un nome) , , ,44 È possibile associare un nome a piacere ad ogni elemento della SELECT list mediante la parola chiave AS: SELECT PROTOCOLLO, CAPITALE_AMMESSO*2 AS CAPITALE_DOPPIO FROM T_DATI_AMMISSIONE PROTOCOLLO CAPITALE_DO PPIO (La parola chiave AS può anche essere omessa) , , ,44

23 Pseudonimi Per chiarezza, ogni nome di colonna può essere scritto prefissandolo con il nome della tabella: SELECT T_DATI_AMMISSIONE.PROTOCOLLO, T_DATI_AMMISSIONE.CAPITALE_AMMESSO*2 AS CAPITALE_DOPPIO FROM T_DATI_AMMISSIONE si può anche usare uno pseudonimo (alias) in luogo del nome della tabella: SELECT d.protocollo, d.capitale_ammesso*2 AS CAPITALE_DOPPIO FROM T_DATI_AMMISSIONE AS d Anche qui la parola chiave AS può anche essere omessa.

24 Utenze e Database In generale ogni tabella può essere indirizzata come: database.utente.tabella Es: CORSO_SQL.dbo.T_DATI_AMMISSIONE ove CORSO_SQL è il database e dbo NB: questo è molto importante quando si utilizzano utenze che non sono system administrator (che non hanno i diritti di dbo) Es: automaticamente creata come andrea.t_dati_ammissione se interrogo la base dati con un utenza system administrator: SELECT * FROM T_DATI_AMMISSIONE genererà un errore perché SQL cercherebbe la tabella dbo.t_dati_ammissione che non esiste! Va quindi specificato: SELECT * FROM andrea.t_dati_ammissione

25 Operatori di Confronto Gli operatori di confronto servono a determinare uguaglianze e disuguaglianze tra valori e ad effettuare ricerche all'interno dei dati: = Esprime uguaglianza tra due valori numerici LIKE Esprime somiglianza tra due valori letterali < Stabilisce se un valore è minore di un altro > Stabilisce se un valore è maggiore di un altro <= Stabilisce se un valore è minore o uguale di un altro >= Stabilisce se un valore è maggiore o uguale di un altro!= Stabilisce se due valori sono diversi tra loro BETWEEN Recupera un valore compreso tra due valori IN Stabilisce se un valore è contenuto in una lista di valori possibili EXISTS Stabilisce se un determinato record esiste

26 Operatori Logici Gli operatori logici di SQL sono AND (e), OR (o, oppure) e NOT (non); possono essere ripetuti più volte all'interno dell'elenco delle condizioni di ricerca. L'operatore logico AND, che lega due (o più) condizioni, serve ad indicare alla ricerca di restituire tutte le tuple per le quali le due (o più) condizioni espresse sono tutte vere contemporaneamente. L'operatore logico OR, che lega due (o più) condizioni, serve ad indicare alla ricerca di restituire tutte le tuple per le quali anche soltanto una delle due (o più) condizioni espresse è vera. L'operatore NOT inverte il valore ad esso associato: se è vero restituisce un valore falso, mentre se è falso restituisce un valore vero. L'uso delle parentesi tonde ( ) all'interno dell'elenco delle condizioni di ricerca consente di combinare condizioni differenti utilizzando entrambi i tipi di operatori logici per creare condizioni complesse.

27 Operatore LIKE LIKE wildcard _ (un carattere arbitrario) e % (una stringa pattern In parole povere _ indica un qualsiasi carattere, % un qualsiasi insieme di caratteri Esempio: SELECT NOME FROM T_AUTENTICAZIONI WHERE NOME LIKE '%A' NOME ANDREA BARBARA Esempio: SELECT NOME FROM T_AUTENTICAZIONI WHERE NOME LIKE '%E_' NOME ANDREA MATTEO

28 Operatore BETWEEN BETWEEN permette di esprimere condizioni di appartenenza a un intervallo Es: Protocollo e investimento ammesso delle domande che hanno un investimento ammesso tra e (estremi inclusi) SELECT PROTOCOLLO, INVESTIMENTO_AMMESSO FROM T_DATI_AMMISSIONE WHERE INVESTIMENTO_AMMESSO BETWEEN AND PROTOCOLLO INVESTIMENTO_AM MESSO ,

29 Operatore IN IN permette di esprimere condizioni di appartenenza a un insieme SELECT * FROM T_AUTENTICAZIONI WHERE NOME IN ('Matteo', 'Barbara') CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 Lo stesso risultato si ottiene scrivendo: SELECT * FROM T_AUTENTICAZIONI WHERE NOME ='Matteo' OR NOME='Barbara'

30 Valore NULL Fate attenzione ai valori nulli! Es: STIPENDI NOME STIPENDIO Andrea 400 Carlo 300 Luca NULL Davide 1000 SELECT * FROM STIPENDI WHERE STIPENDIO<500 NOME STIPENDIO Andrea 400 Carlo 300 I valori NULL vengono eliminati dagli operatori di confronto!

31 Is NULL Quindi se vorrei tutti gli stipendi minori di 500 o non valorizzati: Es: STIPENDI NOME STIPENDIO Andrea 400 Carlo 300 Luca NULL Davide 1000 SELECT * FROM STIPENDI WHERE STIPENDIO<500 OR STIPENDIO IS NULL NOME STIPENDIO Andrea 400 Carlo 300 Luca NULL Se volessi tutti quelli non nulli SELECT * FROM STIPENDI WHERE STIPENDIO IS NOT NULL NOME STIPENDIO Andrea 400 Carlo 300 Davide 1000

32 Il caso di esempio T_AUTENTICAZIONI CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 T_DOMANDE PROTOCOLLO CODICE_ PROPONENTE MISURA CODICE_ STATO DATA_ RICEZIONE SEDE_REGIONALE_C OMPETENTE E1A 12/02/ E1B 21/03/ E1A 05/02/

33 JOIN implicito JOIN di più tabelle. La più usata è il JOIN implicito: SELECT d.protocollo, d. DATA_RICEZIONE, a.cognome, a.nome FROM T_DOMANDE d, T_AUTENTICAZIONI a WHERE a.codice_proponente=d.codice_proponente PROTOCOLLO DATA_ RICEZIONE COGNOME NOME Che si interpreta come segue: /03/2007 BONOLI BARBARA Si esegue il prodotto Cartesiano (tutte le combinazioni) tra le tabelle T_DOMANDE e T_AUTENTICAZIONI Si applicano i predicati della clausola WHERE Si estraggono le colonne della SELECT list Il predicato a.codice_proponente=d.codice_proponente è detto predicato di join, in quanto stabilisce il criterio con cui le tuple di T_DOMANDE e di T_AUTENTICAZIONI devono essere combinate

34 JOIN: osservazione Se le due tabelle contengono colonne con lo stesso nome, è obbligatorio anteporre lo pseudonimo (ad esempio per PROTOCOLLO): SELECT d.protocollo, d. DATA_RICEZIONE, a.cognome, a.nome FROM T_DOMANDE d, T_AUTENTICAZIONI a WHERE a.codice_proponente=d.codice_proponente PROTOCOLLO DATA_ RICEZIONE COGNOME NOME /03/2007 BONOLI BARBARA /02/2007 SCAVOLINI ANDREA /02/2007 GHEDINI MATTEO

35 INNER JOIN Anziché scrivere i predicati di join nella clausola WHERE, è possibile ottenere una joined table direttamente nella clausola FROM. SELECT d.protocollo, d. DATA_RICEZIONE, a.cognome, a.nome FROM T_DOMANDE d JOIN T_AUTENTICAZIONI a ON a.codice_proponente=d.codice_proponente PROTOCOLLO DATA_ RICEZIONE COGNOME NOME /03/2007 BONOLI BARBARA /02/2007 SCAVOLINI ANDREA /02/2007 GHEDINI MATTEO

36 INNER JOIN Anziché scrivere i predicati di join nella clausola WHERE, è possibile ottenere una joined table direttamente nella clausola FROM. SELECT d.protocollo, d. DATA_RICEZIONE, a.cognome, a.nome FROM T_DOMANDE d JOIN T_AUTENTICAZIONI a ON a.codice_proponente=d.codice_proponente WHERE a.nome='barbara' PROTOCOLLO DATA_ RICEZIONE COGNOME NOME /03/2007 BONOLI BARBARA in cui JOIN si può anche scrivere INNER JOIN Il predicato a.codice_proponente=d.codice_proponente è detto predicato di join, in quanto stabilisce il criterio con cui le tuple di T_DOMANDE e di T_AUTENTICAZIONI devono essere combinate

37 LEFT JOIN Supponiamo di avere le tabelle: T_CODICI_MISURA T_FONDI CODICE DESCRIZIONE CODICE FONDO 1 Lavoro Autonomo Microimpresa Franchising 4 0 Se voglio tutti I codici misura (anche quelle senza fondo): SELECT a.codice, a.descrizione, b.fondo FROM T_CODICI_MISURA a LEFT [OUTER] JOIN T_FONDI b ON a.codice=b.codice CODICE DESCRIZIONE FONDO 1 Lavoro Autonomo Microimpresa NULL 3 Franchising 4745

38 LEFT JOIN con clausola WHERE Supponiamo di avere le tabelle: T_CODICI_MISURA T_FONDI CODICE DESCRIZIONE CODICE FONDO 1 Lavoro Autonomo Microimpresa Franchising 4 0 Se voglio solo i codici misura senza un fondo corrispondente: SELECT a.codice, a.descrizione, b.fondo FROM T_CODICI_MISURA a LEFT [OUTER] JOIN T_FONDI b ON a.codice=b.codice WHERE b.codice is null CODICE DESCRIZIONE FONDO 2 Microimpresa NULL

39 FULL JOIN Supponiamo di avere le tabelle: T_CODICI_MISURA T_FONDI CODICE DESCRIZIONE CODICE FONDO 1 Lavoro Autonomo Microimpresa Franchising 4 0 Se voglio tutti gli incroci: SELECT a.codice as A_COD, b. CODICE as B_COD, a.descrizione, b.fondo FROM T_CODICI_MISURA a FULL [OUTER] JOIN T_FONDI b ON a.codice=b.codice A_COD B_COD DESCRIZIONE FONDO 1 1 Lavoro Autonomo NULL Microimpresa NULL 3 3 Franchising 4745 NULL 4 NULL 0

40 FULL JOIN con clausola WHERE Supponiamo di avere le tabelle: T_CODICI_MISURA T_FONDI CODICE DESCRIZIONE CODICE FONDO 1 Lavoro Autonomo Microimpresa Franchising 4 0 Se voglio il risultato complementare della inner join: SELECT a.codice as A_COD, B.CODICE as B_COD, a.descrizione, b.fondo FROM T_CODICI_MISURA a FULL [OUTER] JOIN T_FONDI b ON a.codice=b.codice WHERE a.codice IS NULL or b.codice IS NULL A_COD B_COD DESCRIZIONE FONDO 2 NULL Microimpresa NULL NULL 4 NULL 0

41 Subquery flat si basano sul risultato di altre interrogazioni (subquery, o query innestate o query nidificate) SELECT * FROM T_AUTENTICAZIONI WHERE CODICE_PROPONENTE IN (SELECT CODICE_PROPONENTE FROM T_DOMANDE WHERE MISURA=2) CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 Equivalente a: SELECT * FROM T_AUTENTICAZIONI WHERE CODICE_PROPONENTE IN ('88115', '88122')

42 Subquery vs. JOIN Quando possibile è bene usare JOIN al posto di query innestate: SELECT * FROM T_AUTENTICAZIONI WHERE CODICE_PROPONENTE IN ( SELECT CODICE_PROPONENTE FROM T_DOMANDE WHERE MISURA=2 ) Equivalente a: SELECT DISTINCT a.* FROM T_AUTENTICAZIONI a JOIN T_DOMANDE d ON a.codice_proponente=d.codice_proponente WHERE MISURA=2 Si noti la presenza del DISTINCT può risultare più semplice da derivare

43 Operatori Insiemistici differenza di tabelle Ciò che si può fare è combinare in modo opportuno i risultati di due istruzioni SELECT, mediante gli operatori UNION, INTERSECT, EXCEPT In tutti i casi gli elementi delle SELECT list devono avere tipi compatibili e gli Il risultato è in ogni caso privo di duplicati, per mantenerli occorre UNION ALL, INTERSECT ALL, EXCEPT ALL

44 INSERT: caso singolo È possibile inserire una nuova tupla specificandone i valori INSERT INTO T_AUTENTICAZIONI(CODICE_PROPONENTE, CODICE_FISCALE, COGNOM, NOME, DATA_REGISTRAZIONE, SESSO, TITOLO_STUDIO) VALUES ('88110', 'SCVNDR79B23G479H', 'SCAVOLINI', 'ANDREA', '24/01/2007', 'M', 6) Ci deve essere corrispondenza tra attributi e valori sono stati definiti Se la lista non include tutti gli attributi, i restanti assumono valore NULL (se ammesso) o il valore di default (se specificato) INSERT INTO T_AUTENTICAZIONI(CODICE_PROPONENTE, CODICE_FISCALE, COGNOM, NOME) VALUES ('88110', 'SCVNDR79B23G479H', 'SCAVOLINI', 'ANDREA')

45 INSERT: caso multiplo È possibile anche inserire le tuple che risultano da una query INSERT INTO SediBologna (SedeBO,Resp) SELECT Sede, Responsabile FROM Sedi WHERE Citta = 'Bologna' Valgono ancora le regole viste per il caso singolo Gli schemi del risultato e della tabella in cui si inseriscono le tuple possono tipi delle colonne siano compatibili

46 UPDATE UPDATE modifica i dati esistenti in una tabella. Può fare uso di una condizione per specificare le tuple da modificare e di espressioni per determinare i nuovi valori: UPDATE <nome tabella> SET <colonne o variabili da aggiornare> WHERE <condizioni delle righe da aggiornare> Se non viene specificata una clausola WHERE, verranno aggiornate tutte le righe della tabella La condizione di ricerca della clausola WHERE viene valutata per ogni riga della tabella prima dell'aggiornamento di qualsiasi riga Se un aggiornamento di una riga viola un vincolo, una regola o l'impostazione Null per la colonna oppure il nuovo valore è incompatibile con il tipo di dati, viene annullata l'istruzione, viene restituito un errore e non viene aggiornato alcun record. ES: UPDATE T_AUTENTICAZIONI SET NOME = 'Baby' WHERE COGNOME = 'Bonoli'

47 Il linguaggio SQL Raggruppamenti

48 Raggruppamenti Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente ottenute mediante operazioni di join) In molti casi è viceversa utile ottenere dal DB informazioni (di sintesi) che A tale scopo SQL mette a disposizione due strumenti di base: Funzioni aggregate Clausola di raggruppamento: GROUP BY

49 Funzioni Aggregate Lo standard SQL mette a disposizione una serie di funzioni aggregate MIN minimo MAX massimo SUM somma AVG media aritmetica STDEV deviazione standard VARIANCE varianza COUNT contatore Es: SELECT SUM(MUTUO_AMMESSO) AS MUTUO_AMMESSO_TOTALE FROM T_DATI_AMMISSIONE MUTUO_AMMESSO_TOTALE 36576,35 Tutte le funzioni, ad eccezione di COUNT, ignorano i valori nulli Il risultato è NULL se tutti i valori sono NULL DISTINCT considera solo i valori distinti

50 Funzioni aggregate e Raggruppamento I valori di sintesi calcolati dalle funzioni aggregate si riferiscono a tutte le tuple che soddisfano le condizioni delle clausola WHERE In molti casi è viceversa opportuno fornire tali valori per gruppi omogenei di tuple (es: le domande di una stessa misura) La clausola GROUP BY serve a definire tali gruppi, specificando una o più colonne (di raggruppamento) sulla base della/e quale/i le tuple sono raggruppate per valori uguali SELECT DATA_DELIBERA, SUM(MUTUO_AMMESSO) AS MUTUO_AMMESSO_TOTALE FROM T_DATI_AMMISSIONE WHERE DATA_REVOCA IS NULL GROUP BY DATA_DELIBERA DATA_ DELIBERA MUTUO_ AMMESSO_ TOTALE 09/09/ ,79 03/03/ ,56

51 GROUP BY: spiegazione 1. Si considerano solo le tuple che soddisfano la clausola WHERE: WHERE DATA_REVOCA IS NULL PROTOCOLLO INVESTIMENTO_AM MESSO GESTIONE_A MMESSO DATA_ DELIBERA CAPITALE_A MMESSO MUTUO_ AMMESSO DATA_REVOCA , ,57 09/09/ , ,79 NULL ,57 03/03/ , ,28 NULL ,57 03/03/ , ,28 29/12/ ,57 03/03/ , ,28 NULL PROTOCOLLO INVESTIMENTO_AM MESSO GESTIONE_A MMESSO DATA_ DELIBERA CAPITALE_A MMESSO MUTUO_ AMMESSO DATA_REVOCA , ,57 09/09/ , ,79 NULL ,57 03/03/ , ,28 NULL ,57 03/03/ , ,28 NULL

52 GROUP BY: spiegazione 2. Si raggruppano le tuple per valori uguali della/e colonna/e presenti nella clausola GROUP GROUP BY DATA_DELIBERA PROTOCOLLO INVESTIMENTO_AM MESSO GESTIONE_A MMESSO DATA_ DELIBERA CAPITALE_A MMESSO MUTUO_ AMMESSO DATA_REVOCA , ,57 09/09/ , ,79 NULL ,57 03/03/ , ,28 NULL ,57 03/03/ , ,28 NULL 3. infine a ciascun gruppo si applica la funzione aggregata SELECT DATA_DELIBERA, SUM(MUTUO_AMMESSO) AS MUTUO_AMMESSO_TOTALE DATA_ DELIBERA MUTUO_ AMMESSO_TO TALE 09/09/ ,79 03/03/ ,56

53 Raggruppamento e DISTINCT Quando la SELECT list include solo le colonne di raggruppamento, il tutto è equivalente a ciò T_AUTENTICAZIONI CODICE_ PROPONENTE CODICE_FISCALE COGNOME NOME DATA_ REGISTRAZIONE SESSO TITOLO_ STUDIO SCVNDR79B23G479H SCAVOLINI ANDREA 24/01/2007 M BNLBRB79J12G499K BONOLI BARBARA 20/01/2007 F GDNMTT78A12AD54L GHEDINI MATTEO 12/04/2006 M 3 SELECT TITOLO_STUDIO FROM T_AUTENTICAZIONI GROUP BY TITOLO_STUDIO TITOLO_ STUDIO SELECT DISTINCT TITOLO_STUDIO FROM T_AUTENTICAZIONI 3 6

54 Condizioni sui gruppi Oltre a poter formare dei gruppi, è anche possibile selezionare dei gruppi sulla base di loro SELECT DATA_DELIBERA, SUM(MUTUO_AMMESSO) AS MUTUO_AMMESSO_TOTALE FROM T_DATI_AMMISSIONE WHERE DATA_REVOCA IS NULL GROUP BY DATA_DELIBERA HAVING COUNT(*)>1 PROTOCOLLO INVESTIMENTO_A MMESSO GESTIONE_ AMMESSO DATA_ DELIBERA CAPITALE_ AMMESSO MUTUO_ AMMESSO DATA_REVOCA COUNT(*)=1 COUNT(*)= , ,57 09/09/ , ,79 NULL ,57 03/03/ , ,28 NULL ,57 03/03/ , ,28 NULL DATA_ DELIBERA MUTUO_ AMMESSO_TOTALE La clausola HAVING ha per i gruppi una funzione simile a quella che la clausola WHERE ha per le tuple (attenzione a non confonderle!) 03/03/ ,56

55 GROUP BY: osservazioni NB: in una query con GROUP BY le clausole SELECT e HAVING possono contenere solo: Funzioni aggregate Attributi di aggregazione (gli attributi su cui si raggruppa il risultato) Se si volessero selezionare altri attributi le alternative sono quindi: Aggregare quegli attributi con una funzione aggrata Aggiungere quegli attributi (ridondanti) nella clausola GROUP BY Esempio: voglio selezionare anche il dettaglio di GESTIONE_AMMESSO che so essere lo stesso per le domande deliberate nello stesso giorno. SELECT DATA_DELIBERA, MAX(GESTIONE_AMMESSO), SUM(MUTUO_AMMESSO) FROM T_DATI_AMMISSIONE WHERE DATA_REVOCA IS NULL GROUP BY DATA_DELIBERA SELECT DATA_DELIBERA, GESTIONE_AMMESSO, SUM(MUTUO_AMMESSO) FROM T_DATI_AMMISSIONE WHERE DATA_REVOCA IS NULL GROUP BY DATA_DELIBERA, GESTIONE_AMMESSO

56 GROUP BY: esempi Totale Gestione ammesso per stato della domanda: SELECT CODICE_STATO, SUM(GESTIONE_AMMESSO) FROM T_DATI_AMMISSIONE a JOIN T_DOMANDE d ON a.protocollo=d.protocollo GROUP BY CODICE_STATO Totale Gestione ammesso per data ricezione: SELECT DATA_RICEZIONE, SUM(GESTIONE_AMMESSO) FROM T_DATI_AMMISSIONE a JOIN T_DOMANDE d ON a.protocollo=d.protocollo GROUP BY DATA_RICEZIONE Totale Gestione ammesso per stato della domanda e data ricezione: SELECT CODICE_STATO, DATA_RICEZIONE, SUM(GESTIONE_AMMESSO) FROM T_DATI_AMMISSIONE a JOIN T_DOMANDE d ON a.protocollo=d.protocollo GROUP BY CODICE_STATO, DATA_RICEZIONE

57 Il linguaggio SQL FUNZIONI

58 Funzione ISNULL ISNULL: Sostituisce a NULL un determinato valore di sostituzione specificato. ISNULL ( <espressione da sostituire se NULL>, <valore di sostituzione> ) sostituire se NULL. ES: Data la seguente tabella T_DATI_AMMISSIONE PROTOCOLLO INVESTIMENTO_ AMMESSO GESTIONE_ AMMESSO DATA_ DELIBERA CAPITALE_ AMMESSO MUTUO_ AMMESSO DATA_REVOCA , ,57 09/09/ , , ,57 03/03/ , , ,57 03/03/ , ,28 29/12/2007 SELECT PROTOCOLLO, ISNULL(DATA_REVOCA, ) DATA_REVOCA FROM T_DATI_AMMISSIONE PROTOCOLLO DATA_REVOCA /12/ /12/ /12/2007

59 Funzioni CAST e CONVERT Consentono di convertire un'espressione da un tipo di dati a un altro. CAST: CAST ( <espressione> AS <tipo>) CONVERT: CONVERT ( <tipo>, <espressione>,<stile>) Espressione: qualsiasi espressione valida Tipo: tipo di dati verso cui si vuole effettuare la conversione Stile ESEMPIO: Supponiamo di avere un campo di tipo CHAR in cui vengono inseriti i pesi in kilogrammi dei pazienti di una clinica e che vogliamo effettuare la media di questi valori. Essendo un valore CHAR non sarà possibile effettuare questo tipo di operazione. NOME (char) PESO_KG (char) ANDREA 85 Occorre convertire il tipo di dato numerico BARBARA 60

60 Utilizzo di CAST e CONVERT Utilizziamo la funzione CAST per convertire il tipo di dato da CHAR a NUMERIC CAST ( PESO_KG as NUMERIC) Utilizziamo la funzione CONVERT per convertire il tipo di dato da CHAR a NUMERIC CONVERT (NUMERIC, PESO_KG) Inserendo uno dei due codici nella query utilizzata per elaborare le informazioni relative al peso dei pazienti sarà possibile trattare il campo PESO_KG come fosse un valore numerico

61 Utilizzo CONVERT per valori Datetime stile questa viene utilizzata, ad esempio, per convertire i dati di tipo Datetime in stringhe di formati diversi. Stile Standard Formato 101 U.S. mm/gg/aaaa 105 Italiano gg- mm- aa 112 ISO Aaaammgg Es: Convertiamo il valore DATA della seguente tabella ORDINI nei vari formati: SELECT DATA, CONVERT (char,data,112) conv1 CONVERT (char,data,101) conv2 CONVERT (char,data,105) conv3 FROM ORDINI ORDINE (char) DATA (datetime) P11 02/12/ :00:00 AM P32 04/06/ :00:00 AM DATA (datetime) conv1 conv2 conv3 02/12/ :00:00 AM /12/ /06/ :00:00 AM /06/

62 Conversioni Implicite e Esplicite Le conversioni implicite sono conversioni eseguite senza specificare la funzione CAST o CONVERT Le conversioni esplicite sono conversioni per cui è necessario specificare la funzione CAST o CONVERT Nella figura seguente vengono illustrate le principali conversioni di tipi di dati esplicite e implicite per i tipi di dati di sistema di SQL Server DA: A: char varchar datetime numeric float real int char I I I I I I varchar I I I I I I datetime I I E E E E numeric I I I X I I I float I I I I I I real I I I I I I int I I I I I I I E X Conversione implicita Conversione esplicita conversione implicita

63 Funzioni sulle stringhe LEFT e RIGHT: SELECT RIGHT('Primo',2); SELECT LEFT('Primo',2); LTRIM e RTRIM: eliminano gli spazi a sinistra o a destra SELECT LTRIM(' Primo '); SELECT RTRIM(' Primo '); UPPER e LOWER: consentono di trasformare una stringa, rispettivamente, in tutta maiuscola o tutta minuscola SELECT UPPER ('Primo'); SELECT LOWER('Primo');

64 Funzioni sulle stringhe REPLACE: Sostituisce tutte le occorrenze di un valore stringa specificato con un altro valore stringa REPLACE ( <espressione>, <stringa da trovare>, <rimpiazzo> ) espressione: stringa in cui eseguire la ricerca stringa da trovare: sottostringa da individuare rimpiazzo: stringa di sostituzione ES: SELECT REPLACE('abcdefghicde','cde','xxx'); abxxxfghixxx NB: Restituisce nvarchar se uno degli argomenti di input è di tipo nvarchar. In caso contrario REPLACE restituisce varchar.

65 Funzioni sulle stringhe CHARINDEX: iniziale se la trova. CHARINDEX ( <espressione1>, <espressione2>, <start>) espressione1: espressione di caratteri che contiene la sequenza da cercare espressione2: espressione di caratteri da cercare start: valore dal quale inizia la ricerca. Se viene omesso o è negativo o è uguale a zero, la ricerca 6

66 Funzioni sulle stringhe SUBSTRING: restituisce una parte della stringa, a partire dal carattere specificato fino alla fine della stringa o, se indicato, per un certo numero di caratteri. SUBSTRING ( <espressione>, <start>, <lunghezza>) espressione: stringa ES: SELECT SUBSTRING('Primo',2,3); OSSERVAZIONI: lunghezza zero.

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

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

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

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

Dettagli

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

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

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

DBMS (Data Base Management System)

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

Dettagli

Istruzioni DML di SQL

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

Dettagli

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 -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

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

Dettagli

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

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

Operazioni sui database

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

Dettagli

Il 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

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

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

Dettagli

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

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

Dettagli

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale

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

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

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

Dettagli

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

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

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

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

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

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

Dettagli

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

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

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

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

Dettagli

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

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

Dettagli

OSSIF WEB. Manuale query builder

OSSIF WEB. Manuale query builder OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI

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

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

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

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

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

Dettagli

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

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

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

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

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

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

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

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

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

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

SQL. Alcune note sulla definizione dei dati

SQL. Alcune note sulla definizione dei dati SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)

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

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

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

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

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Query (Interrogazioni) Ultima modifica: 5/4/2012 SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il Turismo classe L-15! È necessario un modo per interrogare le basi di dati, cioè

Dettagli

PROGRAMMA DI CLASSE 5AI

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

Dettagli

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

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

SQL IL LINGUAGGIO DI INTERROGAZIONE

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

Dettagli

Structured Query Language parte 1

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

Dettagli

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

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

Corso di Informatica Generale 1 IN1. Linguaggio SQL

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

Dettagli

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5 Istruzioni SQL Istruzioni SQL 1 Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5 Query di inserimento 5 INSERT INTO 5 Query di

Dettagli

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2 ECDL - Database European Computer Driving Licence - Modulo 5 - Database LEZIONE 2 Ripasso Introduzione - Ripasso Cosa si intende per dbms? e cosa per database? Quali sono gli elementi che lo compongono?

Dettagli

Corso di Laboratorio di Basi di Dati

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

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

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

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12 SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

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

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

Basi di dati e Sistemi informativi aziendali

Basi di dati e Sistemi informativi aziendali Sistemi informativi Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 2007 Politecnico di Torino

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

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

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

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

Dettagli

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

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

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

Dettagli

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf Esercitazione 1 SQL: DDL e DML di base Sistemi Informativi T Versione elettronica: L01.2.DDLDMLbase.pdf Prime cose da fare Fare login sul PC usando lo username di Facoltà Procedura descritta qui: http://ccib.ing.unibo.it/content/account

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

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

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

Dettagli

CONCETTO DI ANNIDAMENTO

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

Dettagli

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

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

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

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

Sistemi per la gestione di database: MySQL ( )

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

Dettagli

Introduzione all Algebra Relazionale

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

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

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

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : (1) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Dettagli

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

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

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

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

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

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

Introduzione al linguaggio SQL

Introduzione al linguaggio SQL Introduzione al linguaggio SQL Structured Query Language (Linguaggio Strutturato di Interrogazione di Database) prof. Cleto Azzani IPSIA MORETTO BRESCIA (2004) Che cos è un Data Base (Base di dati) Insieme

Dettagli