Tabella ALTER di PostgreSQL: ADD Column, Rename Column / Table examples

Sommario:

Anonim

Il comando ALTER TABLE viene utilizzato per alterare la struttura di una tabella PostgreSQL. È il comando utilizzato per modificare le colonne della tabella o il nome della tabella.

In questo tutorial imparerai:

  • Sintassi
  • Descrizione
  • Modifica di una colonna
    • Aggiunta di una nuova colonna
    • Ridenominazione di una colonna della tabella
  • Impostazione di un valore predefinito per una colonna
  • Aggiunta di un vincolo di controllo
  • Rinominare una tabella
  • Utilizzando pgAdmin

Sintassi

Ecco la sintassi per il comando ALTER TABLE di PostgreSQL:

ALTER TABLE table-name action;

Il parametro nome tabella è il nome della tabella che è necessario modificare.

Il parametro action è l'azione che devi eseguire, come cambiare il nome di una colonna, cambiare il tipo di dati di una colonna, ecc.

Descrizione

Il comando ALTER TABLE modifica la definizione di una tabella esistente. Richiede le seguenti sottomaschere:

  • ADD COLUMN : utilizza una sintassi simile al comando CREATE TABLE per aggiungere una nuova colonna a una tabella.
  • DROP COLUMN : per eliminare una colonna della tabella. Verranno eliminati anche i vincoli e gli indici imposti alle colonne.
  • SET / DROP DEFAULT : utilizzare per rimuovere il valore predefinito per una colonna. Tuttavia, la modifica verrà applicata solo alle istruzioni INSERT successive.
  • SET / DROP NOT NULL : modifica se una colonna consentirà o meno valori nulli.
  • SET STATISTICS: per impostare l'obiettivo di raccolta delle statistiche per ciascuna colonna per le operazioni ANALYZE.
  • SET STORAGE : per impostare la modalità di archiviazione per una colonna. Questo determinerà dove si tiene la colonna, se in linea o in una tabella supplementare.
  • SET WITHOUT OIDS : utilizzare per rimuovere la vecchia colonna della tabella.
  • RENAME : per modificare il nome della tabella o il nome di una colonna.
  • ADD table_constraint : utilizzare per aggiungere un nuovo vincolo a una tabella. Utilizza la stessa sintassi del comando CREATE TABLE.
  • DROP CONSTRAINT : utilizzare per eliminare un vincolo di tabella.
  • PROPRIETARIO : per cambiare il proprietario di una tabella, sequenza, indice o vista a un determinato utente.
  • CLUSTER : per marcare una tabella da utilizzare per effettuare future operazioni di cluster.

Modifica di una colonna

Una colonna può essere modificata in diversi modi. Tali modifiche possono essere eseguite utilizzando il comando ALTER TABLE. Parliamo di questi:

Aggiunta di una nuova colonna

Per aggiungere una nuova colonna a una tabella PostgreSQL, il comando ALTER TABLE viene utilizzato con la seguente sintassi:

ALTER TABLE table-nameADD new-column-name column-definition;

Il nome della tabella è il nome della tabella da modificare.

Il nome-nuova-colonna è il nome della nuova colonna da aggiungere.

La definizione della colonna è il tipo di dati della nuova colonna.

Vedere la tabella Book mostrata di seguito:

La tabella ha due colonne, id e nome. Dobbiamo aggiungere una nuova colonna alla tabella e assegnarle il nome dell'autore. Basta eseguire il seguente comando:

ALTER TABLE BookADD author VARCHAR(50);

Dopo aver eseguito il comando precedente, la tabella Book è ora la seguente:

La nuova colonna è stata aggiunta con successo.

Ridenominazione di una colonna della tabella

Possiamo usare il comando ALTER TABLE per cambiare il nome di una colonna. In questo caso, il comando viene utilizzato con la seguente sintassi:

ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;

Il nome della tabella è il nome della tabella la cui colonna deve essere rinominata.

Il vecchio nome è il nome vecchio / corrente della colonna.

Il nuovo nome è il nuovo nome della colonna. Considera il Table Book mostrato di seguito:

Libro:

Abbiamo bisogno del nome dell'autore della colonna in book_author. Ecco il comando:

ALTER TABLE BookRENAME COLUMN author TO book_author;

Dopo aver eseguito il comando, possiamo visualizzare la struttura della tabella:

Il nome della colonna è stato modificato con successo.

Impostazione di un valore predefinito per una colonna

È possibile impostare un valore predefinito per una colonna in modo tale che anche quando non si specifica un valore per quella colonna durante le operazioni di INSERT, verrà utilizzato il valore predefinito. In questo caso, il comando ALTER TABLE può essere utilizzato con la seguente sintassi:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Il nome della tabella è il nome della tabella la cui colonna deve essere modificata.

Il nome della colonna è il nome per il cui valore predefinito deve essere impostato.

Il valore è il valore predefinito per la colonna.

Considera la tabella del libro riportata di seguito:

Dobbiamo impostare un valore predefinito per la colonna book_author. Possiamo eseguire il seguente comando:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Ora, inseriamo una riga nella tabella:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');

Nota che abbiamo inserito valori solo per due colonne, id e name. Tuttavia, il valore predefinito è stato utilizzato per la colonna book_author:

Aggiunta di un vincolo di controllo

Un vincolo di controllo aiuta a convalidare i record che vengono inseriti in una tabella. Possiamo farlo combinando il comando ALTER TABLE con l'istruzione ADD CHECK. Sintassi:

ALTER TABLE table-name ADD CHECK expression;

Il nome della tabella è il nome della tabella da modificare.

L'espressione è il vincolo da imporre alla colonna della tabella.

Modifichiamo la colonna book_author della tabella Book in modo che accetti solo i valori, Nicholas e Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Ora, proviamo a inserire un valore diverso da Nicholas o Samuel nella colonna book_author della tabella Book:

INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

L'istruzione restituirà il seguente errore:

L'operazione di inserimento non è riuscita perché abbiamo violato il vincolo di controllo.

Rinominare una tabella

Ecco la sintassi per il comando ALTER TABLE per rinominare una tabella:

ALTER TABLE table-nameRENAME TO new-table-name;

Il nome della tabella è il nome corrente della tabella.

Il nome-nuova-tabella è il nuovo nome da assegnare alla tabella.

Ad esempio, cambiamo il nome della tabella Libro in Libri:

ALTER TABLE BookRENAME TO Books;

Utilizzando pgAdmin

Vediamo ora come queste azioni possono essere eseguite utilizzando pgAdmin.

Aggiunta di una nuova colonna

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

ALTER TABLE BookADD author VARCHAR(50);

Passaggio 4) Fare clic sul pulsante Esegui.

Passaggio 5) Per verificare se la colonna è stata aggiunta, eseguire le seguenti operazioni:

  1. Fare clic su Database dalla barra di navigazione a sinistra.
  2. Espandi Demo.
  3. Espandi schemi.
  4. Espandi pubblico.
  5. Espandi tabelle.
  6. Espandi il libro.
  7. Espandi colonne.

La colonna avrebbe dovuto essere aggiunta, come mostrato di seguito:

Ridenominazione di una colonna della tabella

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

ALTER TABLE BookRENAME COLUMN author TO book_author;

Passaggio 4) Fare clic sul pulsante Esegui.

Passaggio 5) Per verificare se la modifica è stata eseguita correttamente, eseguire le operazioni seguenti:

  1. Fare clic su Database dalla barra di navigazione a sinistra.
  2. Espandi Demo.
  3. Espandi schemi.
  4. Espandi pubblico.
  5. Espandi tabelle.
  6. Espandi il libro.
  7. Espandi colonne.

Le colonne dovrebbero ora essere le seguenti:

La colonna è stata modificata con successo.

Impostazione di un valore predefinito per una colonna

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Passaggio 4) Fare clic sul pulsante Esegui.

Passaggio 5) Per eseguire il test, eseguire il comando seguente nell'editor di query:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')

Passaggio 6) Ora possiamo interrogare la tabella per verificare se il valore predefinito è stato inserito nella colonna book_author:

Aggiunta di un vincolo di controllo

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Passaggio 4) Fare clic sul pulsante Esegui.

Passaggio 5) Per verificarlo, eseguire le seguenti operazioni:

  1. Digita la seguente query nell'editor di query:
    INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
  2. Fare clic sul pulsante Esegui.

    Restituirà quanto segue:

Rinominare una tabella

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

ALTER TABLE BookRENAME TO Books;

Passaggio 4) Fare clic sul pulsante Esegui.

Passaggio 5) Per verificare se la tabella è stata rinominata, eseguire le operazioni seguenti:

  1. Fare clic su Database dalla barra di navigazione a sinistra.
  2. Espandi Demo.
  3. Espandi schemi.
  4. Espandi pubblico.
  5. Espandi tabelle.

La tabella è stata rinominata correttamente.

Sommario:

  • L'istruzione ALTER TABLE viene utilizzata per modificare la struttura della tabella.
  • Il comando ALTER TABLE assume varie forme a seconda dell'attività che è necessario eseguire.
  • La struttura può essere costituita dalle colonne della tabella o dalla tabella stessa.
  • Possiamo usare questa istruzione per cambiare il nome di una tabella.
  • Il comando ALTER TABLE può essere utilizzato per impostare il valore predefinito di una colonna.
  • L'istruzione può essere utilizzata per convalidare i valori immessi in una colonna della tabella.

Scarica il database utilizzato in questo tutorial