PostgreSQL ALTER Table: ADD Column, Redenumiți coloană/Exemple de tabel
Comanda ALTER TABLE este folosită pentru a modifica structura unui PostgreSQL masa. Este comanda folosită pentru a schimba coloanele tabelului sau numele tabelului.
Sintaxă
Iată sintaxa pentru PostgreSQL Comanda ALTER TABLE:
ALTER TABLE table-name action;
Parametrul table-name 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. 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 COLONA: pentru eliminarea unei coloane de tabel. Constrângerile și indecșii impusi coloanelor vor fi, de asemenea, eliminate.
- SET/DROP IMPLICIT: Utilizați pentru a elimina valoarea implicită pentru o coloană. Cu toate acestea, modificarea se va aplica numai pentru cele ulterioare INSERT instrucțiuni.
- SET/DROP NOT NULL: modifică dacă o coloană va permite valorile nule sau nu.
- 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ă. Aceasta va determina unde este ținută coloana, fie în linie, fie într-un tabel suplimentar.
- SET FĂRĂ OIDURI: Utilizați pentru a elimina vechea coloană a tabelului.
- REDENUMIȚI: pentru schimbarea numelui tabelului sau al unei coloane.
- ADD table_constraint: Utilizați pentru adăugarea unei noi constrângeri la un tabel. Folosește aceeași sintaxă ca CREAȚI TABEL comanda.
- DRAP CONSTRAINT: Utilizați pentru eliminarea unei constrângeri de tabel.
- PROPRIETAR: pentru schimbarea proprietarului unui tabel, secvență, index sau vizualizare la un anumit utilizator.
- CURSE: pentru marcarea unui tabel care va fi utilizat pentru efectuarea viitoarelor operațiuni 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 despre acestea:
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 trebuie modificat.
New-column-name este numele noii coloane care urmează să fie adăugată.
Definiția-coloană este tip de date a noii coloane.
Vezi tabelul de carte prezentat mai jos:
Tabelul are două coloane, id și nume. Trebuie să adăugăm o nouă coloană la tabel și să îi dăm numele autorului. Doar rulaț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 vechi/actual al coloanei.
New-name este noul nume al coloanei. Luați în considerare cartea tabelului prezentată mai jos:
Carte:
Avem nevoie de numele autorului coloanei pentru 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 și atunci când nu specificați o valoare pentru acea coloană în timpul operațiunilor de INSERT, valoarea implicită să fie 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-coloană este numele pentru a cărui valoare implicită trebuie setată.
Valoarea este valoarea implicită pentru coloană.
Luați în considerare tabelul Cărții 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 inserat valori pentru doar două coloane, id și nume. Cu toate acestea, valoarea implicită a fost folosită 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 trebuie modificat.
Expresia este constrângerea care trebuie impusă coloanei tabelului.
Să modificăm coloana book_author din tabelul 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ă 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;
Numele tabelului este numele curent al tabelului.
New-table-name este noul nume care trebuie atribuit tabelului.
De exemplu, să schimbăm numele tabelului Cărți în Cărți:
ALTER TABLE Book RENAME 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:
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
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
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, 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.
Coloanele ar trebui să fie acum după cum urmează:
Coloana a fost schimbată cu succes.
Setarea unei valori implicite pentru o coloană
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
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
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
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, faceți următoarele:
- Tastați următoarea interogare în editorul de interogări:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Faceți clic pe butonul Execute.
Va returna următoarele:
Redenumirea unui tabel
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
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, 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.
Tabelul a fost redenumit cu succes.
Rezumat
- Instrucțiunea ALTER TABLE este folosită 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ă declarație pentru a schimba numele unui tabel.
- Comanda ALTER TABLE poate fi folosită pentru a seta valoarea implicită a unei coloane.
- Declarația poate fi folosită pentru a valida valorile care sunt introduse într-o coloană de tabel.
Descărcați baza de date folosită în acest tutorial