PostgreSQL ALTER TABLE: Adăugați și redenumiți coloana
⚡ Rezumat inteligent
PostgreSQL Funcția ALTER TABLE modifică structura unui tabel existent, permițându-vă să adăugați sau să eliminați coloane, să redenumiți o coloană sau întregul tabel, să setați valori implicite și să atașați constrângeri de verificare fără a recrea obiectul.

Ce este ALTER TABLE în PostgreSQL?
ALTER TABLE Comanda este utilizată pentru a modifica structura unui PostgreSQL tabel. Este comanda utilizată pentru a schimba coloanele tabelului sau numele tabelului în sine, fără a eliminaping și recrearea obiectului.
Sintaxă
Iată sintaxa pentru PostgreSQL Comanda ALTER TABLE:
ALTER TABLE table-name action;
Parametrul nume-tabel este numele tabelului pe care trebuie să îl modificați. Parametrul acțiune este acțiunea pe care trebuie să o efectuați, cum ar fi schimbarea numelui unei coloane sau schimbarea tipului de date al unei coloane.
Descriere
Comanda ALTER TABLE modifică definiția unui tabel existent. Ia următoarele subforme:
- Adăugați o coloană: aceasta folosește o sintaxă similară cu comanda CREATE TABLE pentru a adăuga o nouă coloană la un tabel.
- COLOCARE COLONApentru cădereping o coloană de tabel. Restricțiile și indexurile impuse coloanelor vor fi, de asemenea, eliminate.
- SET/DROP IMPLICIT: utilizat pentru setarea sau eliminarea valorii implicite pentru o coloană. Modificarea se aplică numai valorilor ulterioare INSERT instrucțiuni.
- SET/DROP NOT NULL: modifică dacă o coloană va permite sau nu valori nule.
- SETARE STATISTICI: pentru setarea țintei de colectare a statisticilor pentru fiecare coloană pentru operațiunile ANALYZE.
- SETARE DEPOZITARE: pentru setarea modului de stocare pentru o coloană, fie în linie, fie într-un tabel suplimentar.
- SET FĂRĂ OIDURI: utilizat pentru eliminarea vechii coloane OID din tabel.
- REDENUMIȚI: pentru schimbarea numelui tabelului sau al unei coloane.
- ADD table_constraint: utilizat pentru adăugarea unei noi constrângeri la un tabel. Folosește aceeași sintaxă ca și CREAȚI TABEL comanda.
- DRAP CONSTRAINTfolosit pentru cădereping o constrângere de tabel.
- PROPRIETARpentru schimbarea proprietarului unui tabel, secvență, index sau vizualizare către un anumit utilizator.
- CURSE: pentru marcarea unui tabel care va fi utilizat pentru operațiuni viitoare în cluster.
Modificarea unei coloane
O coloană poate fi modificată în mai multe moduri. Astfel de modificări se fac folosind comanda ALTER TABLE. Să le discutăm mai jos.
Adăugarea unei coloane noi
Pentru a adăuga o nouă coloană la a PostgreSQL tabel, comanda ALTER TABLE este utilizată cu următoarea sintaxă:
ALTER TABLE table-name ADD new-column-name column-definition;
Numele tabelului este numele tabelului care va fi modificat. Numele noii coloane este numele noii coloane care va fi adăugată. Definiția coloanei este tip de date din noua coloană. Consultați tabelul Carte de mai jos:
Tabelul are două coloane, id și name. Trebuie să adăugăm o nouă coloană în tabel și să-i dăm numele author. Trebuie doar să executați următoarea comandă:
ALTER TABLE Book ADD author VARCHAR(50);
După rularea comenzii de mai sus, tabelul Book este acum după cum urmează:
Noua coloană a fost adăugată cu succes.
Redenumirea unei coloane de tabel
Putem folosi comanda ALTER TABLE pentru a schimba numele unei coloane. În acest caz, comanda este utilizată cu următoarea sintaxă:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Numele tabelului este numele tabelului a cărui coloană urmează să fie redenumită. Numele vechi este numele curent al coloanei, iar numele nou este noul nume al coloanei. Luați în considerare tabelul Book prezentat mai jos:
Carte:
Trebuie să schimbăm numele coloanei `author` în `book_author`. Iată comanda:
ALTER TABLE Book RENAME COLUMN author TO book_author;
După rularea comenzii, putem vizualiza structura tabelului:
Numele coloanei a fost schimbat cu succes.
Setarea unei valori implicite pentru o coloană
Putem seta o valoare implicită pentru o coloană, astfel încât, chiar dacă nu specificați o valoare pentru acea coloană în timpul operațiunilor INSERT, valoarea implicită va fi utilizată. În acest caz, comanda ALTER TABLE poate fi utilizată cu următoarea sintaxă:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Numele tabelului este numele tabelului a cărui coloană urmează să fie modificată. Numele coloanei este numele coloanei a cărei valoare implicită urmează să fie setată, iar valoarea este valoarea implicită pentru coloană. Luați în considerare tabelul Book de mai jos:
Trebuie să setăm o valoare implicită pentru coloana book_author. Putem rula următoarea comandă:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Acum, să inserăm un rând în tabel:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Rețineți că am introdus valori doar pentru două coloane, id și name. Cu toate acestea, valoarea implicită a fost utilizată pentru coloana book_author:
Adăugarea unei constrângeri de verificare
O constrângere de verificare ajută la validarea înregistrărilor care sunt inserate într-un tabel. Putem face acest lucru combinând comanda ALTER TABLE cu instrucțiunea ADD CHECK. Sintaxă:
ALTER TABLE table-name ADD CHECK expression;
nume-tabel este numele tabelului care urmează să fie modificat, iar expresia este constrângerea care va fi impusă coloanei tabelului. Să modificăm coloana autor_carte din tabelul Carte astfel încât să accepte doar valorile Nicholas și Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Acum, să încercăm să inserăm o altă valoare decât Nicholas sau Samuel în coloana book_author a tabelului Book:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Declarația va returna următoarea eroare:
Operația de inserare a eșuat deoarece am încălcat constrângerea de verificare.
Redenumirea unui tabel
Iată sintaxa pentru comanda ALTER TABLE pentru redenumirea unui tabel:
ALTER TABLE table-name RENAME TO new-table-name;
nume-tabel este numele curent al tabelului, iar nume-tabel-nou este noul nume care va fi atribuit tabelului. De exemplu, să schimbăm numele tabelului Cărți în Cărți:
ALTER TABLE Book RENAME TO Books;
Folosind pgAdmin
Până acum, acțiunile au fost executate din shell-ul SQL. Acum să vedem cum pot fi efectuate aceleași acțiuni vizual folosind pgAdmin.
Adăugarea unei coloane noi
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
ALTER TABLE Book ADD author VARCHAR(50);
Pas 4) Faceți clic pe butonul Execute.
Pas 5) Pentru a verifica dacă coloana a fost adăugată, procedați în felul următor:
- Faceți clic pe Baze de date din panoul de navigare din stânga.
- Extindeți Demo.
- Extinde Schemele.
- Extindeți Public.
- Extindeți Tabele.
- Extinde cartea.
- Extinde Coloane.
Coloana ar fi trebuit adăugată, după cum se arată mai jos:
Redenumirea unei coloane de tabel
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Pas 4) Faceți clic pe butonul Execute.
Pas 5) Pentru a verifica dacă modificarea a avut succes, extindeți coloanele tabelului de cărți ca înainte:
Coloanele ar trebui să fie acum după cum urmează:
Coloana a fost schimbată cu succes.
Setarea unei valori implicite pentru o coloană
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Pas 4) Faceți clic pe butonul Execute.
Pas 5) Pentru a testa, executați următoarea comandă în editorul de interogări:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Pas 6) Acum, putem interoga tabelul pentru a verifica dacă valoarea implicită a fost inserată în coloana book_author:
Adăugarea unei constrângeri de verificare
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Pas 4) Faceți clic pe butonul Execute.
Pas 5) Pentru a testa acest lucru, tastați următoarea interogare în editorul de interogări și faceți clic pe butonul Executare:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Va returna următoarele:
Redenumirea unui tabel
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
ALTER TABLE Book RENAME TO Books;
Pas 4) Faceți clic pe butonul Execute.
Pas 5) Pentru a verifica dacă tabelul a fost redenumit, extindeți Baze de date > Demo > Scheme > Public > Tabele:
Tabelul a fost redenumit cu succes.
Descărcați baza de date folosită în acest tutorial

























