Príkaz ALTER TABLE sa používa na zmenu štruktúry tabuľky PostgreSQL. Je to príkaz, ktorý sa používa na zmenu stĺpcov tabuľky alebo názvu tabuľky.
V tomto návode sa dozviete:
- Syntax
- Popis
- Úprava stĺpca
- Pridáva sa nový stĺpec
- Premenovanie stĺpca tabuľky
- Nastavenie predvolenej hodnoty pre stĺpec
- Pridanie obmedzenia šeku
- Premenovanie tabuľky
- Pomocou pgAdmin
Syntax
Tu je syntax príkazu PostgreSQL ALTER TABLE:
ALTER TABLE table-name action;
Parameter názov tabuľky je názov tabuľky, ktorú musíte zmeniť.
Parameter akcie je akcia, ktorú musíte vykonať, napríklad zmena názvu stĺpca, zmena dátového typu stĺpca atď.
Popis
Príkaz ALTER TABLE zmení definíciu existujúcej tabuľky. Má nasledujúce podformy:
- PRIDAŤ STĹPEC : na pridanie nového stĺpca do tabuľky sa používa podobná syntax ako v prípade príkazu CREATE TABLE.
- DROP COLUMN : na vypustenie stĺpca tabuľky. Obmedzenia a indexy uložené pre stĺpce budú tiež zrušené.
- SET / DROP DEFAULT : Používa sa na odstránenie predvolenej hodnoty pre stĺpec. Zmena sa však bude týkať iba následných príkazov INSERT.
- SET / DROP NOT NULL : Mení, či stĺpec povolí nulové hodnoty alebo nie.
- SET STATISTICS: Na nastavenie cieľa zhromažďovania štatistík pre každý stĺpec pre operácie ANALYZE.
- SET STORAGE : Na nastavenie režimu ukladania pre stĺpec. Toto určí, kde je stĺpec držaný, či už vložený, alebo v doplnkovej tabuľke.
- SADA BEZ OIDÍ : Používa sa na odstránenie starého stĺpca tabuľky.
- RENAME : na zmenu názvu tabuľky alebo názvu stĺpca.
- ADD table_constraint : Používa sa na pridanie nového obmedzenia do tabuľky. Používa rovnakú syntax ako príkaz CREATE TABLE.
- DROP CONSTRAINT : Používa sa na zrušenie obmedzenia tabuľky.
- VLASTNÍK : na zmenu vlastníka tabuľky, sekvencie, indexu alebo pohľadu na určitého používateľa.
- CLUSTER : na označenie tabuľky, ktorá sa má použiť na vykonávanie budúcich operácií klastra.
Úprava stĺpca
Stĺpec môže byť upravený mnohými spôsobmi. Takéto úpravy je možné vykonať pomocou príkazu ALTER TABLE. Poďme o nich diskutovať:
Pridáva sa nový stĺpec
Na pridanie nového stĺpca do tabuľky PostgreSQL sa používa príkaz ALTER TABLE s nasledujúcou syntaxou:
ALTER TABLE table-nameADD new-column-name column-definition;
Názov-tabuľky je názov tabuľky, ktorá sa má upraviť.
New-column-name je názov nového stĺpca, ktorý sa má pridať.
Definícia stĺpca je dátový typ nového stĺpca.
Pozrite si tabuľku kníh uvedenú nižšie:
Tabuľka má dva stĺpce, id a name. Musíme do tabuľky pridať nový stĺpec a dať mu meno autor. Stačí spustiť nasledujúci príkaz:
ALTER TABLE BookADD author VARCHAR(50);
Po vykonaní vyššie uvedeného príkazu je tabuľka Book teraz nasledovná:
Nový stĺpec bol úspešne pridaný.
Premenovanie stĺpca tabuľky
Na zmenu názvu stĺpca môžeme použiť príkaz ALTER TABLE. V tomto prípade sa príkaz používa s nasledujúcou syntaxou:
ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;
Názov-tabuľky je názov tabuľky, ktorej stĺpec sa má premenovať.
Starý názov je starý / aktuálny názov stĺpca.
Nový názov je nový názov stĺpca. Zvážte tabuľku Kniha zobrazenú nižšie:
Kniha:
Potrebujeme meno autora stĺpca book_author. Tu je príkaz:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Po spustení príkazu si môžeme prezrieť štruktúru tabuľky:
Názov stĺpca bol úspešne zmenený.
Nastavenie predvolenej hodnoty pre stĺpec
Môžeme nastaviť predvolenú hodnotu pre stĺpec, takže aj keď neurčíte hodnotu pre tento stĺpec počas operácií INSERT, použije sa predvolená hodnota. V takom prípade je možné príkaz ALTER TABLE použiť s nasledujúcou syntaxou:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Názov-tabuľky je názov tabuľky, ktorej stĺpec sa má upraviť.
Názov stĺpca je názov, pre ktorého predvolenú hodnotu sa má nastaviť.
Hodnota je predvolená hodnota pre stĺpec.
Zvážte nižšie uvedenú tabuľku kníh:
Musíme nastaviť predvolenú hodnotu pre stĺpec book_author. Môžeme spustiť nasledujúci príkaz:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Teraz vložíme do tabuľky riadok:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');
Upozorňujeme, že sme vložili hodnoty iba pre dva stĺpce, id a name. Predvolená hodnota sa však použila pre stĺpec book_author:
Pridanie obmedzenia šeku
Obmedzenie kontroly pomáha pri overovaní platnosti záznamov, ktoré sa vkladajú do tabuľky. Môžeme to urobiť kombináciou príkazu ALTER TABLE s príkazom ADD CHECK. Syntax:
ALTER TABLE table-name ADD CHECK expression;
Názov-tabuľky je názov tabuľky, ktorá sa má zmeniť.
Výraz predstavuje obmedzenie, ktoré je potrebné uvaliť na stĺpec tabuľky.
Upravme stĺpec book_author v tabuľke Book tak, aby akceptoval iba hodnoty, Nicholas a Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Skúsme teraz vložiť do stĺpca book_author tabuľky Book hodnotu inú ako Nicholas alebo Samuel:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Príkaz vráti nasledujúcu chybu:
Operácia vloženia zlyhala, pretože sme porušili kontrolné obmedzenie.
Premenovanie tabuľky
Tu je syntax príkazu ALTER TABLE na premenovanie tabuľky:
ALTER TABLE table-nameRENAME TO new-table-name;
Názov tabuľky je aktuálny názov tabuľky.
New-table-name je nový názov, ktorý sa má priradiť k tabuľke.
Napríklad zmeníme názov tabuľky Knihy na Knihy:
ALTER TABLE BookRENAME TO Books;
Pomocou pgAdmin
Teraz sa pozrime, ako je možné tieto akcie vykonať pomocou pgAdmin.
Pridáva sa nový stĺpec
To isté dosiahnete prostredníctvom pgAdmin:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
ALTER TABLE BookADD author VARCHAR(50);
Krok 4) Kliknite na tlačidlo Vykonať.
Krok 5) Ak chcete skontrolovať, či bol stĺpec pridaný, postupujte takto:
- Na ľavom navigačnom paneli kliknite na položku Databázy.
- Rozbaliť ukážku.
- Rozbaľte schémy.
- Rozbaliť Verejné.
- Rozbaľte tabuľky.
- Rozbaliť knihu.
- Rozbaľte stĺpce.
Stĺpec mal byť pridaný, ako je uvedené nižšie:
Premenovanie stĺpca tabuľky
To isté dosiahnete prostredníctvom pgAdmin:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Krok 4) Kliknite na tlačidlo Vykonať.
Krok 5) Ak chcete skontrolovať, či bola zmena úspešná, postupujte takto:
- Na ľavom navigačnom paneli kliknite na položku Databázy.
- Rozbaliť ukážku.
- Rozbaľte schémy.
- Rozbaliť Verejné.
- Rozbaľte tabuľky.
- Rozbaliť knihu.
- Rozbaľte stĺpce.
Stĺpce by teraz mali byť nasledujúce:
Stĺpec bol úspešne zmenený.
Nastavenie predvolenej hodnoty pre stĺpec
To isté dosiahnete prostredníctvom pgAdmin:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Krok 4) Kliknite na tlačidlo Vykonať.
Krok 5) Ak chcete otestovať, spustite nasledujúci príkaz v editore dotazov:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')
Krok 6) Teraz môžeme v dotaze skontrolovať, či bola do stĺpca book_author vložená predvolená hodnota:
Pridanie obmedzenia šeku
To isté dosiahnete prostredníctvom pgAdmin:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Krok 4) Kliknite na tlačidlo Vykonať.
Krok 5) Ak to chcete vyskúšať, postupujte takto:
- Zadajte nasledujúci dopyt do editora dotazov:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Kliknite na tlačidlo Vykonať.
Vráti nasledovné:
Premenovanie tabuľky
To isté dosiahnete prostredníctvom pgAdmin:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
ALTER TABLE BookRENAME TO Books;
Krok 4) Kliknite na tlačidlo Vykonať.
Krok 5) Ak chcete skontrolovať, či bola tabuľka premenovaná, postupujte takto:
- Na ľavom navigačnom paneli kliknite na položku Databázy.
- Rozbaliť ukážku.
- Rozbaľte schémy.
- Rozbaliť Verejné.
- Rozbaľte tabuľky.
Tabuľka bola úspešne premenovaná.
Zhrnutie:
- Príkaz ALTER TABLE sa používa na úpravu štruktúry tabuľky.
- Príkaz ALTER TABLE má rôzne podoby v závislosti od úlohy, ktorú musíte vykonať.
- Štruktúrou môžu byť stĺpce tabuľky alebo samotná tabuľka.
- Týmto príkazom môžeme zmeniť názov tabuľky.
- Príkaz ALTER TABLE možno použiť na nastavenie predvolenej hodnoty stĺpca.
- Príkaz je možné použiť na validáciu hodnôt, ktoré sú zadané do stĺpca tabuľky.
Stiahnite si databázu použitú v tomto výučbe