Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C

Slides:



Advertisements
Presentazioni simili
Istruzione SELECT (versione base)
Advertisements

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 16/10/2002.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
SQL Linguaggio per l’interrogazione di una base dati.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 24/09/2002.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A. A – 2008 Basi di dati 1 Corso Prof
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Corso di Basi di Dati Il Linguaggio SQL
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
SQL, Definizione e interrogazione di basi di dati
SQL per la modifica di basi di dati
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Il modello relazionale
Operatori aggregati e raggruppamenti
Quantificazione Esistenziale ed Universale
Selezione e Proiezione
Condizioni decisionali
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere.
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C. Batini 7. SQL DML 7.3 Select - 3

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Notazione Se A e’ il nome di un attributo ed X e’ il nome di una relazione su cui e’ definito A X.A denota l’attributo A della relazione X 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 SELECT, abbreviazioni Data lo schema di relazione R(A,B) select * from R equivale a select X.A as A, X.B as B from R X where true Operatore di ridenominazione Le estraggo tutte 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

Espressioni aritmetiche nella target list 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

Sono ammesse espressioni aritmetiche nella target list Persone Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Trova il reddito annuo di Luigi, e calcola quindi il reddito semestrale Select Reddito/2 as redditoSemestrale from Persone where Nome = 'Luigi‘ 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Condizione complessa Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Trova tutti gli attributi delle persone per le quali il reddito e’ >25 e l’eta’ e’ compresa tra 30 e 60 Domanda 7.3.1 Quale o quali relazioni sono coinvolte nella SELECT e vanno quindi citate nella FROM? 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Risposta Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Trova tutti gli attributi delle persone per le quali il reddito e’ >25 e l’eta’ e’ compresa tra 30 e 60 L’unica relazione coinvolta e’ Persone 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Condizione complessa Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Trova tutti gli attributi delle persone per le quali il reddito e’ >25 e l’eta’ e’ compresa tra 30 e 60 select * from persone where reddito > 25 and (eta >= 30 and eta <= 60) 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Condizione “LIKE” Seleziona stringhe di caratteri _ indica carattere arbitrario % indica stringa con un numero arbitrario di caratteri Esempio: Seleziona le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera select * from persone where nome like 'A_d%' 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

Gestione dei valori nulli Stesso significato dell’ algebra relazionale: NULL e’ un valore esterno al dominio Impiegati Cognome Filiale Età Matricola Neri Milano 45 5998 Bruni NULL 9553 Neri Milano 45 5998 Rossi Roma 32 7309 Bruni NULL 9553 Neri Milano 45 5998 Bruni Milano NULL 9553 Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) select * from impiegati where eta > 40 or eta’ is null 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

Ricordiamo ancora il significato della SELECT SELECT ListaAttributi FROM ListaTabelle [WHERE Condizione] Seleziona tra le n-ple del prodotto cartesiano delle tabelle citate nella FROM, quelle che soddisfano la condizione presente nella WHERE, e di esse ne rappresenta solo gli attributi nella ListaAttributi 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Per coloro che hanno studiato l’algebra relazionale Relazione tra SQL e algebra relazionale Dati due schemi relazionali R1(A1,A2), R2(A3,A4) Consideriamo la istruzione: Select A1, A4 From R1, R2 Where A2 = A3 Operazioni associate alla istruzione: 1. prodotto cartesiano (From) 2. selezione delle n-ple che rispettano una condizione (Where) 3. proiezione su un insieme di attributi (Select) 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

SQL e algebra relazionale: corrispondenza tra operatori R1(A1,A2) R2(A3,A4) Select A1, A4 From R1, R2 Where A2 = A3 PROJ A1,A4 (SELA2=A3 (R1 R2)) 3 1 2 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Clausola PUNTO (.) Vi puo’ essere ambiguita’ nel riferire un attributo attraverso il nome, ad esempio quando piu’ tabelle hanno attributi con lo stesso nome Es. R1(A1, A2), R2 (A2, A3) In questi casi per associare univocamente gli attributi alle tabelle e’ necessario usare la notazione gia’ introdotta in precedenza nometabella.nomeattributo 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Esempio Schema Impiegato (Nome, Cognome, Citta’, Dipartimento, Ufficio) Dipartimento (Nome, Citta’) Seleziona Nome (degli impiegati), Cognome, Citta’ (del dipartimento degli impiegati) Dove sono gli attributi nello schema? 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Esempio Seleziona Nome (degli impiegati), Cognome, Citta’ (del dipartimento degli impiegati) Schema Impiegato (Nome, Cognome, Citta’, Dipartimento, Ufficio) Dipartimento (Nome, Citta’) 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Esempio Seleziona Nome (degli impiegati), Cognome, Citta’ (del dipartimento degli impiegati) Schema Impiegato (Nome, Cognome, Citta’, Dipartimento, Ufficio) Dipartimento (Nome, Citta’) Vogliamo trovare Nome, Cognome e “Citta’ del Dipartimento” di tutti gli impiegati 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Soluzione Schema Impiegato (Nome, Cognome, Citta’, Dipartimento, Ufficio, Dipartimento (Nome, Citta’) Select I.Nome, Cognome, D.Citta’ From Impiegato as I, Dipartimento as D Where Dipartimento = D.Nome N.B. Per l’attributo Dipartimento non e’ necessario usare la clausola . 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4

adattato da Atzeni-etal., Basi di dati, Capitolo 4 Concetti introdotti Condizione complessa Espressione artimentica nella target list Corrispondenza tra SELECT e interrogazioni nell’algebra relazionale Condizione LIKE Clausola PUNTO (.) 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 4