Comanda ALTER TABLE este utilizată pentru a modifica structura unui tabel PostgreSQL. Este comanda utilizată pentru a schimba coloanele tabelului sau numele tabelului.
În acest tutorial, veți învăța:
- Sintaxă
- Descriere
- Modificarea unei coloane
- Adăugarea unei coloane noi
- Redenumirea unei coloane de tabel
- Setarea unei valori implicite pentru o coloană
- Adăugarea unei constrângeri de verificare
- Redenumirea unui tabel
- Folosind pgAdmin
Sintaxă
Iată sintaxa pentru comanda PostgreSQL ALTER TABLE:
ALTER TABLE table-name action;
Parametrul tabel-nume este numele tabelului pe care trebuie să îl modificați.
Parametrul de acțiune este acțiunea pe care trebuie să o efectuați, cum ar fi schimbarea numelui unei coloane, schimbarea tipului de date al unei coloane etc.
Descriere
Comanda ALTER TABLE modifică definiția unui tabel existent. Este nevoie de următoarele subformule:
- ADĂUGAȚI CULOANĂ : aceasta utilizează o sintaxă similară cu comanda CREATE TABLE pentru a adăuga o nouă coloană la un tabel.
- DROP COLUMN : pentru aruncarea unei coloane de tabel. Constrângerile și indexurile impuse coloanelor vor fi, de asemenea, eliminate.
- SET / DROP DEFAULT : Se utilizează pentru eliminarea valorii implicite pentru o coloană. Cu toate acestea, modificarea se va aplica numai declarațiilor INSERT ulterioare.
- SET / DROP NOT NULL : modifică dacă o coloană va permite sau nu valori nule.
- SET STATISTICI: Pentru stabilirea țintei de colectare a statisticilor pentru fiecare coloană pentru operațiile ANALIZĂ.
- SET STOCARE : Pentru setarea modului de stocare pentru o coloană. Aceasta va determina locul în care coloana este ținută, fie în linie, fie într-un tabel suplimentar.
- SET FĂRĂ ULEI : Se utilizează pentru îndepărtarea vechii coloane a tabelului.
- RENAME : pentru schimbarea numelui tabelului sau a numelui coloanei.
- ADAUGĂ tabel_constrângere : Se utilizează pentru adăugarea unei noi constrângeri la un tabel. Folosește aceeași sintaxă ca și comanda CREATE TABLE.
- DROP CONSTRAINT : Se utilizează pentru eliminarea unei constrângeri de masă.
- PROPRIETAR : pentru schimbarea proprietarului unui tabel, secvență, index sau o vizualizare la un anumit utilizator.
- CLUSTER : pentru marcarea unui tabel care va fi utilizat pentru efectuarea viitoarelor operațiuni de cluster.
Modificarea unei coloane
O coloană poate fi modificată în mai multe moduri. Astfel de modificări pot fi făcute folosind comanda ALTER TABLE. Să discutăm următoarele:
Adăugarea unei coloane noi
Pentru a adăuga o nouă coloană într-un tabel PostgreSQL, comanda ALTER TABLE este utilizată cu următoarea sintaxă:
ALTER TABLE table-nameADD new-column-name column-definition;
Numele tabelului este numele tabelului de modificat.
New-column-name este numele noii coloane care trebuie adăugată.
Definiția coloanei este tipul de date al noii coloane.
Consultați tabelul de carte prezentat mai jos:
Tabelul are două coloane, id și nume. Trebuie să adăugăm o nouă coloană în tabel și să îi dăm numele autorului. Executați următoarea comandă:
ALTER TABLE BookADD author VARCHAR(50);
După executarea 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-nameRENAME COLUMN old-name TO new-name;
Numele tabelului este numele tabelei a cărei coloană urmează să fie redenumită.
Numele vechi este numele vechi / actual al coloanei.
Noul nume este noul nume al coloanei. Luați în considerare tabelul de mai jos:
Carte:
Avem nevoie de numele autorului coloanei pentru book_author. Iată comanda:
ALTER TABLE BookRENAME COLUMN author TO book_author;
După executarea comenzii, putem vizualiza structura tabelului:
Numele coloanei a fost modificat cu succes.
Setarea unei valori implicite pentru o coloană
Putem seta o valoare implicită pentru o coloană astfel încât, chiar și atunci când nu specificați o valoare pentru acea coloană în timpul operațiilor INSERT, va fi utilizată valoarea implicită. Î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 tabelei este numele tabelei a cărei coloană urmează să fie modificată.
Numele coloanei este numele pentru a cărui valoare implicită trebuie setată.
Valoarea este valoarea implicită pentru coloană.
Luați în considerare tabelul de carte dat 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ă introducem un rând în tabel:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');
Rețineți că am inserat valori pentru doar două coloane, id și nume. 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;
Numele tabelului este numele tabelului care urmează să fie modificat.
Expresia este constrângerea care trebuie impusă coloanei tabelului.
Să modificăm coloana book_author a tabelului Book 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ă introducem o altă valoare decât Nicholas sau Samuel în coloana book_author din tabelul Book:
INSERT INTO BookVALUES(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-nameRENAME TO new-table-name;
Numele tabelului este numele curent al tabelului.
New-table-name este noul nume care trebuie atribuit tabelei.
De exemplu, să schimbăm numele tabelului Cărți în Cărți:
ALTER TABLE BookRENAME TO Books;
Folosind pgAdmin
Acum să vedem cum pot fi efectuate aceste acțiuni folosind pgAdmin.
Adăugarea unei coloane noi
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pasul 1) Conectați-vă la contul dvs. pgAdmin.
Pasul 2)
- Din bara de navigare din stânga - Faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Tastați interogarea în editorul de interogări:
ALTER TABLE BookADD author VARCHAR(50);
Pasul 4) Faceți clic pe butonul Executare.
Pasul 5) Pentru a verifica dacă a fost adăugată coloana, procedați în felul următor:
- Faceți clic pe Baze de date din navigarea din stânga.
- Extindeți Demo.
- Extindeți Scheme.
- Extindeți public.
- Extindeți tabelele.
- Extindeți cartea.
- Extindeți Coloane.
Coloana ar fi trebuit adăugată, după cum se arată mai jos:
Redenumirea unei coloane de tabel
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pasul 1) Conectați-vă la contul dvs. pgAdmin.
Pasul 2)
- Din bara de navigare din stânga - Faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Tastați interogarea în editorul de interogări:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Pasul 4) Faceți clic pe butonul Executare.
Pasul 5) Pentru a verifica dacă modificarea a avut succes, efectuați următoarele:
- Faceți clic pe Baze de date din navigarea din stânga.
- Extindeți Demo.
- Extindeți Scheme.
- Extindeți public.
- Extindeți tabelele.
- Extindeți cartea.
- Extindeți Coloane.
Coloanele ar trebui să fie acum după cum urmează:
Coloana a fost modificată cu succes.
Setarea unei valori implicite pentru o coloană
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pasul 1) Conectați-vă la contul dvs. pgAdmin.
Pasul 2)
- Din bara de navigare din stânga - Faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Tastați interogarea în editorul de interogări:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Pasul 4) Faceți clic pe butonul Executare.
Pasul 5) Pentru a testa, rulați următoarea comandă pe editorul de interogări:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')
Pasul 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
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pasul 1) Conectați-vă la contul dvs. pgAdmin.
Pasul 2)
- Din bara de navigare din stânga - Faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Tastați interogarea în editorul de interogări:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Pasul 4) Faceți clic pe butonul Executare.
Pasul 5) Pentru a testa acest lucru, efectuați următoarele:
- Tastați următoarea interogare în editorul de interogări:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Faceți clic pe butonul Executare.
Se va returna următoarele:
Redenumirea unui tabel
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pasul 1) Conectați-vă la contul dvs. pgAdmin.
Pasul 2)
- Din bara de navigare din stânga - Faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Tastați interogarea în editorul de interogări:
ALTER TABLE BookRENAME TO Books;
Pasul 4) Faceți clic pe butonul Executare.
Pasul 5) Pentru a verifica dacă tabelul a fost redenumit, efectuați următoarele:
- Faceți clic pe Baze de date din navigarea din stânga.
- Extindeți Demo.
- Extindeți Scheme.
- Extindeți public.
- Extindeți tabelele.
Tabelul a fost redenumit cu succes.
Rezumat:
- Instrucțiunea ALTER TABLE este utilizată pentru a modifica structura tabelului.
- Comanda ALTER TABLE ia diferite forme în funcție de sarcina pe care trebuie să o efectuați.
- Structura poate fi coloanele tabelului sau tabelul în sine.
- Putem folosi această afirmație pentru a schimba numele unui tabel.
- Comanda ALTER TABLE poate fi utilizată pentru a seta valoarea implicită a unei coloane.
- Instrucțiunea poate fi utilizată pentru a valida valorile care sunt introduse într-o coloană de tabel.
Descărcați baza de date utilizată în acest tutorial