Insieme di istruzioni per la definizione e la modifica di database, tabelle e indici e per l’assegnazione delle autorizzazioni a gestirla:
ALTER TABLE
Questo comando modifica la struttura fisica di una tabella.
sintassi del comando
ALTER TABLE nome_tabella
ADD nome-colonna | DROP nome-colonna
Altre clausole possibili in DB2 sono :
- PRIMARY KEY (nomi-colonne)
- FOREIGN KEY (nomi-colonne) REFERENCES nome-tabella
- DROP PRIMARY KEY
- DROP FOREIGN KEY
esempio
ALTER TABLE tb_clienti
ADD CELLULARE CHAR(18)
Il DB2 inserirà un valore nullo in tutte le righe della colonna aggiunta, infatti, nell’istruzione precedente, non è possibile specificare NOT NULL ma è possibile invece utilizzare NOT NULL WITH DEFAUL.
ALTER INDEX
Questo comando modifica un indice precedentemente creato.
ALTER STOGROUP
...
ALTER TABLESPACE
Questo comando modifica un tablespace precedentemente creato.
COMMENT ON
...
CREATE DATABASE
Questo comando crea un database nuovo.
CRATE TABLE
Questo comando ricopre un compito molto importante e cioè quello di definire le componenti strutturali e le regole di integrità del modello relazionale.
I caratteri utilizzabili per il nome di una tabella sono :
- Lettere
- Numeri
- Caratteri @,#,$ oppure _
sintassi del comando
CREATE TABLE nome_tabella
( nome-colonna tipo-colonna(dimensione) NOT NULL,
...
PRIMARY KEY (nome-colonna, nome-colonna),
FOREIGN KEY (nome-colonna) REFERENCES nome-tabella-esterna,
FOREIGN KEY (nome-colonna) REFERENCES nome-tabella-esterna)
IN DATABASE nome-database
esempio
CREATE TABLE tb_clienti
(CODICE INTEGER NOT NULL PRIMARY KEY,
NOME CHAR(30) NOT NULL,
COGNOME CHAR(30) NOT NULL UNIQUE,
TELEFONO CHAR(18))
IN DATABASE db_prova
La clausola NOT NULL sta a significare che per quella colonna non sono consentiti valori nulli. Se si usasse la clausola NOT NULL WITH DEFAULT il DB2 inserirebbe un valore predefinito nel caso in cui non venga immesso nessun valore. Il valore scelto dal DB2 dipenderebbe dal tipo di dato della colonna. I valori possibili sono : 0, spazio, CURRENT DATE, CURRENT TIME, CURRENT TIMESTAMP.
La clausola UNIQUE sta a significare che per quella colonna non dovranno esistere valori duplicati all’interno della tabella.
La clausola PRIMARY KEY può essere specificata come nell’esempio solamente se la chiave è rappresentata da una sola colonna.
La chiave primaria della tabella dovrà essere unica all’interno della tabella e le colonne che la compongono non dovranno contenere valori nulli. Il DB2 obbliga ad assicurarae questa unicità definendo per la tabella un indice unico(CREATE INDEX), specificando la chiave primaria come chiave indice, altrimenti questa potrebbe anche assumere valori uguali all’interno della tabella stessa.
Se una tabella ha una o più chiavi esterne (FOREIGN KEY) questa viene detta tabella dipendente mentre la tabella che ha come chiave primaria (PRIMARY KEY) questa chiave esterna viene detta tabella genitore.
CREATE INDEX
La crazione di un indice comporta un più veloce accesso ai dati in quanto questi vengono organizzati sottoforma di una struttura ad alberoche indirizza in modo ascendente o discendente le righe di una tabella.
sintassi del comando
CREATE [UNIQUE] INDEX nome_indice
ON nome-tabella (colonne-indice [ASC | DESC],… )
La clausola UNIQUE indica l’univocità di tutte le colonne che compongono l’indice.
CREATE STOREGROUP
CREATE SYNONYM
Questo comando serve a creare un sinonimo per un nome di una tabella o di una vista.
sintassi del comando
CREATE SYNONYM nome_sinonimo FOR utente.nome-tabella
CREATE TABLESPACE
...
CREATE VIEW
La Vista può essere definita come una tabella logica che deriva da una o più tabelle o viste. I comandi di INSERT, UPDATE e DELETE si possono usare solamente i casi particolari (es. la vista è creata da una sola tabella sotto determinate condizioni).
sintassi del comando
CREATE VIEW nome_vista
(colonne-vista, … )
AS SELECT nomi-colonne
FROM nome-tabella
WHERE condizione
DROP DATABASE
Questo comando cancella fisicamente la tabella.
sintassi del comando
DROP TABLE nome_tabella
DROP INDEX
Elimina un indice associato ad una tabella precedentemente creato.
DROP STOGROUP
...
DROP SYNONYM
Elimina un sinonimo precedentemente creato per un nome di una tabella o di una vista.
DROP TABLE
Elimina fisicamente una tabella e tutti i suoi dati.
DROP TABLESPACE
Elimina fisicamente una tabelspace.
DROP VIEW
Elimina fisicamente una vista precedentemente creata.
DECLARE TABLE
...
DESCRIBE
...
INCLUDE
...
LABEL ON
...