Interrogazioni semplici

Documenti analoghi
Le basi di dati. Base di dati. Modelli, schemi ed istanze DBMS. Architettura ANSI/SPARC: schemi

Esempi SQL con Access. Orazio Battaglia

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

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

Operatori aggregati: COUNT

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

Interrogazioni nidificate

Linguaggio SQL seconda parte

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

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

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

Structured Query Language

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

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

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

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Interrogazioni nidificate

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Basi di Dati: Corso di laboratorio

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

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

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

<Nome Tabella>.<attributo>

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

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

Introduzione alle basi di dati

SQL e algebra relazionale

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

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

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

Caratteristiche dei linguaggi per Database

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

Basi di Dati: Corso di laboratorio

Esempio di database relazionale con l utilizzo del prodotto MySQL

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

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

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

3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S

ESERCITAZIONI ACCESS

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

Corso di Basi di Dati

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

Tabelle esempio: Impiegato/Dipartimento

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

Basi di dati (4) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: select (1.

S Q L E S E R C I Z I

Basi di Dati. S Q L Lezione 2

Filtri. Microsoft Access. Filtri. Filtri

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Parte III. L algebra relazionale

SQL - Funzioni di gruppo

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

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

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

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

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

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

Manuale SQL. Manuale SQL - 1 -

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

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1

Corso di INFORMATICA

3 SQL : Interrogazioni

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

3 Algebra Relazionale

Interrogazioni in SQL

Basi di Dati Corso di Laura in Informatica Umanistica

Alessandra Raffaetà. Qualificazione: notazione con il punto

SQL (STRUCTURED QUERY LANGUAGE)

Il linguaggio SQL: le viste

Basi di Dati. S Q L Lezione 4

Database. Idoneità Informatica, CdS Economia e Commercio

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

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

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

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

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

DATABASE CLIENTIRAPPRESENTANTI

Ordinare dati. Microsoft Access. Ordinare dati. Ordinare dati. Ordinare dati. Ordinare dati. Query (II), filtri. L ordinamento crescente:

SQL - Elementi più avanzati

Il modello relazionale

Basi di dati: esercitazione. Paolo Atzeni 10/05/2006

Estensioni del linguaggio SQL per interrogazioni OLAP

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

Basi di dati (database)

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

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Business Intelligence

Il linguaggio SQL: DML di base. Versione elettronica: 04.2.SQL.DMLbase.pdf

Il linguaggio SQL: DML di base

RELAZIONI E BASI DI DATI

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Esercitazione 3 SQL 2

Istruzioni DML di SQL

Definizione e calcolo delle misure

Basi di Dati prof. Letizia Tanca

Transcript:

Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri Luca 04/08/1970 A80295640 Rossi Lorenzo 25/02/1969 A80197456 Melli Mara 17/10/1966 Studenti Tabelle da cui si selezionano Condizioni select Matricola as NumeroMatricola from Studenti where Cognome = Rossi NumeroMatricola A80293450 A80295640 Nuovo nome per l attributo Risultato: una relazione! Lorenzo Sarti 2009 Basi di Dati 2

select * Tutti i campi sono considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri Luca 04/08/1970 A80295640 Rossi Lorenzo 25/02/1969 A80197456 Melli Mara 17/10/1966 select * from Studenti where Cognome = Rossi Studenti Matricola Cognome Nome Data di nascita A80293450 Rossi Andrea 13/04/1968 A80295640 Rossi Lorenzo 25/02/1969 Lorenzo Sarti 2009 Basi di Dati 3 select (espressioni) Prodotto Cliente Quantita PrezzoUnitario Chiodo 35mm Bianchi 100 15 Vite 45mm Rossi 50 20 Dado 5mm Neri 200 8 Vite 8mm Rossi 20 25 Bulloni 5cm Melli 40 50 select Prodotto, Quantita*PrezzoUnitario as PrezzoTotale from Ordini where Cliente = Rossi Prodotto PrezzoTotale Vite 45mm 1000 Vite 8mm 500 Espressione che combina più attributi Lorenzo Sarti 2009 Basi di Dati 4

Funzioni Lorenzo Sarti 2009 Basi di Dati 5 Esempi Nome e cognome degli studenti select cognome nome as nomecompleto from studenti Matricola Cognome Nome A80198760 Bianchi Anna A80293450 Rossi Andrea A80198330 Neri Luca A80295640 Rossi Lorenzo A80197456 Melli Mara NomeCompleto Bianchi Anna Rossi Andrea Neri Luca Rossi Lorenzo Melli Mara Lorenzo Sarti 2009 Basi di Dati 6

Esempi Mese di nascita degli studenti select monthname( data di nascita ) as mesedinascita from studenti Cognome Nome Data di nascita Bianchi Anna 22/03/1967 Rossi Andrea 13/04/1968 Neri Luca 04/08/1970 Rossi Lorenzo 25/02/1969 Melli Mara 17/10/1966 mesedinascita marzo aprile agosto febbraio ottobre Lorenzo Sarti 2009 Basi di Dati 7 Valori distinti A differenza del calcolo o dell algebra relazionale, i risultati delle interrogazioni SQL contengono duplicati I duplicati possono essere rimossi usando distinct select distinct nome from studenti Cognome Bianchi Rossi Neri Rossi Melli Nome Anna Andrea Anna Andrea Mara Con distinct Senza distinct Nome Anna Andrea Mara Nome Anna Andrea Anna Andrea Mara Lorenzo Sarti 2009 Basi di Dati 8

Ordinamento Studenti ordinati per cognome (ordine inverso) e nome select cognome, nome from studenti order by cognome desc, nome asc Cognome Rossi Rossi Neri Melli Bianchi Nome Andrea Lorenzo Luca Mara Anna Lorenzo Sarti 2009 Basi di Dati 9 Select where Lorenzo Sarti 2009 Basi di Dati 10

Esempi Ricerca degli impiegati con reddito maggiore di 100 milioni e età non compresa fra 40 e 50 anni select * from impiegati where reddito >= 100 and not (eta <=50 and eta>=40) La precedenza fra gli operatori and e or non è definita dallo standard Ricerca degli studenti nati di domenica select * from studenti where dayofweek( data di nascita ) = 1 Lorenzo Sarti 2009 Basi di Dati 11 Ricerca di stringhe Matricola like _801% A801334323 A801234322 B801343232 Ricerca degli studenti il cui indirizzo inizia per via select * from studenti where indirizzo like via% Lorenzo Sarti 2009 Basi di Dati 12

Valori nulli Lorenzo Sarti 2009 Basi di Dati 13 select.. from Lorenzo Sarti 2009 Basi di Dati 14

Select e prodotto cartesiano select * from tab1, tab2 where attr1= A tab1 Attr1 A B Attr2 B A Attr1 Attr2 Attr3 Attr4 A B C B B A C B A B D B B A D B Attr3 C D Attr4 B B tab2 Prodotto cartesiano Selezione Attr1 Attr2 Attr3 Attr4 A B C B A B D B Lorenzo Sarti 2009 Basi di Dati 15 Il join con select Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80295640 Felici Lorenzo 25/02/1969 Studenti Attributi di tabelle Studente Voto Corso A80198760 28 Analisi I A80293450 30 Basi di Dati A80295640 27 Analisi I A80198760 30L Fisica I A80293450 21 Chimica Esami select Studenti.Cognome,Studenti.Nome,Esami.Voto from Studenti,Esami where (Studenti.Matricola = Esami.Studente) AND (Esami.Corso = Analisi I ) prodotto cartesiano Cognome Nome Voto Bianchi Anna 28 Felici Lorenzo 27 Condizione di join Lorenzo Sarti 2009 Basi di Dati 16

join interno Modo alternativo per indicare il join di due tabelle che distingue le condizioni di join da quelle di selezione delle righe Non si specificano le tabelle (non c è ambiguità) select Cognome,Nome,Voto from Studenti inner join Esami on Matricola = Studente where (Corso = Analisi I ) Condizione di selezione Condizione di join Lorenzo Sarti 2009 Basi di Dati 17 join esterno Lorenzo Sarti 2009 Basi di Dati 18

outer left join Guidatore Cognome Nome NroPatente Bianchi Anna VR 2030020Y Rossi Andrea PZ 1012436B Felici Lorenzo AP 4544442R Automobile Targa Marca Modello NroPatente AB574WW Fiat Punto VR2030020Y AA652FF Renault Clio VR2030020Y BJ747XX Ford Focus PZ1012436B BB421JJ Renault Megane MI2020030U Associa un altro nome alla tabella (alias) select * from Guidatore G left join Automobile A on (G.NroPatente = A.NroPatente) ci sarebbe stata ambiguità Cognome Nome NroPatente Targa Marca Modello Bianchi Anna VR 2030020Y AB574WW Fiat Punto Bianchi Anna VR 2030020Y AA652FF Renault Clio Rossi Andrea PZ 1012436B BJ747XX Ford Focus Felici Lorenzo AP 4544442R NULL NULL NULL Lorenzo Sarti 2009 Basi di Dati 19 Uso di variabili Permette di far riferimento a più esemplari della stessa tabella Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 1.700 Euro select I1.Nome,I1.Stip from Impiegati I1, Supervisione S, Impiegati I2 where I1.Matr = S.Capo and I2.Matr = S.Imp and I2.Stip > 1700 Copia I1: usata per ricavare le informazioni sul capo Copia I2: usata per riferirsi agli impiegati Lorenzo Sarti 2009 Basi di Dati 20

Esempio di uso di variabili Nome Stip Matr Marco Rossi 1.500 101 Paolo Bianchi 2.380 103 Anna Falchi 1.700 105 Gaia Belli 2.500 110 Luca Forti 2.500 134 Sonia Melli 1.500 145 Mario Mori 1.800 149 Bruno Bruni 1.500 153 Filippo Mei 2.500 155 I1 Impiegati Capo Imp 103 101 103 105 103 145 110 103 110 149 134 153 S Supervisione Matr Nome Stip 101 Marco Rossi 1.500 103 Paolo Bianchi 2.380 105 Anna Falchi 1.700 110 Gaia Belli 2.500 134 Luca Forti 2.500 145 Sonia Melli 1.500 149 Mario Mori 1.800 153 Bruno Bruni 1.500 155 Filippo Mei 2.500 I2 Impiegati I1.Nome I1.Stip I1.Matr=S.Capo I2.Matr=S.Imp I2.Stip>1700 Lorenzo Sarti 2009 Basi di Dati 21 Operatori aggregati count conteggio righe sum somma max massimo min minimo avg media Lorenzo Sarti 2009 Basi di Dati 22

Conteggio, massimo, media... Studente Voto Corso A80198760 28 01 A80293450 30 04 A80198760 27 03 A80293450 25 03 A80293450 21 05 select count(*) from esami where Studente = A80293450 select max(voto) from esami where Studente = A80293450 select avg(voto) from esami where Studente = A80293450 Informazioni sui voti dello studente A80293450 select count(distinct Studente) from esami Conteggio di quanti studenti hanno fatto almeno un esame Lorenzo Sarti 2009 Basi di Dati 23 Interrogazioni con raggruppamento Calcolare la media di ogni studente select Studente,avg(Voto) as Media from Esami group by Studente Lorenzo Sarti 2009 Basi di Dati 24

Interrogazioni con raggruppamento II Calcolare la media di ogni studente Studente Voto Corso A80198760 28 01 A80293450 30 04 A80198760 27 03 A80293450 25 03 A80293450 21 05 select Studente,avg(Voto) as Media from Esami group by Studente Studente Voto A80198760 28 A80198760 27 A80293450 30 A80293450 25 A80293450 21 Studente Media A80198760 27.500 A80293450 25.333 Lorenzo Sarti 2009 Basi di Dati 25 Restrizioni della sintassi Una interrogazione scorretta select cognome, nome, data di nascita from studenti left join Esami on Matricola = Studente group by cognome, nome Una interrogazione corretta select cognome, nome, data di nascita from studenti left join Esami on Matricola = Studente group by cognome, nome, data di nascita Lorenzo Sarti 2009 Basi di Dati 26

Interrogazioni con raggruppamento e selezione Si possono selezionare solo alcuni raggruppamenti in base a condizioni di tipo aggregato Trovare la media degli studenti che hanno sostenuto almeno 3 esami Studente Voto Corso A80198760 28 01 A80293450 30 04 A80198760 27 03 A80293450 25 03 A80293450 21 05 select Studente,avg(Voto) as Media from Esami group by Studente having count(*)>=3 Studente Voto A80198760 28 A80198760 27 A80293450 30 A80293450 25 A80293450 21 Studente Media A80293450 25.333 Lorenzo Sarti 2009 Basi di Dati 27 Having vs where select Studente,avg(Voto) from Esami group by Studente having avg(voto)>25 Gli studenti con media maggiore di 25 Fare la media usando solo i voti maggiori di 25 select Studente,avg(Voto) from Esami group by Studente where voto>25 Lorenzo Sarti 2009 Basi di Dati 28