Riepilogo: in questo tutorial imparerai come utilizzare Oracle ALTER TABLE MODIFY
istruzione column per modificare la definizione delle colonne esistenti.
Per modificare la definizione di una colonna in una tabella, utilizzare la sintassi della colonna ALTER TABLE MODIFY
come segue:
L’affermazione è semplice. Per modificare una colonna di una tabella, è necessario specificare il nome della colonna, il nome della tabella e l’azione che si desidera eseguire.
Oracle consente di eseguire molte azioni, ma le seguenti sono le principali:
- Modifica la visibilità della colonna
- Consenti o non consenti valori nulli
- Riduci o amplia la dimensione della colonna
- Modifica la valore predefinito di una colonna
- Modifica espressione delle colonne virtuali
Per modificare più colonne, utilizza la seguente sintassi:
Oracle ALTER TABLE MODIFY colonna di esempi
Per prima cosa, crea una nuova tabella denominata accounts
per la dimostrazione:
In secondo luogo, inserisci alcune righe nella tabella accounts
:
Terzo, verifica l’operazione di inserimento utilizzando il seguente SELECT
:
A) Modifica la visibilità della colonna ity
In Oracle Database 12c, è possibile definire le colonne della tabella come invisibili o visibili. Le colonne invisibili non sono disponibili per la query come:
Oppure istruzioni come:
in SQL * Plus.
Tuttavia, puoi interrogare le colonne invisibili specificandole esplicitamente nella query:
Per impostazione predefinita, le colonne della tabella sono visibili. Puoi definire la colonna invisibile quando crei la tabella o utilizzando ALTER TABLE MODIFY
istruzione di colonna.
Ad esempio, la seguente istruzione rende full_name
colonna invisibile:
La seguente istruzione restituisce i dati da tutte le colonne della tabella accounts
tranne la colonna full_name
:
Questo perché la colonna full_name
è invisibile.
Per modificare un colonna da invisibile a visibile, si utilizza la seguente dichiarazione:
B) Consenti o non permetta esempio nullo
La seguente istruzione cambia la colonna email
per accettare valori non nulli:
Tuttavia, Oracle ha emesso il seguente errore:
Perché quando hai cambiato una colonna da nullable a n on-nullable, devi assicurarti che i dati esistenti soddisfino il nuovo vincolo.
Per risolvere questo problema, aggiorniamo prima i valori per la colonna email
:
Tieni presente che la funzione LOWER()
converte una stringa in minuscolo.
E poi cambia il vincolo della colonna:
Ora funziona come previsto.
C) Amplia o accorcia la dimensione di un esempio di colonna
Supponiamo di voler aggiungere il codice internazionale ai numeri di telefono. Prima di farlo, dobbiamo ampliare la dimensione della colonna del telefono utilizzando la seguente dichiarazione:
Ora possiamo aggiornare i numeri di telefono:
La seguente dichiarazione verifica l’aggiornamento:
Per abbreviare la dimensione di una colonna, assicurati che tutti i dati nella colonna corrispondano alla nuova dimensione.
Ad esempio, proviamo ad accorciare la dimensione della colonna phone
fino a 12 caratteri:
Oracle Database ha emesso il seguente errore:
Per risolvere questo problema, prima dobbiamo rimuovere il codice internazionale dai numeri di telefono:
La funzione REPLACE()
sostituisce una sottostringa con una nuova sottostringa. In questo caso, sostituisce “+ 1-” con una stringa vuota.
Quindi riduci le dimensioni della colonna phone
:
D) Modifica colonna virtuale
Supponiamo di avere il nome completo nel seguente formato:
Per fare ciò, possiamo cambiare l’espressione del colonna virtuale full_name
come segue:
La seguente istruzione verifica la modifica:
E) Modifica il valore predefinito di una colonna
Aggiungiamo una nuova colonna denominata status
alla tabella accounts
con il valore predefinito 1.
Una volta eseguita l’istruzione, i valori nella colonna dello stato vengono impostati su 1 per tutte le righe esistenti nella tabella accounts
.
Per modificare il valore predefinito o Se la colonna dello stato è a 0, si utilizza la seguente dichiarazione:
Possiamo aggiungere una nuova riga a accounts
per verificare se il valore predefinito della colonna status
è 0 o 1:
Esegui query sui dati dalla tabella accounts
:
Come puoi vedere, il valore nella colonna dello stato per l’account con ID 4 è 0 come previsto.
In questo tutorial, hai imparato a utilizzare l’istruzione di colonna Oracle ALTER TABLE MODIFY
per modificare la definizione delle colonne esistenti in una tabella.
- Questo tutorial è stato utile?
- SìNo