La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Basi di dati Claudia Raibulet

Presentazioni simili


Presentazione sul tema: "Basi di dati Claudia Raibulet"— Transcript della presentazione:

1 Basi di dati Claudia Raibulet raibulet@disco.unimib.it

2 Chiave primaria Definizione:Insieme di attributi che identificano univocamente le ennuple di una relazione Esempi: Il numero di matricola identifica gli studenti: non ci sono due ennuple con lo stesso valore dellattributo Matricola I dati anagrafici identificano gli studenti: non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita

3 Limportanza della chiave primaria Lesistenza delle chiavi garantisce laccessibilità a ciascun dato della base di dati Ogni singolo valore è univocamente accessibile tramite: nome della relazione valore della chiave nome dellattributo Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni diverse (il modello relazionale è basato su valori)

4 Operazioni di aggiornamento INSERT inserisce nuove tuple nel DB DELETE cancella tuple dal DB UPDATE modifica tuple del DB Tutte le istruzioni possono operare su un insieme di tuple In ogni caso gli aggiornamenti riguardano una sola relazione sulla base di una condizione che può coinvolgere anche altre relazioni

5 Operazioni di aggiornamento INSERT può usare il risultato di una query per eseguire inserimenti multipli DELETE e UPDATE possono fare uso di condizioni per specificare le tuple da cancellare o modificare

6 INSERT INSERT INTO Tabella [ ( Attributi ) ] VALUES ( Valori ) oppure INSERT INTO Tabella [ ( Attributi )] SELECT...

7 INSERT È possibile inserire una nuova tupla specificandone i valori INSERT INTO Sedi (Sede, Responsabile, Citta) VALUES (S04, Bruni, Firenze) INSERT INTO Sedi (Sede, Citta) VALUES (S04,Firenze) -- sede senza responsabile

8 Esempi di query INSERT INSERT INTO Persone VALUES ('Mario', 25, 52) INSERT INTO Persone (Nome, Eta, Reddito) VALUES ('Pino', 25, 52) INSERT INTO Persone (Nome, Reddito) VALUES ('Lino', 55) INSERT INTO Persone (Nome) SELECT Padre FROM Paternita WHERE Padre NOT IN (SELECT Nome FROM Persone)

9 INSERT: Osservazioni Lordinamento degli attributi (se presente) e dei valori è significativo Le due liste debbono avere lo stesso numero di elementi Se la lista di attributi è omessa, si fa riferimento a tutti gli attributi della relazione, secondo lordine con cui sono stati definiti Se la lista di attributi non contiene tutti gli attributi della relazione, per gli altri viene inserito un valore nullo (che deve essere permesso) o un valore di default

10 DELETE DELETE FROM Tabella [ WHERE Condizione ] Listruzione DELETE può fare uso di una condizione per specificare le tuple da cancellare Esempio: DELETE FROM Sedi WHERE Citta = Bologna -- elimina le sedi di Bologna

11 Esempi di query DELETE DELETE FROM Persone WHERE Eta < 35 DELETE FROM Paternita WHERE Figlio NOT IN ( SELECT Nome FROM Persone) DELETE FROM Paternita

12 Osservaziono DELETE Elimina le ennuple che soddisfano la condizione Può causare (se i vincoli di integrità referenziale sono definiti con politiche di reazione cascade) eliminazioni da altre relazioni Ricordare: se la where viene omessa, si intende where true

13 DELETE Per cancellare tutte le tuple da STUDENTE (mantenendo lo schema della tabella): DELETE FROM Studente Per cancellare completamente la tabella STUDENTE (contenuto e schema): DROP TABLE Studente

14 UPDATE UPDATE NomeTabella SET Attributo = < Espressione | SELECT … | NULL | DEFAULT > [ WHERE Condizione ]

15 UPDATE Anche listruzione UPDATE può fare uso di una condizione (per specificare le tuple da modificare) e di espressioni (per determinare i nuovi valori) UPDATE Sedi SET Responsabile = Bruni, Citta = Firenze WHERE Sede = S01 UPDATE Imp SET Stipendio = 1.1 * Stipendio WHERE Ruolo = Programmatore

16 UPDATE Esempio: si vuole promuovere Gianni a dirigente e contemporaneamente aumentare il suo stipendio del 10% UPDATE Impiegati SET Mansione = 'dirigente, Stipendio = 1.10*Stipendio WHERE Nome = 'Gianni;

17 Ancora esempi UPDATE UPDATE Persone SET Reddito = 45 WHERE Nome = 'Piero' UPDATE Persone SET Reddito = Reddito * 1.1 WHERE Eta < 30

18 SELECT Le interrogazioni SQL hanno una struttura select- from-where: select AttrEspr [[ as ] Alias ] {, AttrEspr [[ as ] Alias ] } from Tabella [[ as ] Alias ] {, Tabella [[ as ] Alias ] } [ where Condizione ] Le tre parti della query sono chiamate: clausola select / target list clausola from clausola where La query effettua il prodotto cartesiano delle tabelle nella clausola from, considera solo le righe che soddisfano la condizione nella clausola where e per ogni riga valuta le espressioni nella target list

19 Esempio

20 Esempio Si chiede di selezionare tutti gli elementi presenti nella tabella Studente: SELECT * FROM Studente

21 Esempi di query Si chiede di selezionare le informazioni relative a tutti gli studenti che vivono nella citta di Bologna: SELECT * FROM Studente WHERE citta = Bologna Si chiede di selezionare il nome degli studenti del dipartimento di Inf: SELECT Nome FROM Studente WHERE CDip = Inf

22 Esempi di query Si chiede di selezionare le informazioni relative a tutti gli studenti che vivono a Torino o a Roma: SELECT * FROM Studente WHERE citta = Torino OR citta = Roma Si chiede di selezionare la matricola degli studenti del dipartimento di informatica di Torino: SELECT matr FROM Studente WHERE citta = Torino AND CDip = Inf

23 JOIN JOIN rappresenta un'importante funzionalità in quanto permette di correlare dati in relazioni diverse. In SQL il JOIN è espresso tramite un prodotto cartesiano tra tabelle a cui sono applicati uno o più predicati di join. Un predicato di join esprime una condizione che deve essere verificata dalle tuple del risultato dell'interrogazione.

24 Esempio JOIN Studenti Esami SELECT Studenti.Cognome,Studenti.Nome, Esami.Voto FROM Studenti, Esami WHERE (Studenti.Matricola = Esami.Studente) AND (Esame.Corso = Analisi I) Query: Estrarre Nome, Cognome e Voto di tutti gli studenti che hanno sostenuto lesame di Analisi I.

25 Esercizio (I) Si chiede di creare due tabelle: Tabella Giocatore caratterizzata dagli attributi Identificatore, Cognome, Nome, DataDiNascita e NomeSquadra Tabella Risultato caratterizzata dagli attibuti Data, Squadra1, Squadra2, Risultato1, Risultato2 Si chiede di indicare le chiavi primarie delle due tabelle.

26 Esercizio (II) Si chiede di inserire i seguenti dati nelle tabelle:

27 Esercizio (III) Si chiede di: Visualizzare i nome e cognomi di tutti i gioccatori della squadra del Brasile Visualizzare i risultati delle partite giocate il giorno 17 di giugno 2006

28 Esercizio (IV) Che cosa sara visualizzato come risultato dopo lesecuzione delle seguenti query: SELECT * FROM Giocatore WHERE NomeSquadra = Italia SELECT Squadra1, Squadra2 FROM Risultati WHERE Risultato1 <> Risultato2

29 Esercizio (V) Si chiede di visualizzare i risultati relativi alle partite in cui hanno vinto le sequadre ospiti.


Scaricare ppt "Basi di dati Claudia Raibulet"

Presentazioni simili


Annunci Google