|
MySQL per tutti
1 |
2
| 3
| 4
I (pochi) comandi
base per la definizione del database servono più per effettuare
piccole modifiche al database stesso che a progettare e creare tutta
la struttura della base dati. A questo scopo quasi tutte le società
che forniscono DBMS hanno creato strumenti visuali per la creazione
e manutenzione del database stesso, lasciando al linguaggio SQL
l'incarico di aggiornare e modificare le strutture del DB
all'interno di programmi.
Vediamo ora un accenno ai principali comandi SQL-DDL:
Il comando CREATE TABLE
Il comando SQL-DDL più conosciuto è
sicuramente il comando CREATE TABLE, che viene utilizzato
ovviamente per la creazione di nuove tabelle. La sintassi è:
CREATE TABLE NomeTabella (Field1
Type1 [(dimensioni)] [NOT NULL] [index1], ....)
I primi tre sono parametri obbligatori (anche se è
possibile a volte creare tabelle senza alcun campo):
NomeTabella è il
nome della tabella che si vuole creare
Field1 è il nome del primo campo della tabella
Type1 è il tipo del campo Field1 (per es.
Integer, String, Date)
Gli altri sono parametri facoltativi:
dimensioni indica
la lunghezza del tipo (es. String (50) )
NOT NULL indica il vincolo che quel campo non può
contenere valori nulli
Index1 indica l'eventuale indice associato a quel campo
NOTA:
Per chiarezza e semplicità sorvolo volutamente su ulteriori
parametri dei comandi SQL-DDL come indici multicampo,
vincoli (CONSTRAINT) assegnazione di chiavi primarie e
secondarie, rimando quindi ad una buon manuale di SQL o ai
vari dei DBMS per un approfondimento.
Esempio: Vediamo un semplice esempio di comando CREATE TABLE:
CREATE TABLE Anagrafica (Nome as
String (30), Cognome as String (50) NOT NULL, Età as Integer)
Crea la tabella di nome Anagrafica, con i
campi:
Nome
Cognome
Età
Il comando ALTER TABLE
Altrettanto utile e forse maggiormente utilizzato è
il comando ALTER TABLE che permette di modificare la
struttura di una tabella esistente. ATTENZIONE! L'utilizzo
improprio di questo comando può portare alla perdita irreparabile
di parte dei dati contenuti nel Database.
Sintassi:
ALTER TABLE NomeTabella {ADD {COLUMN
Field1 Type1 [(dimensioni)] [NOT NULL], DROP {COLUMN Field2 }
Il subcommand ADD permette di aggiungere un
campo alla tabella, mentre DROP elimina un campo esistente.
Ad esempio, rifacendosi alla tabella Anagrafica creata in
precedenza:
ALTER TABLE Anagrafica ADD COLUMN
Sesso String(1) NOT NULL, DROP COLUMN Età
Trasforma la struttura della tabella nella
seguente:
Nome
Cognome
Sesso
Ovviamente tutti i dati eventualmente presenti
nel campo Età sono andati persi.
Il comando CREATE INDEX
Un indice è una struttura ausiliaria che permette
di velocizzare alcuni tipi di operazioni sulle tabelle di un
database. Per esempio se io so che farò spesso ricerche per
Cognome sulla mia tabella anagrafica mi torna utile
creare un indice sul campo Cognome, in modo da velocizzare
il recupero dei dati.
Sintassi:
CREATE INDEX indice ON NomeTabella
(Field1 [ASC|DESC][, ...])
Per creare l'indice appena descritto dovrò inserire
il comando SQL-DDL:
CREATE INDEX IndiceCognome ON
Anagrafica (Cognome ASC)
ASC sta ovviamente per
ASCENDENT (crescente) mentre DESC sta per
decrescente.
Il comando DROP
Il comando DROP, altrettanto potente e utile
quanto pericoloso, permette di cancellare tabelle e indici dal
database.
ATTENZIONE! Questo comando comporta la perdita di dati, quindi
utilizzatelo con cautela.
Sintassi:
DROP {TABLE NomeTabella | INDEX
indice ON NomeTabella}
I comandi possibili sono quindi due, il drop di un
indice e il drop di una tabella, quasi tutti i DBMS non permettono
la cancellazione di una tabella se sono presenti indici
agganciati, quindi per eliminare la tabella Anagrafica
dovremo procedere come segue:
DROP INDEX IndiceCognome ON
Anagrafica
Che elimina l'indice che avevamo associato al campo
Cognome e quindi:
DROP TABLE Anagrafica
Che elimina la tabella dal database, portando alla
perdita dei dati ivi contenuti.
Conclusioni
Questo breve articolo non ha la pretesa di essere
esaustivo, ma è nato dall'esigenza di introdurre le persone alla
conoscenza del linguaggio SQL, che spesso sembra più
complesso di quanto sia in realtà.
Solo l'utilizzo frequente e la creazione di un gran numero di
esempi può portare alla padronanza del linguaggio stesso. Rimando
ad un buon manuale di SQL per una trattazione più approfondita.
1 |
2
| 3
| 4 |