Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati
|
|
- Samuele Calo
- 5 anni fa
- Visualizzazioni
Transcript
1 Gestione di basi di dati relazionali con SQL (parte I) Gian Pietro Picco Dipartimento di Elettronica e Informazione Politecnico di, Italy picco@elet.polimi.it Linguaggi per basi di dati I linguaggi per la definizione dei dati (Data Definition Language, DDL) sono usati per definire gli schemi logici, fisici e il controllo degli accessi I linguaggi di manipolazione dei dati (Data Manipulation Language, DML) sono usati per l interrogazione e l aggiornamento dei dati delle istanze della base dati L accesso ai dati viene effettuato: con linguaggi testuali interattivi, es. SQL con linguaggi tradizionali (es. C) equipaggiati con librerie che contengono comandi simili a quelli interattivi con linguaggi di sviluppo ad hoc che contengono comandi simili a quelli interattivi con interfacce amichevoli e non-testuali Gian Pietro Picco - Informatica A 2
2 Utenti di basi di dati L amministratore della base dati (Database Administrator, DBA) è responsabile del progetto, controllo e amministrazione, e usa prevalentemente il DDL I progettisti e programmatori di applicazioni definiscono e realizzano i programmi che accedono alla base dati, e usano prevalentemente il DML o le interfacce non-testuali Gli utenti usano la base dati per le loro attività: gli utenti finali utilizzano programmi che realizzano attività frequenti e predefinite gli utenti casuali sono in grado di impiegare i linguaggi interattivi formulando le interrogazioni a loro necessarie Gian Pietro Picco - Informatica A 3 Il linguaggio SQL SQL (Structured Query Language) è nato nella seconda metà degli anni 70, ed è uno standard: SQL-1 (o SQL- 89), SQL-2 (o SQL-92) e SQL-3 (o SQL-99, in via di approvazione) SQL-92 è il più diffuso, ma esistono prodotti che forniscono interpreti SQL con sintassi e semantica diverse dallo standard (es. MS Access) Contiene sia le funzionalità di DDL che di DML In questo corso vedremo solo una parte del DML SQL è solitamente interpretato, ma può essere compilato quando impiegato con un linguaggio ospite Gian Pietro Picco - Informatica A 4
3 Esempio di riferimento: schemi concettuale e logico Codice Nome Città Quantità Codice Nome Città Grado Azienda (0,m) Scarico (1,n) Prodotto Nome Codice (1,p) Inquinante Stato PesoSpec Città AZIENDA(CodA,, Grado, Città) INQUINANTE(CodI, NomeI, Stato, PesoSpec, Città) PRODOTTO(CodP,NomeP, Città) SCARICO(CodA, CodI, CodP, Quantità) Gian Pietro Picco - Informatica A 5 Esempio di riferimento: istanza della base di dati AZIENDA CodA Grado Città A1 Colle & Vernici 20 A2 Factotum SpA 10 A3 SuperClean Inc. 30 A4 Elektron Srl. 20 A5 Acme Ltd. 30 Bologna INQUINANTE CodI NomeI Stato PesoSpec Città I1 Anidride solforosa G 12 I2 Diossina G 17 I3 Ammoniaca L 17 Venezia I4 Biossido di azoto S 14 I5 Mercurio S 12 I6 Acido cloridrico G 19 PRODOTTO SCARICO CodA CodI CodP Qtà A1 I1 P1 200 A1 I1 P4 700 A2 I3 P1 400 A2 I3 P2 200 A2 I3 P3 200 A2 I3 P4 500 A2 I3 P5 600 A2 I3 P6 400 A2 I3 P7 800 A2 I5 P2 100 A3 I3 P1 200 A3 I4 P2 500 A4 I6 P3 300 A4 I6 P7 300 A5 I2 P2 200 A5 I2 P4 100 A5 I5 P5 500 A5 I5 P7 100 A5 I6 P2 200 A5 I1 P4 100 A5 I3 P4 200 A5 I4 P4 800 A5 I5 P4 400 CodP NomeP Città P1 Detersivo P2 Vernice Venezia P3 Batteria Bologna P4 Detergente Bologna P5 Collante P6 Nastro magnetico Firenze P7 Trasformatore Gian Pietro Picco - Informatica A A5 I6 P
4 Manipolazione dei dati SQL esprime le interrogazioni in modo dichiarativo, cioè specifica cosa cercare nella base dati ma non come cercarlo (all opposto dei linguaggi procedurali) Ciò significa che non si possono (e non si devono) fare assunzioni sull efficienza di una interrogazione: gli aspetti (procedurali) di ottimizzazione sono completamente gestiti dall interprete SQL SQL opera su insiemi di dati come nel modello relazionale, ma alcuni suoi costrutti vengono meno a questa caratteristica Gian Pietro Picco - Informatica A 7 Una semplice query SQL Visualizzare il nome e il peso specifico degli inquinanti prodotti nella città di. INQUINANTE CodI NomeI Stato PesoSpec Città I1 Anidride solforosa G 12 I2 Diossina G 17 I3 Ammoniaca L 17 Venezia I4 Biossido di azoto S 14 I5 Mercurio S 12 I6 Acido cloridrico G 19 SELECT NomeI, PesoSpec FROM INQUINANTE WHERE Città = ; NomeI PesoSpec Anidride solforosa 12 Biossido di azoto 14 Acido cloridrico 19 Gian Pietro Picco - Informatica A 8
5 Inclusione di tutti gli attributi nel risultato Visualizzare tutte le informazioni relative agli inquinanti prodotti nella città di. INQUINANTE CodI NomeI Stato PesoSpec Città I1 Anidride solforosa G 12 I2 Diossina G 17 I3 Ammoniaca L 17 Venezia I4 Biossido di azoto S 14 I5 Mercurio S 12 I6 Acido cloridrico G 19 SELECT * FROM INQUINANTE WHERE Città = ; Questa interrogazione è equivalente a SELECT CodI, NomeI, Stato, PesoSpec, Città FROM INQUINANTE WHERE Città = ; ed è semplicemente una scorciatoia sintattica Gian Pietro Picco - Informatica A 9 Osservazioni circa i duplicati Visualizzare tutte le città in cui viene prodotto un inquinante. SELECT Città FROM INQUINANTE; Città Venezia I duplicati non vengono eliminati In questo caso, SQL non mantiene la semantica del modello logico relazionale, in cui non sono ammessi duplicati degli elementi di un istanza di relazione I duplicati non vengono eliminati per default, ma soltanto quando viene usata la clausola DISTINCT: SELECT DISTINCT Città FROM INQUINANTE; Città Venezia Gian Pietro Picco - Informatica A 10
6 Espressioni booleane in WHERE Visualizzare il nome delle aziende con sede a e grado di pericolosità superiore o pari a 20. AZIENDA CodA Grado Città A1 Colle & Vernici 20 A2 Factotum SpA 10 A3 SuperClean Inc. 30 A4 Elektron Srl. 20 A5 Acme Ltd. 30 Bologna SELECT WHERE Città = AND Grado >= 20; SuperClean Inc. Le espressioni in WHERE sono ottenute combinando predicati semplici (costruiti con gli operatori =, <>, <, >, <=, >=) mediante gli operatori booleani AND, OR, NOT Gian Pietro Picco - Informatica A 11 Espressioni booleane in WHERE Oltre ai comuni operatori già menzionati, SQL supporta anche altri due operatori: LIKE per ricerche testuali e IS NULL per la gestione dei valori nulli Visualizzare i nomi delle aziende che contengono almeno una C seguita da almeno una L oppure la cui prima parola inizia per A ed è lunga 4 lettere. SELECT WHERE LIKE %C%L% OR LIKE A % ; Colle & Vernici SuperClean Inc. Acme Ltd. L operatore IS NULL ritorna TRUE se il valore dell attributo a cui è applicato è NULL; IS NOT NULL può essere usato per verificare invece se il valore dell attributo è diverso da NULL SELECT WHERE Grado IS NOT NULL; E diverso da WHERE Grado <> NULL il quale ritornerebbe un errore Gian Pietro Picco - Informatica A 12
7 Ordinamento delle tuple Visualizzare il nome delle aziende con sede a in ordine decrescente rispetto al loro grado di pericolosità. SELECT WHERE Città = ORDER BY Grado DESC; SuperClean Inc. Factotum SpA La possibilità di ordinare le tuple del risultato è un altra deroga al modello relazionale, basato su insiemi: tuttavia, questa possibilità è estremamente utile in pratica Se il tipo di ordinamento (ASC o DESC) è omesso, si assume ASC È possibile specificare più attributi in sequenza, ad esempio: SELECT Acme Ltd. SuperClean Inc. ORDER BY Grado DESC, Città; Colle & Vernici Elektron Srl. Factotum SpA Gian Pietro Picco - Informatica A 13 Uso di espressioni in SELECT Visualizzare il nome delle aziende di seguito dal loro grado di pericolosità espresso in 100mi anziché 30mi. SELECT,Grado/0.3 WHERE Città = ; SuperClean Inc. 100 Factotum SpA 33.3 L attributo non ha più un nome Gli attributi con espressioni possono essere rinominati con un alias, espresso mediante la clausola AS SELECT,Grado/0.3 AS Grado100mi WHERE Città = ; SuperClean Inc. 100 Factotum SpA 33.3 Grado100mi In caso sia necessario ordinare rispetto a un attributo anonimo, ci si può comunque riferire direttamente alla sua posizione SELECT,Grado/0.3 WHERE Città = ORDER BY 2; Factotum SpA 33.3 SuperClean Inc. 100 Gian Pietro Picco - Informatica A 14
8 Interrogazioni su più relazioni Visualizzare le coppie di aziende ed inquinanti tali che entrambi si trovino nella medesima città. CodA Grado Città CodI NomeI Stato PesoSpec Città A1 Colle & Vernici 20 I1 Anidride solforosa G 12 A1 Colle & Vernici 20 I2 Diossina G 17 A1 Colle & Vernici 20 I3 Ammoniaca L 17 Venezia A1 Colle & Vernici 20 I4 Biossido di azoto S 14 A1 Colle & Vernici 20 I5 Mercurio S 12 A1 Colle & Vernici 20 I6 Acido cloridrico G 19 A2 Factotum SpA 10 I1 Anidride solforosa G 12 A2 Factotum SpA 10 I2 Diossina G 17 A2 Factotum SpA 10 I3 Ammoniaca L 17 Venezia A2 Factotum SpA 10 I4 Biossido di azoto S 14 A2 Factotum SpA 10 I5 Mercurio S 12 A2 Factotum SpA 10 I6 Acido cloridrico G 19 A3 SuperClean Inc. 30 I1 Anidride solforosa G 12 A3 SuperClean Inc. 30 I2 Diossina G 17 A3 SuperClean Inc. 30 I3 Ammoniaca L 17 Venezia A3 SuperClean Inc. 30 I4 Biossido di azoto S 14 A3 SuperClean Inc. 30 I5 Mercurio S 12 A3 SuperClean Inc. 30 I6 Acido cloridrico G 19 A4 Elektron Srl. 20 I1 Anidride solforosa G 12 A4 Elektron Srl. 20 I2 Diossina G 17 A4 Elektron Srl. 20 I3 Ammoniaca L 17 Venezia A4 Elektron Srl. 20 I4 Biossido di azoto S 14 A4 Elektron Srl. 20 I5 Mercurio S 12 A4 Elektron Srl. 20 I6 Acido cloridrico G 19 A5 Acme Ltd. 30 Bologna I1 Anidride solforosa G 12 A5 Acme Ltd. 30 Bologna I2 Diossina G 17 A5 Acme Ltd. 30 Bologna I3 Ammoniaca L 17 Venezia A5 Acme Ltd. 30 Bologna I4 Biossido di azoto S 14 A5 Acme Ltd. 30 Bologna I5 Mercurio S 12 A5 Acme Ltd. 30 Bologna I6 Acido cloridrico G 19 Gian Pietro Picco - Informatica A 15 Interrogazioni su più relazioni Visualizzare le coppie di aziende ed inquinanti tali che entrambi si trovino nella medesima città. SELECT, NomeI, INQUINANTE WHERE AZIENDA.Città=INQUINANTE.Città E necessario specificare completamente i nomi degli attributi includendo la tabella a cui fanno riferimento, per evitare ambiguità NomeI Colle & Vernici Anidride solforosa Colle & Vernici Biossido di azoto Colle & Vernici Acido cloridrico Elektron Srl. Anidride solforosa Elektron Srl. Biossido di azoto Elektron Srl. Acido cloridrico Factotum SpA Diossina Factotum SpA Mercurio SuperClean Inc. Diossina SuperClean Inc. Mercurio La clausola FROM specifica le tabelle coinvolte, la clausola WHERE esprime la connessione tra di esse L operazione che permette di combinare due o più tabelle per effettuare un interrogazione complessa viene comunemente chiamata join Gian Pietro Picco - Informatica A 16
9 Interrogazioni su più ù relazioni Visualizzare il nome degli inquinanti scaricati durante la lavorazione del prodotto con codice P3. CodI NomeI Stato PesoSpec Città CodA CodI CodP Qtà I1 Anidride solforosa G 12 A2 I3 P3 200 I2 Diossina G 17 A2 I3 P3 200 I3 Ammoniaca L 17 Venezia A2 I3 P3 200 I4 Biossido di azoto S 14 A2 I3 P3 200 I5 Mercurio S 12 A2 I3 P3 200 I6 Acido cloridrico G 19 A2 I3 P3 200 I1 Anidride solforosa G 12 A4 I6 P3 300 I2 Diossina G 17 A4 I6 P3 300 I3 Ammoniaca L 17 Venezia A4 I6 P3 300 I4 Biossido di azoto S 14 A4 I6 P3 300 I5 Mercurio S 12 A4 I6 P3 300 I6 Acido cloridrico G 19 A4 I6 P3 300 SELECT NomeI FROM INQUINANTE, SCARICO WHERE CodP = P3 AND INQUINANTE.CodI = SCARICO.CodI; Il problema consiste nel ricuperare dati da una tabella sulla base di dati contenuti in un altra tabella La connessione fra le tabelle viene realizzata testando l uguaglianza degli attributi chiave Gian Pietro Picco - Informatica A 17 Interrogazioni su più relazioni Visualizzare le coppie di nomi di città tali che un azienda che ha sede nella prima città scarichi nella seconda un inquinante relativo a un qualsiasi prodotto. SELECT DISTINCT AZIENDA.Città, INQUINANTE.Città, INQUINANTE, SCARICO WHERE SCARICO.CodA = AZIENDA.CodA AND SCARICO.CodI = INQUINANTE.CodI; AZIENDA.Città Bologna Bologna Bologna INQUINANTE.Città Venezia Venezia La connessione fra le tabelle viene effettuata testando l uguaglianza degli attributi chiave: la selezione delle righe e la proiezione delle colonne richieste viene effettuata sul sottoinsieme del prodotto cartesiano per il quale i valori del codice dell azienda e quello dell inquinante compaiono insieme negli attributi corrispondenti della relazione di scarico Gian Pietro Picco - Informatica A 18
10 Join di una tabella con se stessa Visualizzare le coppie di aziende tali che abbiano sede nella stessa città. CodA Grado Città CodA Grado Città A1 Colle & Vernici 20 A1 Colle & Vernici 20 A1 Colle & Vernici 20 A2 Factotum SpA 10 A1 Colle & Vernici 20 A3 SuperClean Inc. 30 A1 Colle & Vernici 20 A4 Elektron Srl. 20 A1 Colle & Vernici 20 A5 Acme Ltd. 30 Bologna A2 Factotum SpA 10 A1 Colle & Vernici 20 A2 Factotum SpA 10 A2 Factotum SpA 10 A2 Factotum SpA 10 A3 SuperClean Inc. 30 A2 Factotum SpA 10 A4 Elektron Srl. 20 A2 Factotum SpA 10 A5 Acme Ltd. 30 Bologna A3 SuperClean Inc. 30 A1 Colle & Vernici 20 A3 SuperClean Inc. 30 A2 Factotum SpA 10 A3 SuperClean Inc. 30 A3 SuperClean Inc. 30 A3 SuperClean Inc. 30 A4 Elektron Srl. 20 A3 SuperClean Inc. 30 A5 Acme Ltd. 30 Bologna A4 Elektron Srl. 20 A1 Colle & Vernici 20 A4 Elektron Srl. 20 A2 Factotum SpA 10 A4 Elektron Srl. 20 A3 SuperClean Inc. 30 A4 Elektron Srl. 20 A4 Elektron Srl. 20 A4 Elektron Srl. 20 A5 Acme Ltd. 30 Bologna A5 Acme Ltd. 30 Bologna A1 Colle & Vernici 20 A5 Acme Ltd. 30 Bologna A2 Factotum SpA 10 A5 Acme Ltd. 30 Bologna A3 SuperClean Inc. 30 A5 Acme Ltd. 30 Bologna A4 Elektron Srl. 20 A5 Acme Ltd. 30 Bologna A5 Acme Ltd. 30 Bologna Gian Pietro Picco - Informatica A 19 Join di una tabella con se stessa Visualizzare le coppie di aziende tali che abbiano sede nella stessa città. SELECT A., B., AS A, AZIENDA AS B WHERE A.Città = B.Città AND A.CodA < B.CodA; Colle & Vernici Factotum Spa Elektron Srl. SuperClean Inc. Se si vogliono eliminare le coppie con elementi identici ma presi in ordine diverso, bisogna aggiungere una condizione aggiuntiva a quella di join È necessario introdurre degli alias nella FROM per poter distinguere tra le due copie della tabella AZIENDA Gli alias possono essere utilizzati semplicemente per rendere più compatto il codice in presenza di nomi di tabella lunghi Gian Pietro Picco - Informatica A 20
11 Sintassi alternative per il join SQL-92 introduce una sintassi alternativa per il join, che ne sposta la specifica dal WHERE al FROM Questo tipo di join viene chiamato inner join (join esterno) e in generale il risultato è un sottoinsieme delle righe di ciascuna tabella Esiste un altro tipo di join, chiamato outer join (join esterno), in cui il risultato del join interno è esteso mantenendo le righe di una o ambedue le tabelle coinvolte Left outer join. Mantiene le righe della tabella che compare a sinistra della clausola di join per le quali non esiste una SELECT NomeI FROM INQUINANTE AS I, SCARICO AS S WHERE CodP = P3 AND I.CodI = S.CodI; SELECT NomeI FROM INQUINANTE AS I JOIN SCARICO AS S ON I.CodI = S.CodI WHERE CodP = P3 ; corrispondente riga a destra; Right outer join. Come il left join, ma per la tabella a destra Full outer join. Mantiene le righe provenienti da ambedue le tabelle Gian Pietro Picco - Informatica A 21
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
DettagliSQL. 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
DettagliQL (Query Language) Alice Pavarani
QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione
DettagliProf. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (1) Interrogazioni semplici Prof. Alberto Postiglione
DettagliQuery. 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
DettagliSQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)
SQL SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) Esempio 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 50 60 Olga 30 Sergio 85 Luisa 75 Persone Reddito
DettagliInterrogare 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 è
DettagliIL LINGUAGGIO SQL LE BASI
IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere
DettagliD B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base
Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice
DettagliTecnologie dell Informazione e della Comunicazione per la Protezione Civile Sistemi Informativi e Basi di Dati
Tecnologie dell Informazione e della Comunicazione per la Protezione Civile Sistemi Informativi e Basi di Dati Gianpaolo Cugola Dip. di Elettronica e Informazione http://www.elet.polimi.it/people/cugola
DettagliSommario e testi. Informazioni vs. dati. I sistemi informativi
Tecnologie dell Informazione e della Comunicazione per la Protezione Civile Sistemi Informativi e Basi di Dati Gianpaolo Cugola Dip. di Elettronica e Informazione http://www.elet.polimi.it/people/cugola
DettagliSQL. 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
DettagliCorso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.
Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 27 Sommario 1 Join di Tabelle 2 3 2 / 27 Lo Statement JOIN Join espliciti di tabelle nella clausola FROM In SQL e possibile scrivere
DettagliLinguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Istruzione SELECT: esempio Trovare il codice
DettagliDatabase parte 2. Database azienda
Database parte 2 Esercizio azienda SQL Ing. Lucia Vaira lucia.vaira@unisalento.it Database azienda L azienda è organizzata in dipartimenti Ciascun dipartimento ha un codice, un nome e un impiegato che
DettagliPrincipi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL
Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Il Linguaggio SQL Due componenti principali: Ø DDL (Data Definition Language) Contiene i costrutti necessari per la creazione/modifica
DettagliINFORMATICA 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 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze
DettagliSISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
DettagliCaratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
DettagliLe implementazioni nei vari DBMS relazionali commerciali
Andrea Gasparetto Le implementazioni nei vari DBMS relazionali commerciali includono funzionalità non previste dallo standard non includono funzionalità previste dallo standard implementano funzionalità
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING
DettagliLinguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione
Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento
DettagliLinguaggi per basi di dati e SQL
Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento
DettagliBasi 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
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,
DettagliGestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS
2007 Politecnico di Torino 1 Basi di dati DB M B G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M B G 2 2007 Politecnico
DettagliSistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1
Sistemi informativi D B M G Introduzione D B M G 2 2007 Politecnico di Torino 1 Introduzione D B M G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Basi di dati DB M BG2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG4 D B M G6 2007 Politecnico di Torino 1 D B M G7 D B M G8 D B M G9 D B
DettagliElena Baralis 2007 Politecnico di Torino 1
2007 Politecnico di Torino 1 Basi di dati Gestione delle informazioni Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG2 Gestione delle informazioni Le informazioni sono
DettagliBasi di Dati. Concetti e Principi Generali. Maria Mirto
Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati
DettagliIl 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
DettagliCorso 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
DettagliBasi di dati - Laboratorio
Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni
DettagliLinguaggio SQL seconda parte
Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle
DettagliInformatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB
Informatica II Basi di Dati (07/08) Parte 2 Gianluca Torta Dipartimento di Informatica dell Università di Torino torta@di.unito.it, 0116706782 4 Accesso ai dati di un DB SQL Accesso ai dati di un DB Aggiornamento
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 48 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 La Clausola HAVING 3 2 / 48 Join Naturale Theta Join Join Esterno
DettagliManuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL
Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...
DettagliSQL - 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
DettagliIl formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F;
54 Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F; dove R 1, R 2,..., R k è una lista di nomi distinti di relazioni R i1.c 1, R
DettagliCorso di Informatica Linguaggio SQL prima parte
Corso di Informatica Linguaggio SQL prima parte Anno Accademico 2018-2019 Linguaggio SQL (Structured Query Language) 2 Il linguaggio SQL Un linguaggio per DBMS (DataBase Management System) deve permettere
DettagliInformatica B. Introduzione alle Basi di Dati e ai DBMS
ormatica B Introduzione alle Basi di Dati e ai DBMS ormazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.), generalmente in formato numerico o testuale, che l azienda è interessata
DettagliIl linguaggio SQL - Interrogazioni -
Il linguaggio SQL - Interrogazioni - Dott. Nicola Dragoni nicola.dragoni@gmail.com (Il contenuto di queste slide è stato originariamente creato dal Dott. Matteo Magnani) 1 Il linguaggio SQL Il linguaggio
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Sesta parte Interrogazione di una
DettagliLezioni di Laboratorio sui Data Base
Lezioni di Laboratorio sui Data Base Informatica per l'impresa Docente Tutor: Dott. Gianluigi Roveda OBIETTIVO: Rivedere come attività di laboratorio le query di tipo select scritte in SQL ma con le variazioni
DettagliIstruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle
2007 Politecnico di Torino 1 DB M B G Linguaggio SQL: fondamenti Introduzione Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle
DettagliLINGUAGGI E UTENTI DI UN DBMS
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Linguaggi e Utenti Prof. Alberto Postiglione Università
DettagliInformatica Grafica. Basi di dati parte 2
Informatica Grafica Corso di Laurea in Ingegneria Edile Architettura Basi di dati parte 2 Michele Lombardi su materiale originario di Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica
DettagliInformatica B. Introduzione alle Basi di Dati e ai DBMS
ormatica B Introduzione alle Basi di Dati e ai DBMS ormazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.), generalmente in formato numerico o testuale, che l azienda è interessata
DettagliSommario. Introduzione... 13
Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26
DettagliSQL - Structured Query Language
SQL - Structured Query Language Luca Martini Università di Pisa 16 aprile 2010 Riepilogo sugli operatori aggregati Sintassi SELECT A t t r i b u t o 1, MAX( A t t r i b u t o 2 ),... FROM Tabella1, Tabella2,...
DettagliSQL 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
DettagliLinguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti D B M G Introduzione Introduzione al linguaggio SQL Istruzioni del linguaggio Notazione D B M G 2 Il linguaggio SQL Linguaggio per gestire le basi di dati relazionali Structured
DettagliBasi di dati. Elena Baralis Politecnico di Torino
Libri di testo Atzeni, Ceri, Paraboschi, Torlone, Basi di dati, 2 a ed., McGraw Hill, 1999. Baralis, Belussi, Psaila, Basi di dati: temi d esame svolti, Esculapio, 2000. Introduzione - 2 Introduzione Sistema
DettagliSQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
DettagliCorso di Informatica Medica
Università degli Studi di Trieste Corso di Laurea Magistrale in INGEGNERIA CLINICA ESERCITAZIONE: IL LINGUAGGIO SQL Corso di Informatica Medica Docente Sara Renata Francesca MARCEGLIA Dipartimento di Ingegneria
DettagliIdoneita 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
DettagliParte 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
DettagliInformatica di Base - 6 c.f.u.
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Basi di Dati Sistema informativo Componente
DettagliInterrogazioni in SQL SQL1 1
Interrogazioni in SQL SQL1 1 Dichiaratività di SQL E un linguaggio di IV generazione: in SQL l'utente specifica QUALE informazione è di suo interesse ma non COME estrarla dai dati il sistema costruisce
DettagliD. Gubiani Introduzione alle Basi di Dati 3. La porzione automatizzata di un sistema informativo viene in
Università degli Studi di Udine Facoltà di Agraria CORSO DI LAUREA IN SCIENZE E TECNOLOGIE DELL AMBIENTE E DEL TERRITORIO Sistemi di Elaborazione dell Informazione alle D. Gubiani 14 ottobre 2009 D. Gubiani
DettagliArchivi e Basi di Dati. lezione 07 1
Archivi e Basi di Dati lezione 07 Memoria persistente e suo utilizzo Bisogna organizzare i dati in modo da garantire inserimento cancellazione modifica e ricerca su grandi quantita di dati lezione 07 2
DettagliLeft Join, Right Join, Full Join
Left Join, Right Join, Full Join Consideriamo il solito schema di database dell'ultima verifica. Ipotizziamo inoltre che tra le due relazioni sia impostato un vincolo di Integrità Referenziale. Modello
DettagliDomande utili alla preparazione dell orale di Informatica all Esame di Stato
Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre
DettagliInterrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle
Interrogazioni su più tabelle Se si vogliono estrarre informazioni da più tabelle, queste devono apparire come argomento della clausola from. Se si deve formulare un join, è possibile farlo in modo esplicito
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio
DettagliStructured. 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
DettagliSelect From Where...
Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle
DettagliOperatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento
Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple
DettagliBasi di Dati - Informatica umanistica Esercitazione (Lab)
Basi di Dati - Informatica umanistica Esercitazione (Lab) a.a. 2017-2018 Vinícius Monteiro de Lira (vinicius.monteirodelira@isti.cnr.it) Esercitazione Mini-project! openflights.org Esercitazione (Summary)
DettagliProgetto concettuale delle basi di dati
Progetto concettuale delle basi di dati Gian Pietro Picco Dipartimento di Elettronica e Informazione, Italy picco@elet.polimi.it http://www.elet.polimi.it/~picco Il progetto dei dati Specifiche dei dati
DettagliModulo 2 Data Base 3
Modulo 2 Data Base 3 Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Proiezione Dati una relazione r(x) e un
DettagliSQL DDL. Create database. Alter database. Drop database
SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi
DettagliCorso di. Basi di Dati I. 1. Introduzione
Corso di Basi di Dati 1. Introduzione A.A. 2016 2017 Contatti, annunci E-mail: pezzini@mat.uniroma1.it Ufficio: stanza 11 (piano terra), Dipartimento di Matematica. Ricevimento: Mercoledì 11:00-13:00 e
DettagliSQL: 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
DettagliCorso di. Basi di Dati I. 1. Introduzione
Corso di Basi di Dati 1. Introduzione A.A. 2016 2017 Contatti, annunci E-mail: pezzini@mat.uniroma1.it Ufficio: stanza 11 (piano terra), Dipartimento di Matematica. Ricevimento: Mercoledì 11:00-13:00 e
DettagliSQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto
SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati
DettagliSQL [2] Concetti avanzati di SQL. Esempi di interrogazioni
SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non
DettagliLinguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.
Linguaggi per Basi di Dati - 1 Università degli Studi di Trieste Corso di Laurea in Informatica D. Gubiani marzo 2008 Distinguiamo due classi di linguaggi per basi di dati : - linguaggi di definizione,
DettagliParte III L algebra relazionale
Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2017-2018 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano
DettagliSQL: "storia" 31/05/2006 2
SQL 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, non i dettagli
DettagliBasi 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
DettagliMicrosoft Access. Relazioni e query SQL. Domenico Fabio Savo
Microsoft Access Relazioni e query SQL Domenico Fabio Savo Outline Base di dati di esempio Le relazioni Le query Outline Base di dati di esempio Le relazioni Le query Contratti telefonici (requisiti) Si
Dettagli4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.
4.SQL QUERY >definizione A cura di: Celora Luca Fare una query significa fare delle ricerche sul nostro database. >strumenti da usare SELECT //sceglie le colonne da visualizzare FROM //indica da quali
DettagliInformatica CL Fisioterapisti. Informatica Medica Sistemi per la gestione di basi di Dati
Informatica CL Fisioterapisti Informatica Medica Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari mauro.gaspari@unibo.it 1 Informatica Medica La scienza che si occupa della gestione dell informazione
DettagliDichiarativi : specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come")
Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento Linguaggi di interrogazione per
DettagliD B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati
Sistemi informativi D B M G Linguaggio SQL: costrutti avanzati Gestione delle transazioni SQL per le applicazioni Controllo dell accesso Gestione degli indici D B M G 2 Pag. 1 2007 Politecnico di Torino
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio Trovare il codice e il numero di soci dei fornitori
DettagliUno 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
DettagliLinguaggi per basi di dati
Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento Linguaggi di interrogazione per
DettagliIl theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:
Join Per correlare attributi con nome diverso (se cioè X 1 X 2 è vuoto) è possibile fare il theta-join, definito come un prodotto cartesiano seguito da una selezione r 1 F r 2 = F (r 1 r 2 ) dove F è la
DettagliARCHIVI E BASI DI DATI
ARCHIVI E BASI DI DATI Un file (archivio) è una raccolta di record logici. La gestione dei file è un servizio reso dal Sistema Operativo. Ogni record logico contiene una sequenza di bit ed è suddiviso
DettagliSELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti
DettagliSQL 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
DettagliSELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL, e.data, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami WHERE NOT EXISTS (SELECT * WHERE e.matricola = s.matricola
DettagliMODULO 2. Query normali e parametriche Query di:
MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,
DettagliIntroduzione alle basi di dati. A. Ferrari
Introduzione alle basi di dati A. Ferrari Archiviazione mediante file I vari S.O. e i cosiddetti linguaggi ad alto livello mettono a disposizione varie tipologie di file per l archiviazione e gestione
Dettagli