|
|
OracleLEZIONI - MANIPOLARE LE COLONNE Nelle precedenti lezioni abbiamo esaminato i comandi per la creazione di tabelle, per l'inserimento di dati nelle tabelle e per le interrogazioni (query). Inoltre abbiamo imparato ad interpretare la struttura di una tabella (ottenuta con Nel corso di questa lezione vedremo come modificare la struttura di una tabella già esistente nel database, in particolar modo l'aggiunta di una o più colonne, la modifica del datatype di colonna o l'eliminazione di una colonna non più necessaria. Aggiungere una colonnaPuò accadere che, dopo aver creato una tabella, abbiamo la necessità di aggiungervi una o più colonne. Se la tabella in questione è vuota, l'utente proprietario potrebbe decidere di eliminarla definitivamente e ricrearla daccapo con l'aggiunta della colonna desiderata. Questa potrebbe essere una soluzione valida ma "inaccettabile" per un amministratore di database, soprattutto quando all'interno della tabella ci sono dati importanti che non vogliamo assolutamente perdere. Allora come procediamo? Ricorriamo al comando Sintassi di ALTER TABLE con ADD ALTER TABLE <schema>.<tabella> ADD <colonna> <datatype>; Possiamo anche modificare la struttura di una tabella appartenente ad un altro utente: è innanzitutto obbligatorio possedere il corretto privilegio (privilegio Creando una tabella con il comando L'aggiunta di una nuova colonna, ora, pone la stessa in coda alle altre già presenti. Se la tabella contiene già alcune righe, queste conterranno il valore Per esempio visualizziamo con SQL> DESC impiegati Aggiungiamo alla tabella impiegati una nuova colonna, denominata "Indirizzo", di tipo SQL> ALTER TABLE impiegati ADD Indirizzo VARCHAR2(30); Controlliamo la nuova struttura. La struttura della tabella contiene in coda la nuova colonna aggiunta. Possiamo aggiungere anche più di una colonna con un unico comando ALTER TABLE. Sintassi di ALTER TABLE per aggiungere più di una colonna ALTER TABLE <schema>.<tabella> Modificare una colonnaPuò capitare anche di dover modificare le impostazioni di colonna per una tabella che abbiamo creato in precedenza. Può accadere, ad esempio, di aver impostato per una colonna una capacità di memorizzazione troppo piccola e di doverla aumentare al fine di memorizzare i dati voluti. A tale scopo usiamo il comando Sintassi di ALTER TABLE con MODIFY ALTER TABLE <schema>.>tabella> MODIFY <colonna> <nuovi attributi>; ALTER TABLE.
Sintassi di ALTER TABLE per modificare più colonne ALTER TABLE <schema>.<tabella> Ad esempio, modifichiamo la colonna "Email" della tabella contatti, attualmente di tipo SQL> ALTER TABLE contatti MODIFY Email VARCHAR2 (30); SQL> DESC contatti Come possiamo vedere dal risultato del comando Se aggiungiamo un valore di default ad una colonna già esistente, questo non sarebbe assegnato per le righe già presenti in tabella, ma solamente per le nuove righe inserite successivamente. Per esempio, nelle lezioni precedenti abbiamo creato una tabella "impiegati" con il campo "Paese_Residenza" di tipo SQL> ALTER TABLE impiegati MODIFY Paese_Residenza DEFAULT 'MILANO'; Nota: Possiamo tranquillamente aumentare senza incorrere in errori Oracle la dimensione di un datatype Cancellazione di una colonnaQuando una colonna non è più necessaria possiamo liberare lo spazio di memoria da essa occupato con il comando Per esempio aggiungiamo una nuova colonna alla tabella impiegati e successivamente procediamo alla sua cancellazione. SQL> ALTER TABLE impiegati ADD nuova_colonna VARCHAR2(20); SQL> DESC impiegati SQL> ALTER TABLE impiegati DROP COLUMN nuova_colonna; SQL> DESC impiegati Come abbiamo già visto per l'aggiunta e la modifica delle impostazioni di una colonna, possiamo anche cancellare contemporaneamente più colonne con un solo comando Nota: Se è stato costruito un indice sulla colonna da cancellare allora questo sarà cancellato automaticamente senza alcun intervento da parte nostra. Un'alternativa alla cancellazione di una colonna è renderla temporaneamente inutilizzabile e di cancellarla in un secondo momento usando la clausola Sintassi di ALTER TABLE per disabilitare una colonna ALTER TABLE <schema>.<tabella> SET UNUSED COLUMN <colonna>; Una volta che resa inutilizzabile, la colonna non appare più nella struttura della tabella, né nelle query. Quando siamo sicuri della cancellazione, ad esempio quando la tabella non è eccessivamente utilizzata da altri utenti, possiamo anche procedere alla sua cancellazione: Sintassi di ALTER TABLE per cancellare una colonna disabilitata ALTER TABLE <schema>.<tabella> DROP UNUSED COLUMNS; La clausola |