Fondamenti di Informatica e Programmazione Prof. G ianni D Angelo Email: giadangelo@unisa.it A. A. 2018/ 19
Le Origini di SQL Principali Versioni Anni 70 1986 SEQUEL Structured English QUEry Language Sviluppato da R. F. Boyce e D. Chamberlin Accesso ai dati memorizzati nei database implementati mediante System R di IBM SQL-86 [Structured Query Language] Prima standardizzazione ANSI (American National Standards Institute) 1989 1992 1999 SQL 1 / SQL-89 SQL 2 / SQL-92 SQL 3 / SQL:1999
Concetti Introduttivi 1/3 SQL permette di manipolare i dati, interrogare un database relazionale e definirne/modellarne la struttura È considerato uno degli standard principali per la manipolazione dei dati in database relazionali Con SQL possiamo quindi interagire con la base di dati ed ottenere le informazioni in essa presenti Eventualmente specificando filtri e condizioni
Concetti Introduttivi 2/3 Modalità di utilizzo del linguaggio SQL: Interattiva Si interagisce interattivamente con la base di dati, mediante il linguaggio SQL Compilativa SQL può essere utilizzato per mezzo di un linguaggio ospite, detto host (ad es., un linguaggio di programmazione) Nel linguaggio host vengono appropriatamente immerse le istruzioni SQL
Concetti Introduttivi 3/3 SQL NON è un linguaggio di programmazione convenzionale (come, ad esempio, Java, C, C++, ecc.), ma è un linguaggio dichiarativo Mediante SQL infatti è possibile specificare «cosa fare» e non «come fare» Fornisce maggiore astrazione rispetto ai linguaggi di programmazione
Cosa è possibile fare con SQL? Creare nuove tabelle nel database Cancellare tabelle dal database Eseguire interrogazioni su una base di dati Reperire dati da una base di dati Inserire e aggiornare record Ecc.
Convenzioni sul Linguaggio Convenzioni sul Linguaggio utilizzate nelle Slide Tabella Entità del modello E-R Campo/Colonna Attributo del modello E-R Comandi riportati in MAIUSCOLO E GRASSETTO SQL non fa differenza se non per i valori nei campi della tabella (entità) Nomi degli oggetti (tabelle, campi, ecc.) composti da lettere, numeri e carattere underscore (_) Riportati in minuscolo e corsivo Primo carattere deve essere una lettera o un underscore
Cosa è possibile fare con SQL? Creare nuove tabelle nel database Cancellare tabelle dal database Eseguire interrogazioni su una base di dati Reperire dati da una base di dati Inserire e aggiornare record Ecc.
Creazione di una Tabella 1/3 Sintassi SQL per la creazione di una tabella CREATE TABLE nome_tabella ( nome_campo1 TIPO_CAMPO1 VINCOLI_CAMPO1, nome_campo2 TIPO_CAMPO2 VINCOLI_CAMPO2,... nome_campon TIPO_CAMPON VINCOLI_CAMPON )
Creazione di una Tabella 2/3 Principali tipi dei valori che un campo può assumere Stringhe di caratteri VARCHAR(N) N indica la dimensione della stringa Esempio VARCHAR(20) Stringa di 20 caratteri TEXT Valori numerici INT FLOAT (numero in virgola mobile) Date e Orari DATE TIME TIMESTAMP I valori vanno specificati tra apici o virgolette
Creazione di una Tabella 2/3 Esempio CREATE TABLE studente ( matricola VARCHAR(10) PRIMARY KEY, nome VARCHAR(20) NOT NULL, cognome VARCHAR(20) NOT NULL, data_nascita DATE )
Creazione di una Tabella 3/3 Esempio CREATE TABLE studente ( matricola VARCHAR(10) PRIMARY KEY, nome VARCHAR(20) NOT NULL, cognome VARCHAR(20) NOT NULL, data_nascita DATE ) Creazione della tabella studente (inizialmente vuota) con i seguenti campi matricola Tipo: Stringa di 10 caratteri (VARCHAR(10)) Attributo Chiave (PRIMARY KEY) cognome e nome Tipo: Stringhe di 20 caratteri (VARCHAR(20)) Non sono ammessi valori nulli (NOT NULL) data_nascita Tipo: Data (DATE)
Creazione di una Tabella 3/3 Esempio CREATE TABLE studente ( matricola VARCHAR(10) PRIMARY KEY, nome VARCHAR(20) NOT NULL, cognome VARCHAR(20) NOT NULL, data_nascita DATE ) Tabella studente matricola nome cognome data_nascita
Cosa è possibile fare con SQL? Creare nuove tabelle nel database Cancellare tabelle dal database Eseguire interrogazioni su una base di dati Reperire dati da una base di dati Inserire e aggiornare record Ecc.
Cancellazione di una Tabella Sintassi SQL per la cancellazione di una tabella dal database selezionato DROP TABLE nome_tabella Esempio DROP TABLE studente
Cosa è possibile fare con SQL? Creare nuove tabelle nel database Cancellare tabelle dal database Eseguire interrogazioni su una base di dati Reperire dati da una base di dati Inserire e aggiornare record Ecc.
SQL e Tavola CRUD SQL è in grado di eseguire query (interrogazioni) al database ed operazioni di aggiornamento e cancellazione di record nelle tabelle SQL soddisfa la tavola di operazioni, denominata CRUD CRUD CREATE READ UPDATE DELETE
Tavola CRUD CRUD CREATE READ UPDATE DELETE
Tavola CRUD CRUD CREATE CREATE Inserire nuovi record in tabelle READ Leggere e ottenere dati dal database UPDATE Aggiornare record nel database DELETE Cancellare record dal database READ UPDATE DELETE
Tavola CRUD CRUD CREATE CREATE Inserire nuovi record in tabelle READ Leggere e ottenere dati dal database UPDATE Aggiornare record nel database DELETE Cancellare record dal database READ UPDATE DELETE
Inserimento di un Record 1/2 Sintassi SQL per l inserimento di un record in una tabella INSERT INTO nome_tabella ( nome_campo1, nome_campo2,... nome_campon ) VALUES ( valore1, valore2,... valoren )
Inserimento di un Record 2/2 Sintassi SQL per l inserimento di un record in una tabella Esempio INSERT INTO studente ( matricola, nome, cognome, data_nascita ) VALUES ( 00001, Mario, Rossi, 1990/04/10 )
Inserimento di un Record 2/2 Esempio studente matricola nome cognome data_nascita (Tabelle inizialmente vuota)
Inserimento di un Record 2/2 Esempio Esecuzione Istruzione SQL INSERT INTO studente ( matricola, nome, cognome, data_nascita ) VALUES ( 00001, Mario, Rossi, 1990/04/10 ) studente matricola nome cognome data_nascita (Tabelle inizialmente vuota)
Inserimento di un Record 2/2 Esempio studente matricola nome cognome data_nascita studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 (Tabella dopo l inserimento del record)
Tavola CRUD CRUD CREATE READ CREATE Inserire nuovi record in tabelle READ Leggere e ottenere dati dal database UPDATE Aggiornare record nel database DELETE Cancellare record dal database UPDATE DELETE
Interrogazione 1/4 Sintassi SQL per l operazione di interrogazione (query) al database SELECT nome_campo1,..., nome_campon FROM tabella1,..., tabellan WHERE condizioni
Interrogazione 2/4 SELECT nome_campo1,..., nome_campon FROM tabella1,..., tabellan WHERE condizioni SELECT Specifica le colonne (attributi) che appariranno nel risultato dell interrogazione FROM Specifica le tabelle su cui verrà eseguita l interrogazione WHERE [Clausola Opzionale] Specifica una o più condizioni, mediante il quale i record devono essere filtrati nei risultati dell interrogazione
Interrogazione 3/4 Esempio 1 SELECT nome FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente
Interrogazione 3/4 Esempio 1 SELECT nome FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente nome Mario Giovanni Mario
Interrogazione 3/4 Esempio 1 SELECT nome FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente nome Mario Giovanni Mario Risultato dell interrogazione
Interrogazione 3/4 Esempio 2 SELECT cognome FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente cognome Rossi Gialli Blu
Interrogazione 3/4 Esempio 3 SELECT * FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente Risultato dell interrogazione matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05
Interrogazione 3/4 Esempio 3 SELECT * FROM studente L asterisco * permette di selezionare tutti gli attributi matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente Risultato dell interrogazione matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05
Interrogazione 4/4 La Clausola WHERE 1/20 La clausola WHERE può essere utilizzata per diversi scopi durante un interrogazione (condizioni di ricerca) Comparazione Vengono ricercati record, comparando due espressioni Intervallo Vene verificato se un valore specificato rientra in un dato intervallo Parola chiave: BETWEEN Pattern Matching Viene verificato se una espressione corrisponde ad un pattern di stringa specificato (esempi nelle prossime slide) Parola chiave: LIKE Valori NULLI Viene verificato se una certa espressione restituisce un valore NULLO Parole chiavi: IS NULL
Interrogazione 4/4 La Clausola WHERE 1/20 Operatori per la Comparazione Operatore SQL Descrizione = Uguaglianza (Uguale a) <> Disuguaglianza (Diverso da) < Minore > Maggiore <= Minore o Uguale >= Maggiore o Uguale
Interrogazione 4/4 La Clausola WHERE 1/21 Operatori Logici Operatore SQL AND OR NOT Descrizione Operatore AND Operatore OR Operatore NOT
Interrogazione 4/4 La Clausola WHERE 2/21 Esempio 4 SELECT nome FROM studente WHERE nome = Mario matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente nome Mario Mario
Interrogazione 4/4 La Clausola WHERE 3/21 Esempio 5 SELECT nome, cognome FROM studente WHERE nome = Mario matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente nome Mario Mario cognome Rossi Blu
Interrogazione 4/4 La Clausola WHERE 4/21 Esempio 6 SELECT * FROM studente WHERE nome = Mario matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella: studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00003 Mario Blu 1990/02/05
Interrogazione 4/4 La Clausola WHERE 5/21 Esempio 7 Tabella: cliente SELECT nome, cognome FROM cliente WHERE citta = Salerno clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli nome Silvio Maria cognome Blu Azzurro
Interrogazione 4/4 La Clausola WHERE 6/21 Esempio 8 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT nome, cognome FROM cliente WHERE citta = Salerno AND cap = 84121 nome Silvio cognome Blu
Interrogazione 4/4 La Clausola WHERE 7/21 Esempio 9 SELECT prodid FROM giocattolo WHERE prezzo >= 20 AND prezzo <= 40 Tabella: giocattolo prodid descrizione prezzo 2504 Peluche 10 2809 Macchinina 25 3487 Pista 50 2980 Bambola 30 prodid 2809 2980
Interrogazione 4/4 La Clausola WHERE 8/21 Esempio 10 SELECT prodid FROM giocattolo WHERE prezzo <= 20 OR prezzo > 30 Tabella: giocattolo prodid descrizione prezzo 2504 Peluche 10 2809 Macchinina 25 3487 Pista 50 2980 Bambola 30 prodid 2504 3487
Interrogazione 4/4 La Clausola WHERE 9/21 Esempio 11 SELECT prodid FROM giocattolo WHERE prezzo BETWEEN 20 AND 45 Tabella: giocattolo prodid descrizione prezzo 2504 Peluche 10 2809 Macchinina 25 3487 Pista 50 2980 Bambola 30 prodid 2809 2980
Interrogazione 4/4 La Clausola WHERE 10/21 Esempio 12 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT clienteid, nome, cognome FROM cliente WHERE citta IN ( Salerno, Baronissi )
Interrogazione 4/4 La Clausola WHERE 10/21 Esempio 12 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT clienteid, nome, cognome FROM cliente WHERE citta IN ( Salerno, Baronissi ) Con la clausola IN, viene verificato se il valore, di un campo specificato (in questo esempio, il campo citta), appartiene all insieme indicato (nell esempio, l insieme è costituito da due elementi: Salerno e Baronissi )
Interrogazione 4/4 La Clausola WHERE 10/21 Esempio 12 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT clienteid, nome, cognome FROM cliente WHERE citta IN ( Salerno, Baronissi ) clienteid nome cognome 52 Silvio Blu 58 Maria Azzurro 60 Luigi Magenta
Interrogazione 4/4 La Clausola WHERE 11/21 Esempio 13 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT clienteid, nome, cognome FROM cliente WHERE citta IN ( Eboli, Baronissi )
Interrogazione 4/4 La Clausola WHERE 11/21 Esempio 13 Tabella: cliente clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli SELECT clienteid, nome, cognome FROM cliente WHERE citta IN ( Eboli, Baronissi ) clienteid nome cognome 60 Luigi Magenta 61 Giorgio Viola
Interrogazione 4/4 La Clausola WHERE 12/21 In SQL le stringhe sono racchiuse tra apici (ad esempio, ciao ) L operatore LIKE è utilizzato per il pattern matching nelle stringhe, ovvero, per l identificazione di stringhe il cui schema è specificato Esempi di pattern (schemi) di ricerca 1. «tutte le stringhe che iniziano con la sottostringa E» Sintassi SQL: LIKE E% 2. «tutte le stringhe che finiscono con la sottostringa ire» Sintassi SQL: LIKE %ire 3. «tutte le stringhe che contengono la sottostringa mare» Sintassi SQL: LIKE %mare% 4. «tutte le stringhe Cas_ in cui l ultimo carattere può essere qualsiasi» Sintassi SQL: LIKE Cas_ 5. «tutte le stringhe che contengono la sottostringa m_re, dove il secondo carattere può essere qualsiasi» Sintassi SQL: LIKE %m_re%
Interrogazione 4/4 La Clausola WHERE 13/21 Esempio 14 Tabella: cliente SELECT clienteid, nome, cognome FROM cliente WHERE nome LIKE Ma% clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli clienteid nome cognome 50 Mario Rossi 58 Maria Azzurro
Interrogazione 4/4 La Clausola WHERE 14/21 Esempio 15 Tabella: cliente SELECT nome, cognome FROM cliente WHERE nome LIKE %io clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli nome Mario Giulio Silvio Giorgio cognome Rossi Bianchi Blu Viola
Interrogazione 4/4 La Clausola WHERE 15/21 Esempio 16 Tabella: cliente SELECT cognome FROM cliente WHERE cognome LIKE %a% clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli cognome Bianchi Azzurro Magenta Viola
Interrogazione 4/4 La Clausola WHERE 16/21 Esempio 17 Tabella: cliente SELECT nome FROM cliente WHERE nome LIKE M%a clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli nome Maria
Interrogazione 4/4 La Clausola WHERE 17/21 Esempio 18 Tabella: cliente SELECT nome FROM cliente WHERE nome LIKE %g% clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli nome Giulio Luigi Giorgio
Interrogazione 4/4 La Clausola WHERE 18/21 Esempio 19 Tabella: cliente SELECT clienteid, nome, cognome FROM cliente WHERE cap LIKE 8412_ clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli clienteid nome cognome 52 Silvio Blu 58 Maria Azzurro
Interrogazione 4/4 La Clausola WHERE 19/21 Esempio 20 Tabella: cliente SELECT clienteid FROM cliente WHERE cap LIKE 84_2_ clienteid nome cognome cap citta 50 Mario Rossi 84084 Fisciano 51 Giulio Bianchi 84084 Fisciano 52 Silvio Blu 84121 Salerno 58 Maria Azzurro 84125 Salerno 60 Luigi Magenta 84081 Baronissi 61 Giorgio Viola 84025 Eboli clienteid 52 58 61
Interrogazione 4/4 La Clausola WHERE 20/21 Valori NULLI e NON NULLI Esempio 21 Tabella: auto SELECT autoid, marca, modello FROM auto WHERE immatricolazione IS NOT NULL autoid marca modello immatricolazione FIAT500_1 FIAT 500 2011 FIAT500L_1 FIAT 500L 2014 ALFAGIULIA_1 Alfa Romeo Giulia 2016 JEEPR_1 Jeep Renegade 2015 FIAT500_2 FIAT 500 NULL autoid marca modello FIAT500_1 FIAT 500 FIAT500L_1 FIAT 500L ALFAGIULIA_1 Alfa Romeo Giulia JEEPR_1 Jeep Renegade
Interrogazione 4/4 La Clausola WHERE 21/21 Valori NULLI e NON NULLI Esempio 22 Tabella: auto SELECT autoid FROM auto WHERE immatricolazione IS NULL autoid marca modello immatricolazione FIAT500_1 FIAT 500 2011 FIAT500L_1 FIAT 500L 2014 ALFAGIULIA_1 Alfa Romeo Giulia 2016 JEEPR_1 Jeep Renegade 2015 FIAT500_2 FIAT 500 NULL autoid FIAT500_2
Tavola CRUD CRUD CREATE READ CREATE Creare nuovi database Creare nuove Tabelle in database esistenti Inserire nuovi record in tabelle READ Leggere e ottenere dati dal database UPDATE Aggiornare record nel database DELETE Cancellare record dal database UPDATE DELETE
Aggiornamento di Record 1/3 Sintassi SQL per l aggiornamento di record in una tabella UPDATE nome_tabella SET nome_campo1 = nuovo_valore1, nome_campo2 = nuovo_valore2,... nome_campon = nuovo_valoren WHERE condizioni Le condizioni della clausola WHERE di UPDATE possono essere definite analogamente a come fatto per la clausola WHERE di SELECT (interrogazione)
Aggiornamento di Record 2/3 Esempio 1 UPDATE studente SET cognome = Magenta, WHERE nome = Mario matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 matricola nome cognome data_nascita 00001 Mario Magenta 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Magenta 1990/02/05
Aggiornamento di Record 3/3 Esempio 2 UPDATE studente SET nome = Aldo, WHERE matricola = 00001 matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 matricola nome cognome data_nascita 00001 Aldo Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05
Tavola CRUD CRUD CREATE READ CREATE Inserire nuovi record in tabelle READ Leggere e ottenere dati dal database UPDATE Aggiornare record nel database DELETE Cancellare record dal database UPDATE DELETE
Cancellazione di Record 1/4 Sintassi SQL per la cancellazione di record da una tabella DELETE FROM nome_tabella WHERE condizioni Se non viene specificata la clausola WHERE viene svuotata tutta la tabella DELETE FROM nome_tabella Le condizioni della clausola WHERE di DELETE possono essere definite analogamente a come fatto per la clausola WHERE di SELECT (interrogazione)
Cancellazione di Record 2/4 Esempio 1 DELETE FROM studente WHERE matricola = 00002 Tabella studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella studente dopo l esecuzione dell istruzione SQL matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00003 Mario Blu 1990/02/05
Cancellazione di Record 3/4 Esempio 2 DELETE FROM studente WHERE nome = Mario Tabella studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella studente dopo l esecuzione dell istruzione SQL matricola nome cognome data_nascita 00002 Giovanni Gialli 1990/05/02
Cancellazione di Record 3/4 Esempio 3 DELETE FROM studente WHERE nome = Giovanni OR cognome = Blu Tabella studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella studente dopo l esecuzione dell istruzione SQL matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10
Cancellazione di Record 4/4 Esempio 4 DELETE FROM studente matricola nome cognome data_nascita 00001 Mario Rossi 1990/04/10 00002 Giovanni Gialli 1990/05/02 00003 Mario Blu 1990/02/05 Tabella studente dopo l esecuzione dell istruzione SQL matricola nome cognome data_nascita