Fondamenti di Informatica e Programmazione

Documenti analoghi
A.A. 2018/2019. Introduzione a SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Fondamenti di Informatica A. A / 1 9

A.A. 2018/2019. Funzioni di Aggregazione e Raggruppamenti in SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Sistemi di Elaborazione delle Informazioni

A.A. 2018/2019. Esercitazione 12. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Caratteristiche dei linguaggi per Database

Manuale SQL. Manuale SQL - 1 -

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SQL: le funzioni di aggregazione

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Select From Where...

Lezione 13. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

Lezione 12. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

Tabelle esempio: Impiegato/Dipartimento

Informatica Grafica. Basi di dati parte 2

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Stringhe di caratteri

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

Laboratorio di Basi di Dati

Structured Query Language

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Corso di Basi di Dati A.A. 2015/2016

Fondamenti di Informatica e Programmazione

SQL DDL. Create database. Alter database. Drop database

Elena Baralis 2007 Politecnico di Torino 1

D B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE

Appunti su SQL. Query Language. Comando Select

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

Elena Baralis 2013 Politecnico di Torino 1

PROGETTAZIONE DI DATABASE

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Metodi per la Gestione dei Dati (lezioni di laboratorio)

QL (Query Language) Alice Pavarani

SQL. Lezione 1. Docente: Alberto Belussi

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

PRODOTTO CARTESIANO Caso Generale

PROGETTAZIONE DI DATABASE Linguaggio SQL

La connessione ai database MySQL tramite script PHP versione 5.5

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Laboratorio di Basi di Dati

Query SQL - singola tabella

Esempio di database relazionale con l utilizzo del prodotto MySQL

SQL STRUCTURED QUERY LANGUAGE

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Corso di Basi di Dati

Query SQL - singola tabella

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

Laboratorio di Basi di Dati e Multimedia

Corso di Basi di Dati

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))

Corso di Informatica Linguaggio SQL prima parte

Soluzione esercitazione 01

Database 2 a puntata. Pablo Genova I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S.

Linguaggio SQL: fondamenti

Sistemi di Elaborazione delle Informazioni

Laboratorio di Basi di Dati

OBIETTIVI DELL'ESERCITAZIONE

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

BASI di DATI. SQL: concetti fondamentali

SQL /10/2016 Basi di dati - SQL 1

Il linguaggio SQL: DDL di base

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8. Il trattamento dei dati

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

DATABASE PER IL WEB. Programmazione Web 1

Corso sul linguaggio SQL

ESERCITAZIONE: Fornitore-Fornisce-Articolo

Sommario. Introduzione... 13

Access. P a r t e t e r z a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Laboratorio di Sistemi Informativi

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

A. Veneziani Linguaggio SQL

(Lezione SQL 1) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

A.A. 2018/2019. Simulazione. Simulazione Terza Prova Intracorso FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Linguaggio SQL: fondamenti D B M G

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

Linguaggio SQL. Prof. Giuseppe Tandoi

Lezioni di Laboratorio sui Data Base

ESERCITAZIONI ACCESS

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle

Fondamenti di Informatica A. A / 1 9

Istruzioni DML. Istruzioni DML (Data Manipulation Language)

Il linguaggio SQL. TUTORATO DIFONDAMENTI DIINFORMATICA

Basi di Dati. Concetti Fondamentali SQL-92 25/02/2004. Concetti Fondamentali. Introduzione. Interrogazioni. Creazione ed eliminazione di bd

IL MODELLO RELAZIONALE

Interrogazioni in SQL SQL1 1

SQL: "storia" 31/05/2006 2

Basi di dati. Linguaggio SQL: fondamenti - Introduzione. Elena Baralis 2007 Politecnico di Torino 1 D B M G 2 D B M G D B M G 4 D B M G 6

Transcript:

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