SQL Esercitazione (database e tabelle) Ing. Cosimo Orlacchio
Linguaggio interattivo - SQL Structured Query Language SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Aula = N3 AND Piano="Terra" Corso Aula Piano Reti N3 Terra Sistemi N3 Terra 2
SQL immerso in Pascal (o altro linguaggio ad alto livello) write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ; EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P 3
SQL immerso in linguaggio ad hoc (Oracle PL/SQL) 4 declare Stip number; begin select Stipendio into Stip from Impiegato where Matricola = '575488' for update of Stipendio; if Stip > 30 then update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488'; else update Impiegato set Stipendio = Stipendio * 1.15 where Matricola = '575488'; end if; commit; exception when no_data_found then insert into Errori values('non esiste la matricola specificata',sysdate); end;
Interazione non testuale (in Access) 5
ACCESS: Programma per la gestione di database DBMS Essendo un database relazionale: RDBMS 6
ACCESS: E progettato per l interfaccia grafica utente (GUI) di Windows Utilizza la tecnologia VISUAL di Windows Implementa un dialetto SQL 7
File database e tabelle ACCESS possiede una propria struttura dei file di dati : usa l estensione.mdb Un singolo file contiene tutte le tabelle correlate, gli indici, le maschere, le definizione dei report e persino il codice di programmazione VBA (Visual Basic for Applications) 8
Gli elementi di un applicazione: Database: tutto ciò che è necessario all applicazione Tabelle: contengono le singole parti dei dati (record) che vengono letti o modificati. Query: selezionano i dati di particolare interesse e li visualizzano in forma tabellare 9
ESERCIZIO Generare un database denominato SCUOLE posizionandolo nella cartella Documenti 10
Avviare Microsoft Access dal menu Programmi 1. Dalla barra delle applicazioni. clic su Avvio (Start). 2. Nel menù di Avvio clic su Programmi e poi su Microsoft Access. 3. Appare la finestra iniziale di Access dalla quale si potrà : generare un nuovo database aprirne uno già esistente ESERCIZIO 11
ESERCIZIO Creazione nuovo database Nella finestra iniziale selezionare il pulsante Database Vuoto e poi cliccare su OK Eseguire le operazioni 1, 2, 3 della fig. seguente 12
ESERCIZIO 1-Selezionare giusta cartella 2-Attribuire nome al database 3-Creazione 13
ESERCIZIO Appare la schermata con gli oggetti dell ambiente Access E stato creato semplicemente il database SCUOLE. Nessun oggetto (tabelle, query,....) è stato ancora definito nel database 14
Le Tabelle Immagazzinano dati elementari in un formato riga-colonna simile a quello dei foglio elettronici Caratteristiche generali: Numero di caratteri in un nome di tabella: 64 Numero di campi in una tabella: 255 Numero di tabelle aperte: 2048 Dimensioni max della tabella: 1 gigabyte 15
ESERCIZIO Generare nel database SCUOLE la seguente relazione: ISTITUTI (Codice_scuola, Nome_scuola, Indirizzo, Quartiere, Responsabile, Tipo_scuola, Numero_classi, Ha_refezione) 16
ESERCIZIO Definizione chiave primaria Selezionare il campo Codice_scuola come chiave primaria 17
Alcune scelte effettuate: (vincoli intrarelazionari) ESERCIZIO Supposto che la tipologia delle scuole sia su quattro tipi, (materna,elementare,media,liceo), per caricare il campo Tipo-scuola basterà un valore costituito da un solo carattere, ad esempio: M=materna E=elementare K=medie S=medie superiori. La condizione di controllo sull input di questo campo deve essere tale da escludere valori diversi 18
ESERCIZIO Alcune scelte effettuate: Supposto che il numero di classi max esistenti in una scuola sia 40 La condizione di controllo sull input di questo campo deve essere tale da escludere valori diversi 19
L istruzione completa SQL: CREATE TABLE ISTITUTI ( Codice_scuola NUMERIC(3,0), Nome_scuola CHARACTER(30) NOT NULL, Indirizzo CHARACTER(30), Quartiere CHARACTER(20), Responsabile CHARACTER(20) NOT NULL, Tipo_scuola CHARACTER(1) CHECK (Tipo_scuola=( M OR E OR K OR S )), Numero_classi NUMERIC(2,0) CHECK (Numero_classi<=40), Ha_refezione BIT(1), PRIMARY KEY (Codice_scuola) UNIQUE (Nome_scuola) ) 20
ESERCIZIO L istruzione in ACCESS: 21
ESERCIZIO La tabella creata: 22
Proprietà dei campi E possibile assegnare a ciascun campo di una tabella un insieme di proprietà: Le prime quattro sono assegnate nella parte superiore dove compare la struttura della tabella Le rimanenti sono assegnate in basso, sotto la dizione proprietà del campo, e variano a seconda del tipo di campo scelto. 23
Proprietà dei campi Nome campo Contiene il nome del campo da riempire. Può essere lungo fino a 64 caratteri. Deve essere univoco ed esplicativo del dato che deve contenere 24
Proprietà dei campi Tipo dati E selezionabile da un elenco a tendina che si trova nella seconda colonna della griglia della struttura tabella Vediamo di seguito i possibili tipi: 25
Tipo dati possibili Testo: Impostazione predefinita, Fino a 255 caratteri, Non viene riservato spazio per parti di campo testo non utilizzate Memo:Testo lungo o combinazioni di testo e numeri. Fino a 65.535 caratteri Numerico: Dati numerici utilizzati in calcoli matematici, occupa 1, 2, 4 o 8 byte 26
Tipo dati possibili 27 Data/Ora: Valori data e ora per gli anni da 100 a 9999, 8 byte Valuta: Valori per valuta utilizzati in calcoli matematici, 8 byte Contatore: Numero sequenziale univoco, cioè incrementato di un'unità, o numero casuale assegnato da Microsoft Access ogni volta che viene aggiunto un nuovo record a una tabella. Non è possibile aggiornare i campi Contatore, 4 byte
Tipo dati possibili Sì/No: i valori e i campi Sì e No contenenti uno solo valore tra due (Sì/No, True/False) Oggetto OLE: un oggetto, come un foglio di calcolo di Microsoft Excel, un documento di Microsoft Word, grafici, suoni o altri dati binari, collegati o incorporati in una tabella di Microsoft Access. Fino a 1 gigabyte, secondo lo spazio disponibile su disco 28
Tipo dati possibili Collegamento ipertestuale: testo o combinazioni di testo e numeri memorizzate come testo e utilizzate come indirizzo di collegamento ipertestuale Ricerca guidata: crea un campo che consente di scegliere un valore da un'altra tabella o da un elenco di valori utilizzando una casella di riepilogo o una casella combinata 29
Proprietà dei campi Descrizione Contiene la descrizione del campo e può essere lungo max 255 caratteri. E facoltativo, ma utile per spiegare i contenuti. Tale descrizione comparirà nella barra di stato, in basso a sinistra della finestra di Access, quando il campo verrà selezionato per inserire o modificare i dati in esso contenuti 30
Proprietà dei campi Chiave primaria Definisce il campo come chiave primaria per la tabella. Per far ciò, occorre selezionare il campo facendo clic sul pulsante di selezione dei campi, a sinistra della colonna Nome campo, e poi fare clic sul pulsante chiave primaria della barra degli strumenti 31
Proprietà dei campi Chiave primaria E possibile creare una chiave primaria su più campi. Per far ciò, occorre selezionare i campi facendo clic sul pulsante di selezione dei campi, a sinistra della colonna Nome campo, e contemporaneamente tenere premuto il tasto Ctrl (control); poi fare clic sul pulsante chiave primaria della barra degli strumenti 32
Proprietà dei campi Chiave primaria Possono esserci tabelle ove non è necessaria la chiave primaria. Access chiederà sempre la definizione della stessa e noi risponderemo No alla richiesta 33
Proprietà dei campi Dimensione campo Valido per il tipo Testo e numerico, ne indica la dimensione. Es.: testo 120 caratteri numero intero lungo 34
Proprietà dei campi Formato Serve a indicare il tipo di visualizzazione dei valori nel campo. Ci sono dei formati predefiniti per alcuni tipi come data, ora, numerico, Sì/No Oppure creare un formato personalizzato inserendo dei segnaposto come. 35
Formati personalizzati: segnaposto # mostra una cifra,qualora esiste in quella posizione, o altrimenti uno zero mostra il simbolo dell euro in quella posizione, mostra il simbolo della virgola in quella posizione Es.: ####,## 36
Formati personalizzati: segnaposto / separa il giorno, mese, anno nelle date d per indicare il giorno (d come 1, dd come 01) m per indicare il mese (m come 1, mm come 01) a per indicare l anno (aa come 03, aaaa come 2003) 37
Proprietà dei campi Cifre decimali Sono utilizzate per la rappresentazione dei tipi numerico e valuta. La scelta dal menu a tendina è automatiche oppure si seleziona il numero di cifre desiderato 38
Proprietà dei campi Maschera di Imput Sono simili al FORMATO, ma servono a rappresentare come i dati devono essere immessi o modificati. E possibile l autocomposizione maschere per alcuni tipi come testo o data/ora Oppure creare un formato personalizzato inserendo dei segnaposto come. 39
Maschera personalizzata: segnaposto 0 Cifra da 0 a 9. Immissione obbligatoria. Segni più (+) e meno (-) non consentiti. 9 Cifra o spazio. Immissione facoltativa. Segni più e meno non consentiti.,.; - / Segnaposto decimale e separatori delle migliaia, di data e di ora 40
Maschera personalizzata: segnaposto L Lettera da A a Z. Immissione obbligatoria.? Lettera da A a Z. Immissione facoltativa. A Lettera o cifra. Immissione obbligatoria. a Lettera o cifra. Immissione facoltativa. & Qualsiasi carattere o uno spazio. Immissione obbligatoria. C Qualsiasi carattere o uno spazio. Immissione facoltativa. 41
Proprietà dei campi Etichetta Compare nelle maschere al posto del nome campo Il vantaggio è nella possibilità di inserire segni altrimenti non validi nel nome campo come :. ;! [ ] 42
Proprietà dei campi Valore predefinito E il valore assegnato automaticamente ad un campo di un nuovo record a meno che non se ne inserisce uno proprio Es.: =Date() inserisce automaticamente la data del giorno inserita nel computer 43
Proprietà dei campi Valido se Realizza i vincoli di dominio Si inseriscono delle regole per limitare il valore da immettere nel campo La formula può contenere espressioni con vari criteri come: < > >= <= <> = And Or Not 44
Proprietà dei campi Messaggio errore E un messaggio che viene visualizzato nella barra di stato, qualora il valore immesso non è conforma ai criteri stabiliti nella proprietà Valido se 45
Proprietà dei campi Richiesto Può assumere valore Sì o No. Se Sì, indica che l immissione del valore nel campo è obbligatoria. L impostazione Si equivale ad immettere Is Not Null nella proprietà Valido se 46
Proprietà dei campi Consenti lunghezza zero Può assumere valore Sì o No Questa proprietà è applicabile solo ai tipi di dato Testo ed indica che il campo deve contenere almeno un carattere 47
Proprietà dei campi Indicizzato È possibile indicizzare la tabella rispetto a questo campo con la possibilità di avere o meno valori duplicati. L indicizzazione aumenta la velocità di ricerca e ordinamento, ma ne rallenta l aggiornamento I campi chiave sono automaticamente indicizzati e senza duplicati ammessi 48
ESERCIZIO Proprietà del campo Tipo_scuola Input su un solo carattere alfanumerico Condizione di controllo valore input 49 Messaggio in caso di errore input
ESERCIZIO Proprietà del campo Nro_classi Input su due cifre Condizione di validità per Valore input 50
Inserire i dati in SQL: INSERT INTO ISTITUTI VALUES ('1', 'Plinio', 'Roma 22', 'Fuorigrotta', 'Marco Espositi', 'M', '32', 'YES'); 51
Inserire i dati con ACCESS Dal menù Visualizza scegli Visualizzazione Foglio dati Muoversi tra i campi della tabella, con il tasto TAB 52
Aggiunta record In modalità visualizzazione foglio dati della tabella: Puntare a primo record vuoto oppure selezionare icona Infine inserire i dati 53
Eliminazione di un record In modalità visualizzazione foglio dati della tabella: Selezionare il record (o più) da eliminare cliccando a sinistra della prima colonna (si evidenzierà tutto il record) Dal menù Modifica scegliere Elimina record Comparirà il seguente messaggio di conferma 54
cliccare su Sì se si vuole procedere all eliminazione. 55
ESERCIZIO Salvataggio dati Dal menù File scegliere salva Oppure direttamente sulla tabella cliccando l icona 56
ESERCIZIO Inserire nella tabella ISTITUTI i dati come di seguito riportati 57
ESERCIZIO 58
SQL Esercitazione Fine