Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1
Introduzione In questa Unità introduciamo il linguaggio SQL (Structured Query Language), un linguaggio dichiarativo orientato alla manipolazione di DB. Comprende diverse funzionalità: DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) QL (Query Language) In questa Unità introduciamo il DDL e vediamo sintassi, caratteristiche, funzionamento ed esempi di alcuni comandi. 3 Informazioni generali N.B. A solo scopo didattico, per descrivere le istruzioni SQL, usiamo le seguenti convenzioni: i caratteri MAIUSCOLI indicano parole chiave del linguaggio; i caratteri corsivi indicano elementi che dovranno essere specificati dal programmatore; le parentesi quadre indicano opzione; la barra verticale indica alternativa. 4 2
SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale tipico dei DB relazionali; è utilizzato in Oracle, Informix, SQLServer, Access, ecc; nasce come SEQUEL (1974); negli anni 80 diventa un linguaggio standard di fatto; può essere inserito in programmi scritti in linguaggi procedurali detti (linguaggi ospite) come Visual basic, Java, C++; può essere usato in modo interattivo contiene varie funzionalità (DDL, DML, DCL, QL) 5 Domini predefiniti Prima di esaminare i comandi DDL diamo un elenco dei domini predefiniti in SQL che ci serviranno per definire gli attributi. Dominio CHAR (n) VARCHAR (n) DATE TIME INTEGER SMALLINT Dichiarazione Stringa di lunghezza n Come CHAR ma per stringhe di qualche migliaio di caratteri Data: mm/gg/aa Ora: hh:mm Intero lungo Intero Dominio REAL FLOAT BOOLEAN DECIMAL (m,n) Dichiarazione Singola precisione Doppia precisione Logico m posti, n decimali 6 3
Domini predefiniti Alcune osservazioni: le costanti stringa si racchiudono tra apici o virgolette; gli attributi che hanno un valore non definito o non disponibile assumono il valore costante NULL (diverso sia da stringa vuota che da 0); il separatore decimale è il punto; le variabili float sono rappresentate in notazione esponenziale (es. 1.27E+7); nelle espressioni si possono usare gli operatori aritmetici (+, -, *, /) logici (AND, OR, e NOT) e relazionali (<,<=, >,>=, = e <>). Negli esempi che seguono, i comandi scritti dall utente vengono descritti con il font Courier 7 Comandi DDL Iniziamo lo studio della parte di SQL che implementa le funzioni di DDL (Data Description Language), ovvero quelle funzioni che ci permettono di progettare, di manipolare e di distruggere quelle strutture che contengono i dati. In particolare, studiamo le seguenti funzionalità: Gestione database (in questa Unità) Gestione tabelle (v. Unità 2.2) Gestione indici (v. Unità 2.3) Gestione chiave primaria (v. Unità 2.3) 8 4
Gestione database Per gestire i database abbiamo i seguenti comandi: CREATE DATABASE (creazione di un DB) DROP DATABASE (elimina il DB) SHOW DATABASES (mostra i DB presenti) USE (seleziona un database, per l utilizzo) SELECT DATABASE(visualizza il DB in uso) Tutte le operazioni di cui si esaminano i comandi, possono essere eseguite in modo visuale, tramite l interfaccia EasyPHP. 9 Gestione database 1. Creazione database Il comando seguente crea un DB (in Access viene creato dall ambiente di sviluppo). Sintassi CREATE DATABASE db; Questa è la sintassi semplificata. In generale è possibile impostare molte opzioni, come: controllo dell esistenza del DB set dei caratteri da utilizzare dove db è il nome del database. mysql> CREATE DATABASE prova; Query OK, 1 row affected (0.00 sec) mysql>_ 10 5
Gestione database 2. Eliminazione database Il comando seguente elimina un DB (in Access non è consentito) Sintassi DROP DATABASE db; dove db è il nome del DB da eliminare 11 Gestione database 3. Elenco database Il comando seguente mostra i DB presenti nella cartella data di MySQL (in Access non è consentito) Sintassi SHOW DATABASES; Mostra i database esistenti mysql> SHOW DATABASES; +----------- + Database Quando MySQL viene +----------- + installato, presente solo i mysql due database seguenti: test mysql contiene i privilegi paternita di accesso degli utenti; prova test serve, invece, come prova2 db di prova. turni +------------+ 6 rows in set (0.13 sec) 12 6
Gestione database 4. Selezione database Prima di agire su un DB è necessario selezionarlo, tramite il comando USE db; dove db è il nome del database (in Access non è consentito) mysql> USE GESTIONE; Database changed mysql> _ Il database è stato selezionato 13 Gestione database 5. Visualizza database in uso Per conoscere il DB in uso (correntemente selezionato) si attiva il comando Seleziona un DB SELECT DATABASE(); mysql> use turni; Database changed mysql> select database(); +------------+ database() +------------+ turni +------------+ 1 row in set (0.00 sec) Visualizza DB selezionato 14 7
Argomenti SQL Domini predefiniti Comandi DDL Gestione database Creazione database Eliminazione database Elenco database Selezione database Visualizza database in uso 15 Altre fonti di informazione Atzeni, Ceri, Paraboschi, Torlone, Basi di dati - McGraw-Hill, 1996-2002 P.Camagni,M.Della Puppa,R. Nikilassy, SQL ed. HOEPLI Education A. Lorenzi-D.Rossi Le basi di dati e il linguaggio SQL ed. ATLAS 16 8