asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 13209
ASPCode.it - Store
<< lezione precedente

Breve corso di SQL - DDL

Ricordiamo che la sigla DDL sta per "Data Definition Language" ed è la parte del linguaggio SQL dedita alla creazione e gestione della struttura del database.

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 manuali 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.

<< lezione precedente


Utenti connessi: 13209