1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
1 Comandi per la manipolazione dei dati. 2 Tipi di comandi INSERT UPDATE DELETE COMANDI COMANDI 2.
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Semantica delle Informazioni
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL Per la modifica di basi di dati
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Equivalenza di espressioni
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Basi di Dati - 3 Dati su più tabelle Informatica 1 (SAM) - a.a. 2010/11.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
Pagine ASP parte 3 I data base Stefano Schacherl.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
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?
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
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
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Transcript della presentazione:

1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA

2 Introduzione Cosè SQL (Structured Query Language)? E un linguaggio che consente di gestire le Basi di Dati relazionali. Esso è contemporaneamente un: Data Definition Language (DDL), cioè consente di creare lo schema della Base di Dati (e delle relazioni) Data Manipulation Language (DML), cioè consente di manipolare le istanze della Base di Dati

3 Introduzione Vedremo come SQL (come DML) permetta di: interrogare la Base di Dati modificare la Base di Dati eseguendo: inserimenti cancellazioni modifiche Nota Bene: in questa e nelle successive slide le parole scritte in maiuscolo (salvo indicazione contraria) sono parole appartenenti al linguaggio

4 Interrogazione di una Base di Dati Listruzione SQL per interrogare una Base di Dati è SELECT. Ci limitiamo alla seguente sintassi: SELECT FROM [WHERE ] dove è la lista degli attributi (separati da virgola) i cui valori devono essere riprodotti come esito dellinterrogazione, è la lista delle tabelle (separate da virgola) coinvolte nellinterrogazione, e è una condizione da soddisfare (vedi nel seguito…). La clausola WHERE è opzionale.

5 Interrogazione di una Base di Dati Come funziona listruzione SELECT? 1.Viene eseguito il prodotto cartesiano delle tabelle specificate in (seguendo lo stesso ordine in cui vengono elencate) 2.Dallinsieme di ennuple del prodotto cartesiano del punto 1, vengono selezionate solo quelle che soddisfano della clausola WHERE (se esiste). Se non esiste la clausola WHERE vengono prese tutte le ennuple del prodotto cartesiano 3.Delle ennuple al punto 2 vengono forniti solo i valori relativi agli attributi specificati in

6 Interrogazione di una Base di Dati Come funziona listruzione SELECT? Nel caso particolare in cui sia composta da ununica tabella R, allora al punto 1 precedente vengono prese tutte le ennuple di R così come sono. NOTA: Gli esempi successivi fanno riferimento alla Base di Dati della prossima slide per cui si suppone di avere già creato lo schema. In particolare sono state definite le chiavi primarie (in rosso) di Studenti e Corsi e le due chiavi esterne (in blu) di Esami. Non si suppongno altri vincoli.

7 Interrogazione di una Base di Dati (esempio) Rossi Neri Verdi Rossi Maria Anna Fabio Luca 25/11/ /04/ /02/ /10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente MatricolaStudenteVotoCodiceCorso Studenti Esami Corsi

8 Interrogazione di una Base di Dati (esempio1) Listruzione: SELECT Cognome, Nome FROM Studenti produce loutput: Rossi Neri Verdi Rossi Maria Anna Fabio Luca

9 Interrogazione di una Base di Dati (esempio2) Listruzione: SELECT Cognome, Nome FROM Studenti WHERE Cognome=Rossi produce loutput: Rossi Maria Luca

10 Interrogazione di una Base di Dati (esempio3) Listruzione: SELECT Cognome, Nome, DataNascita FROM Studenti WHERE Matricola= produce loutput: RossiMaria25/11/1971

11 Interrogazione di una Base di Dati (esempio4) Listruzione: SELECT Cognome, Nome, Voto FROM Studenti, Esami WHERE Matricola= AND Matricola=MatricolaStudente produce loutput: Rossi Maria 28 27

12 Interrogazione di una Base di Dati (esempio5) Listruzione: SELECT Cognome, Nome, Voto, Titolo FROM Studenti, Esami, Corsi WHERE Matricola= AND Matricola=MatricolaStudente AND Codice=CodiceCorso produce loutput: Rossi Maria Analisi Chimica

13 Interrogazione di una Base di Dati (esempio5) Listruzione: SELECT Cognome, Nome, Voto, Titolo FROM Studenti, Esami, Corsi WHERE Matricola= AND Matricola=MatricolaStudente AND Codice=CodiceCorso AND Voto > 27 produce loutput: RossiMaria28Analisi

14 Interrogazione di una Base di Dati (esempio6) Listruzione: SELECT * FROM Studenti è equivalente al comando: SELECT Matricola, Cognome, Nome, DataNascita FROM Studenti * è unabbreviazione per lintera lista di attributi della tabella della clausola FROM.

15 Interrogazione di una Base di Dati Nel caso in cui le tabelle della clausola FROM condividano il nome di qualche attributo, per evitare ambiguità di interpretazione nella, si devono specificare gli attributi preceduti dal nome della tabella a cui appartengano e da un punto. Ad esempio se nella nostra Base di Dati al posto di MatricolaStudente della tabella Esami si mettesse semplicemente Matricola (stesso nome della chiave primaria della tabella Studenti), si potrebbero avere ambiguità in una SELECT che coinvolge entrambe le tabelle ed entrambi gli attributi.

16 Interrogazione di una Base di Dati (esempio7) Listruzione: SELECT Matricola FROM Studenti, Esami è ambiguo in quanto non si capisce se si intende Matricola in Studenti o Matricola in Esami. Ad esempio se si intende Matricola di Studenti, il comando corretto è: SELECT Studenti.Matricola FROM Studenti, Esami

17 Interrogazione di una Base di Dati Nella condizione della clausola WHERE, si può usare un particolare operatore denominato LIKE che permette di selezionare stringhe di caratteri che rispettano un certo modello che contiene: caratteri specifici caratteri jolly _ che denota un arbitrario carattere % che denota una stringa con un numero arbitrario di caratteri

18 Interrogazione di una Base di Dati (esempio8) Listruzione: SELECT Matricola, Cognome, Nome FROM Studenti WHERE Cognome LIKE %er% produce loutput: Neri Verdi Anna Fabio

19 Interrogazione di una Base di Dati (esempio9) Listruzione: SELECT Matricola, Cognome, Nome FROM Studenti WHERE Cognome LIKE %er_ produce loutput: NeriAnna

20 Interrogazione di una Base di Dati Nella condizione della clausola WHERE, si può usare IS NULL per ricercare le ennuple con valori nulli. Ad esempio il comando: SELECT Matricola, Cognome, Nome FROM Studenti WHERE Cognome IS NULL produce un output vuoto poiché nessuna ennupla in Studenti ha valore NULL in corrispondenza di Cognome.

21 Interrogazione di una Base di Dati Il comando SELECT permette luso di una serie di operatori aggregati che vengono valutati solo dopo avere eseguito linterrogazione di base e che servono per: contare le ennuple COUNT trovare il minimo MIN trovare il massimo MAX effettuare la somma SUM effettuare la media AVG

22 Interrogazione di una Base di Dati Loperatore COUNT conta il numero di ennuple di una tabella dopo aver eseguito uninterrogazione di base Ad esempio: SELECT COUNT(*) FROM Studenti WHERE Cognome=Rossi produce il numero di studenti (nella tabella Studenti) il cui cognome è Rossi. Linterrogazione di base si ottiene eliminando loperatore COUNT. Attenzione! COUNT non tiene conto dei valori nulli, cioè elimina, prima di iniziare il conteggio, le ennuple (generate dallinterrogazione di base) composte di soli valori nulli.

23 Interrogazione di una Base di Dati Loperatore MIN trova il minimo valore per un (solo) attributo di una tabella dopo aver eseguito uninterrogazione di base Ad esempio: SELECT MIN(DataNascita) FROM Studenti produce la data di nascita dello studente (tabella Studenti) più anziano. Linterrogazione di base si ottiene eliminando loperatore MIN. Attenzione! MIN non tiene conto dei valori nulli, cioè elimina, prima di trovare il minimo, i valori nulli per lattributo specificato come argomento.

24 Interrogazione di una Base di Dati Loperatore MAX trova il massimo valore per un (solo) attributo di una tabella dopo aver eseguito uninterrogazione di base Ad esempio: SELECT MAX(DataNascita) FROM Studenti produce la data di nascita dello studente (tabella Studenti) più giovane. Linterrogazione di base si ottiene eliminando loperatore MAX. Attenzione! MAX non tiene conto dei valori nulli, cioè elimina, prima di trovare il massimo, i valori nulli per lattributo specificato come argomento.

25 Interrogazione di una Base di Dati Loperatore SUM effettua la somma dei valori relativi a un (solo) attributo di una tabella dopo aver eseguito uninterrogazione di base Ad esempio: SELECT SUM(Voto) FROM Esami produce la somma di tutti i voti presenti nella tabella Esami. Linterrogazione di base si ottiene eliminando loperatore SUM. Attenzione! SUM non tiene conto dei valori nulli, cioè elimina, prima di trovare la somma, i valori nulli per lattributo specificato come argomento.

26 Interrogazione di una Base di Dati Loperatore AVG effettua la media dei valori relativi a un (solo) attributo di una tabella dopo aver eseguito uninterrogazione di base Ad esempio: SELECT AVG(Voto) FROM Studenti, Esami WHERE Matricola= AND Matricola=MatricolaStudente AND Codice=CodiceCorso produce la media dei voti dello studente con numero di matricola pari a Attenzione! SUM non tiene conto dei valori nulli, cioè elimina, prima di trovare la somma, i valori nulli per lattributo specificato come argomento.

27 Aggiornamento di una Base di Dati Le operazioni di aggiornamento di una Base di Dati sono: inserimento INSERT cancellazione DELETE modifica UPDATE

28 Aggiornamento di una Base di Dati Loperazione di inserimento di una ennupla in una tabella della Base di Dati viene effettuata tramite il comando INSERT: INSERT INTO ( ) VALUES( ) dove è il nome della tabella in cui si vuole effettuare linserimento, è la lista degli attributi della tabella per cui si vuole specificare un valore, è la lista che specifica i valori degli attributi di nello stesso ordine di.

29 Aggiornamento di una Base di Dati Se viene omessa, allora si fa riferimento a tutti gli attributi della tabella nello stesso ordine in cui sono stati elencati nella CREATE TABLE. Attenzione! Per gli attributi non specificati in viene inserito il valore di DEFAULT se questo è stato specificato al momento di creazione della tabella, altrimenti viene inserito il valore NULL solo però se questo non viola un eventuale vincolo di NOT NULL specificato per lattributo stesso (in caso contrario loperazione viene rifiutata).

30 Aggiornamento di una Base di Dati (esempio1) Listruzione: INSERT INTO Studenti (Matricola, Cognome, Nome) VALUES(23456, Bianchi, Stefano) inserisce in Studenti la ennupla (23456, Bianchi, Stefano, NULL) in quanto il valore per DataNascita non è stato specificato

31 Aggiornamento di una Base di Dati Loperazione di cancellazione di ennuple da una tabella della Base di Dati viene effettuata tramite il comando DELETE: DELETE FROM [WHERE ] dove è il nome della tabella da cui si vogliono cancellare le ennuple che rispettano la condizione specificata da (se esiste la clausola WHERE che è opzionale). Se la clausola WHERE viene omessa, allora tutte le ennuple della tabella vengono cancellate.

32 Aggiornamento di una Base di Dati (esempio2) Listruzione: DELETE FROM Studenti WHERE Cognome=Rossi cancella dalla tabella Studenti tutti gli studenti che hanno cognome Rossi.

33 Aggiornamento di una Base di Dati Loperazione di aggiornamento di ennuple di una tabella della Base di Dati viene effettuata tramite il comando UPDATE: UPDATE SET =, …, = [WHERE ] dove è il nome della tabella in cui si vogliono aggiornare le ennuple che rispettano la condizione specificata da (se esiste la clausola WHERE che è opzionale).

34 Aggiornamento di una Base di Dati Se la clausola WHERE viene omessa, allora tutte le ennuple della tabella vengono aggiornate. La clausola SET specifica gli attributi che devono essere aggiornati. In altre parole si prendono le ennuple che rispettano (se esiste, altrimenti si prendono tutte) e si aggiorna ogni valore di al valore specificato da, che può essere: DEFAULT NULL unespressione e altro… (che non vediamo…)

35 Aggiornamento di una Base di Dati (esempio3) Listruzione: UPDATE Studenti SET DataNascita=NULL WHERE Cognome=Rossi aggiorna al valore NULL la data di nascita degli studenti che hanno cognome Rossi.

36 Aggiornamento di una Base di Dati (esempio4) Listruzione: UPDATE Studenti SET DataNascita=DEFAULT WHERE Cognome=Rossi aggiorna al valore di default (eventualmente specificato per lattributo DataNascita nellistruzione CREATE TABLE) la data di nascita degli studenti che hanno cognome Rossi.

37 Aggiornamento di una Base di Dati (esempio5) Listruzione: UPDATE Esami SET Voto=18 WHERE Voto > 18 AND Voto <= 20 aggiorna a 18 tutti i voti degli esami con voto compreso tra 18 e 20.

38 Aggiornamento di una Base di Dati (esempio6) Listruzione: UPDATE Esami SET Voto=Voto-1 WHERE Voto > 28 decrementa di 1 i voti di tutti gli esami con voto superiore a 28.