SQL per la modifica di basi di dati
Data Manipulation Language 19/07/10 SQL per la modifica di basi di dati Introduciamo ora il  Data Manipulation Language (D...
SQL per modificare basi di dati <ul><li>I dati possono essere modificati mediante tre </li></ul><ul><li>istruzioni: </li><...
Insert semplice <ul><li>Supponiamo di volere inserire un nuovo dato in  </li></ul><ul><li>una tabella. Tale operazione si ...
Regole per l’inserimento caratteri e date 19/07/10 SQL per la modifica di basi di dati I dati  char, varchar , vanno inser...
Insert, Esempio 1 19/07/10 SQL per la modifica di basi di dati INSERT INTO  Esami  (Corso, Matricola, Voto) VALUES  (‘DB1’...
Insert, Esempio 2 19/07/10 SQL per la modifica di basi di dati INSERT   INTO  Esami VALUES  (‘DB2’, ‘Verdi’, ‘123123’, 30)...
Esercizio 1 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella categorie i seguenti elementi Cat_cod Cat_...
Esercizio 1, soluzione 19/07/10 SQL per la modifica di basi di dati Insert into categorie Values (‘L10’, ‘Libreria’) Inser...
Esercizio 2 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella Componenti i valori Com_cod = 0010 Com_des...
Esercizio 2… Problemi? 19/07/10 SQL per la modifica di basi di dati Il DBMS si rifiuta di inserire questo dato? Perché sec...
Esercizio 3 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella Articoli la riga contenente i valori Art_c...
Esercizio 4 19/07/10 SQL per la modifica di basi di dati Inserire i valori della tabella Laboratori, come figurano  nel fo...
Insert mediante SELECT 19/07/10 SQL per la modifica di basi di dati E’ possibile effettuare un insert prendendo i dati da ...
Delete 19/07/10 SQL per la modifica di basi di dati <ul><li>Cancellazione di righe da tabelle </li></ul><ul><li>Sintassi: ...
Delete, esempio 19/07/10 SQL per la modifica di basi di dati <ul><li>Cancellare dalla tabella Esami i dati relativi allo s...
Esercizio 19/07/10 SQL per la modifica di basi di dati Cancellare dalla tabella Categorie la riga la cui descrizione  è ‘S...
Delete <ul><li>La condizione del delete può essere una normale  </li></ul><ul><li>condizione di SELECT (vedremo dopo) </li...
Update 19/07/10 SQL per la modifica di basi di dati <ul><li>Inoltre è possibile aggiornare alcuni dati seguendo la </li></...
Update, esempi 19/07/10 SQL per la modifica di basi di dati Esempio:  Dalla tabella Aule modificare il numero dell’aula da...
Upcoming SlideShare
Loading in …5
×

SQL per la modifica di basi di dati

674 views
592 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
674
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SQL per la modifica di basi di dati

  1. 1. SQL per la modifica di basi di dati
  2. 2. Data Manipulation Language 19/07/10 SQL per la modifica di basi di dati Introduciamo ora il Data Manipulation Language (DML) ossia il linguaggio SQL che serve per inserire , modificare e cancellare i dati del database, ma anche per interrogare il database , ossia estrarre i dati dal database. Inizialmente descriveremo le istruzioni che servono a inserire, cancellare e modificare i dati. In seguito introdurremo le istruzioni per estrarre dal database le informazioni che ci interessano.
  3. 3. SQL per modificare basi di dati <ul><li>I dati possono essere modificati mediante tre </li></ul><ul><li>istruzioni: </li></ul><ul><ul><li>Insert </li></ul></ul><ul><ul><li>Delete </li></ul></ul><ul><ul><li>Update </li></ul></ul>19/07/10 SQL per la modifica di basi di dati
  4. 4. Insert semplice <ul><li>Supponiamo di volere inserire un nuovo dato in </li></ul><ul><li>una tabella. Tale operazione si realizza </li></ul><ul><li>mediante l’istruzione </li></ul><ul><li>INSERT INTO… VALUES </li></ul><ul><li>Sintassi: </li></ul><ul><li>INSERT INTO nome tabella </li></ul><ul><li>[(ListaAttributi)] VALUES (ListaDiValori) | </li></ul><ul><li>SQLSelect </li></ul>19/07/10 SQL per la modifica di basi di dati
  5. 5. Regole per l’inserimento caratteri e date 19/07/10 SQL per la modifica di basi di dati I dati char, varchar , vanno inseriti tra apici Una data deve essere inserita fra apici e deve essere espressa nel formato di default di ORACLE. Questa edizione di Oracle accetta il formato di data italiano ossia giorno, mese, anno (dd-mon-aaaa), inframezzati da / o da - , dove il mese va espresso con le sue prime tre lettere (gen,feb,…) e l’anno per intero. Esempio: ’15/giu/2004’ , ’21-gen-2007’
  6. 6. Insert, Esempio 1 19/07/10 SQL per la modifica di basi di dati INSERT INTO Esami (Corso, Matricola, Voto) VALUES (‘DB1’, ‘123456’, 27) Supponiamo di avere definito la tabella: Ai valori non attribuiti viene assegnato NULL, a meno che non sia specificato un diverso valore di default. L’inserimento fallisce se NULL non è permesso per gli attributi mancanti. Esami Corso Insegnante Matricola Voto Corso Insegnante Matricola Voto DB1 NULL 123456 27
  7. 7. Insert, Esempio 2 19/07/10 SQL per la modifica di basi di dati INSERT INTO Esami VALUES (‘DB2’, ‘Verdi’, ‘123123’, 30) Non specificare gli attributi equivale a specificare tutte le colonne della tabella. NB: Si deve rispettare l’ordine degli attributi Corso Insegnante Matricola Voto DB1 NULL 123456 27 DB2 Verdi 123123 30
  8. 8. Esercizio 1 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella categorie i seguenti elementi Cat_cod Cat_descrizione L10 Libreria M10 Mobile M20 Armadio S10 Sedia T10 Tavolo
  9. 9. Esercizio 1, soluzione 19/07/10 SQL per la modifica di basi di dati Insert into categorie Values (‘L10’, ‘Libreria’) Insert into Categorie Values(‘M10’, ‘Mobile’) Insert into Categorie Values(‘M20’, ‘Armadio’) Insert into Categorie Values(‘S10’, ‘Sedia’) Insert into Categorie Values(‘T10’, ‘Tavolo’)
  10. 10. Esercizio 2 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella Componenti i valori Com_cod = 0010 Com_descrizione = Montante laterale 100 cm Com_costo = 50.00 Lab_cod = 0010
  11. 11. Esercizio 2… Problemi? 19/07/10 SQL per la modifica di basi di dati Il DBMS si rifiuta di inserire questo dato? Perché secondo voi? La colonna lab_cod di Componenti fa riferimento alla Colonna lab_cod della tabella Laboratori , i cui elementi non sono ancora stati inseriti. In particolare, il valore ‘0010’ non è ancora presente nella colonna lab_cod della tabella Laboratori, quindi il DBMS non sa a cosa si riferisce il valore 0010 che si cerca di inserire nella colonna lab_cod della tabella Componenti. Occorre prima inserire i valori nella tabella Laboratori!
  12. 12. Esercizio 3 19/07/10 SQL per la modifica di basi di dati Inserire nella tabella Articoli la riga contenente i valori Art_cod=L100 Cat_cod=L10 Art_descrizione=Libreria 100 cm x 120 cm Art_prezzo=475.00 Art_IVA=20 Art_Spese_trasporto=48.00 Continuare con l’inserimento dei dati nel foglio di esercizi
  13. 13. Esercizio 4 19/07/10 SQL per la modifica di basi di dati Inserire i valori della tabella Laboratori, come figurano nel foglio di esercitazione. Quindi inserire i valori di Componenti!
  14. 14. Insert mediante SELECT 19/07/10 SQL per la modifica di basi di dati E’ possibile effettuare un insert prendendo i dati da un’altra tabella. Questo è possibile mediante il comando di interrogazione del database SELECT , che vedremo nelle prossime lezioni. Parleremo in seguito di questo tipo di inserimento di dati. Con questo tipo di insert si possono effettuare tanti inserimenti simultaneamente. Esempio: Tabella: Indirizzi_Studenti( Indirizzo, Telefono, Email) INSERT INTO Indirizzi_Studenti (Indirizzo, Telefono) SELECT Indirizzo, Telefono FROM Studenti
  15. 15. Delete 19/07/10 SQL per la modifica di basi di dati <ul><li>Cancellazione di righe da tabelle </li></ul><ul><li>Sintassi: </li></ul><ul><ul><li>DELETE FROM nome_tabella [ WHERE Condizione] </li></ul></ul>Per eliminare un elemento bisogna individuare quale. Questo si può stabilire mediante la clausola WHERE , dove viene stabilita una condizione che individua l’elemento (o gli elementi) da cancellare. Spesso un particolare elemento può essere individuato mediante il suo valore nella chiave primaria.
  16. 16. Delete, esempio 19/07/10 SQL per la modifica di basi di dati <ul><li>Cancellare dalla tabella Esami i dati relativi allo studente il cui numero di matricola è ‘123456’ </li></ul><ul><ul><li>DELETE FROM Esami WHERE Matricola = ‘123456’ </li></ul></ul><ul><li>Operazione non reversibile </li></ul><ul><li>Se la condizione è omessa questa istruzione cancella l’intero contenuto della tabella </li></ul><ul><li>(!!! Attenzione quindi !!!) </li></ul><ul><li>Lo schema invece non viene modificato. L’istruzione </li></ul><ul><ul><li>DELETE FROM Esami </li></ul></ul><ul><li>Restituisce la tabella Esami con l’istanza vuota </li></ul>
  17. 17. Esercizio 19/07/10 SQL per la modifica di basi di dati Cancellare dalla tabella Categorie la riga la cui descrizione è ‘Sedia’ Delete from Categorie Where cat_descrizione=‘Sedia’
  18. 18. Delete <ul><li>La condizione del delete può essere una normale </li></ul><ul><li>condizione di SELECT (vedremo dopo) </li></ul><ul><li>Questa modalità di delete permette di cancellare più </li></ul><ul><li>righe con un’unica istruzione, purchè le righe soddisfino </li></ul><ul><li>la condizione. </li></ul><ul><li>Esempio: </li></ul><ul><li>Eliminare tutte le righe della tabella esami in cui il </li></ul><ul><li>numero di matricola non si trova nella tabella </li></ul><ul><li>Studenti </li></ul><ul><li>DELETE FROM Esami </li></ul><ul><li>WHERE Matricola NOT IN </li></ul><ul><li>(SELECT Matricola FROM Studenti) </li></ul>19/07/10 SQL per la modifica di basi di dati
  19. 19. Update 19/07/10 SQL per la modifica di basi di dati <ul><li>Inoltre è possibile aggiornare alcuni dati seguendo la </li></ul><ul><li>seguente sintassi: </li></ul><ul><li>UPDATE Tabella </li></ul><ul><li>SET Attributo = Espr </li></ul><ul><li>WHERE Condizione </li></ul>
  20. 20. Update, esempi 19/07/10 SQL per la modifica di basi di dati Esempio: Dalla tabella Aule modificare il numero dell’aula da 3 a 7. UPDATE Aule SET Aula = 7 WHERE Aula = 3 Esempio: modificare il valore del reddito delle persone più giovani di 30 anni attribuendo loro un aumento del 10%. UPDATE Persone SET Reddito = Reddito * 1.1 WHERE Eta < 30

×