Per stampare:
Clicca qui oppure seleziona File » Stampa nel menù del tuo browser.
-----------------------------------------------------------------------------------------------
Questo intervento è stato stampato da Guide di Dada.Net
raggiungibile a http://guide.dada.net
-----------------------------------------------------------------------------------------------
By Database di Andrea Silvestri
URL: http://guide.dada.net/database/interventi/2001/04/37919.shtml
Database di Andrea Silvestri guida dal 29-12-2000
Creazione di tabelle. Quinta parte (ALTER TABLE)
Vediamo una nuova istruzione, legata alla creazione delle tabelle.
L'istruzione ALTER TABLE consente di modificare una tavola esistente.
Fra le altre cose e' possibile:
- Aggiungere colonne
- Ridefinire le colonne (tipo, dimensione)
- Modificare i parametri relativi allo spazio allocato per la tabella
- Aggiungere constraint
- Abilitare, disabilitare ed eliminare constraint
Per quanto riguarda il primo punto, si utilizza la parola chiave
ADD:
ALTER TABLE nome-tabella
ADD (nuovacol1 number(10) null, nuovacol2 varchar2(20) null);
Con questa istruzione vengono aggiunte alla tabella due nuove colonne, una di tipo number e l'altra di tipo varchar2.
Se la tabella non e' vuota, ovvero se contiene gia' dei record, le nuove colonne devono essere obbligatoriamente null, altrimenti i record gia' presenti avrebbero dei valori nulli in presenza di una colonna not null.
Quindi per inserire una nuova colonna not null in una tabella che non e' vuota si deve prima inserire la colonna definita come null. Successivamente si devono modificare i record assegnando loro un valore per la colonna nuova (tramite l'istruzione update, che sara' trattata in articoli successivi).
A questo punto e' possibile trasformare la colonna in not null, utilizzando la parola chiave
MODIFY:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 number(10) not null);
Questa permette anche di modificare la dimensione di una o piu' colonne:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 number(15) null, nuovacol2 varchar2(30) null);
Con questa istruzione, le due colonne sono state ampliate. In questo caso non si hanno restrizioni, proprio perche' le colonne vengono ampliate.
E' possibile anche ridurre le dimensioni di una colonna e cambiarne il tipo, ma solo se la colonna e' vuota:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 varchar2(10) null, nuovacol2 varchar2(10) null);
Quindi questa istruzione va a buon fine solo se le due colonne sono vuote.
Concludo sottolineando che l'unico caso in cui e' possibile ridurre le dimensioni di una colonna anche se non e' vuota, e' quello in cui si riducono le posizioni decimali di una colonna number.
Ad esempio e' sempre possibile passare da un number(8,4) ad un number(8,2); ottenendo un arrotondamento su quei numeri composti da piu' di due cifre decimali.