Příkaz ALTER TABLE se používá ke změně struktury tabulky PostgreSQL. Jedná se o příkaz používaný ke změně sloupců tabulky nebo názvu tabulky.
V tomto výukovém programu se naučíte:
- Syntax
- Popis
- Úprava sloupce
- Přidání nového sloupce
- Přejmenování sloupce tabulky
- Nastavení výchozí hodnoty pro sloupec
- Přidání omezení kontroly
- Přejmenování tabulky
- Pomocí pgAdmin
Syntax
Zde je syntaxe příkazu PostgreSQL ALTER TABLE:
ALTER TABLE table-name action;
Parametr název-tabulky je název tabulky, kterou musíte změnit.
Parametr akce je akce, kterou musíte provést, například změna názvu sloupce, změna datového typu sloupce atd.
Popis
Příkaz ALTER TABLE mění definici existující tabulky. Trvá následující podformuláře:
- PŘIDAT Sloupec : používá k přidání nového sloupce do tabulky podobnou syntaxi jako příkaz CREATE TABLE.
- DROP COLUMN : pro zrušení sloupce tabulky. Omezení a indexy uložené na sloupcích budou také zrušeny.
- SET / DROP DEFAULT : Slouží k odebrání výchozí hodnoty pro sloupec. Změna se však bude vztahovat pouze na následující příkazy INSERT.
- SET / DROP NOT NULL : Změní, zda sloupec povolí nuly nebo ne.
- SET STATISTICS: Pro nastavení cíle shromažďování statistik pro každý sloupec pro operace ANALYZE.
- SET STORAGE : Pro nastavení režimu ukládání pro sloupec. Tím se určí, kde je sloupec držen, ať už vložený, nebo v doplňkové tabulce.
- SADA BEZ OIDŮ : Slouží k odstranění starého sloupce tabulky.
- RENAME : pro změnu názvu tabulky nebo názvu sloupce.
- ADD table_constraint : Slouží k přidání nového omezení do tabulky. Používá stejnou syntaxi jako příkaz CREATE TABLE.
- DROP CONSTRAINT : Slouží k zrušení omezení tabulky.
- VLASTNÍK : pro změnu vlastníka tabulky, sekvence, indexu nebo pohledu na určitého uživatele.
- CLUSTER : pro označení tabulky, která se má použít k provádění budoucích operací klastru.
Úprava sloupce
Sloupec lze upravit mnoha způsoby. Tyto úpravy lze provést pomocí příkazu ALTER TABLE. Pojďme o nich diskutovat:
Přidání nového sloupce
Chcete-li přidat nový sloupec do tabulky PostgreSQL, používá se příkaz ALTER TABLE s následující syntaxí:
ALTER TABLE table-nameADD new-column-name column-definition;
Název-tabulky je název tabulky, kterou chcete upravit.
New-column-name je název nového sloupce, který se má přidat.
Definice sloupce je datový typ nového sloupce.
Viz tabulka Kniha uvedená níže:
Tabulka má dva sloupce, id a name. Musíme do tabulky přidat nový sloupec a dát mu jméno autora. Stačí spustit následující příkaz:
ALTER TABLE BookADD author VARCHAR(50);
Po spuštění výše uvedeného příkazu je tabulka Kniha nyní následující:
Nový sloupec byl úspěšně přidán.
Přejmenování sloupce tabulky
Můžeme použít příkaz ALTER TABLE ke změně názvu sloupce. V tomto případě se příkaz používá s následující syntaxí:
ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;
Název-tabulky je název tabulky, jejíž sloupec má být přejmenován.
Starý název je starý / aktuální název sloupce.
Nový název je nový název sloupce. Zvažte níže uvedenou tabulku Kniha:
Rezervovat:
Potřebujeme jméno autora sloupce book_author. Zde je příkaz:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Po spuštění příkazu můžeme zobrazit strukturu tabulky:
Název sloupce byl úspěšně změněn.
Nastavení výchozí hodnoty pro sloupec
Můžeme nastavit výchozí hodnotu pro sloupec tak, že i když nezadáte hodnotu pro tento sloupec během operací INSERT, použije se výchozí hodnota. V tomto případě lze příkaz ALTER TABLE použít s následující syntaxí:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Název-tabulky je název tabulky, jejíž sloupec má být upraven.
Název sloupce je název, pro jehož výchozí hodnotu má být nastavena.
Hodnota je výchozí hodnota pro sloupec.
Zvažte níže uvedenou tabulku knih:
Musíme nastavit výchozí hodnotu pro sloupec book_author. Můžeme spustit následující příkaz:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Nyní vložme řádek do tabulky:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');
Všimněte si, že jsme vložili hodnoty pouze pro dva sloupce, id a name. Pro sloupec book_author byla použita výchozí hodnota:
Přidání omezení kontroly
Omezení kontroly pomáhá při ověřování záznamů, které se vkládají do tabulky. Můžeme to provést kombinací příkazu ALTER TABLE s příkazem ADD CHECK. Syntax:
ALTER TABLE table-name ADD CHECK expression;
Název-tabulky je název tabulky, která má být změněna.
Výraz je omezení, které má být uvaleno na sloupec tabulky.
Upravme sloupec book_author v tabulce Book tak, aby přijímal pouze hodnoty, Nicholas a Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Zkusme nyní do sloupce book_author tabulky Book vložit jinou hodnotu než Nicholas nebo Samuel:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Příkaz vrátí následující chybu:
Operace vložení se nezdařila, protože jsme porušili kontrolní omezení.
Přejmenování tabulky
Zde je syntaxe příkazu ALTER TABLE pro přejmenování tabulky:
ALTER TABLE table-nameRENAME TO new-table-name;
Název tabulky je aktuální název tabulky.
New-table-name je nový název, který má být tabulce přiřazen.
Například změňme název tabulky Knihy na Knihy:
ALTER TABLE BookRENAME TO Books;
Pomocí pgAdmin
Nyní se podívejme, jak lze tyto akce provádět pomocí pgAdmin.
Přidání nového sloupce
Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigačním panelu vlevo klikněte na Databáze.
- Klikněte na ukázku.
Krok 3) Zadejte dotaz do editoru dotazů:
ALTER TABLE BookADD author VARCHAR(50);
Krok 4) Klikněte na tlačítko Provést.
Krok 5) Chcete-li zkontrolovat, zda byl sloupec přidán, postupujte takto:
- Na levém navigačním panelu klikněte na Databáze.
- Rozbalit ukázku.
- Rozbalte schémata.
- Rozbalit Veřejné.
- Rozbalit tabulky.
- Rozbalit knihu.
- Rozbalte sloupce.
Sloupec měl být přidán, jak je uvedeno níže:
Přejmenování sloupce tabulky
Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigačním panelu vlevo klikněte na Databáze.
- Klikněte na ukázku.
Krok 3) Zadejte dotaz do editoru dotazů:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Krok 4) Klikněte na tlačítko Provést.
Krok 5) Chcete-li zkontrolovat, zda byla změna úspěšná, postupujte takto:
- Na levém navigačním panelu klikněte na Databáze.
- Rozbalit ukázku.
- Rozbalte schémata.
- Rozbalit Veřejné.
- Rozbalit tabulky.
- Rozbalit knihu.
- Rozbalte sloupce.
Sloupce by nyní měly být následující:
Sloupec byl úspěšně změněn.
Nastavení výchozí hodnoty pro sloupec
Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigačním panelu vlevo klikněte na Databáze.
- Klikněte na ukázku.
Krok 3) Zadejte dotaz do editoru dotazů:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Krok 4) Klikněte na tlačítko Provést.
Krok 5) Chcete-li otestovat, spusťte v editoru dotazů následující příkaz:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')
Krok 6) Nyní můžeme v tabulce zjistit, zda byla do sloupce book_author vložena výchozí hodnota:
Přidání omezení kontroly
Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigačním panelu vlevo klikněte na Databáze.
- Klikněte na ukázku.
Krok 3) Zadejte dotaz do editoru dotazů:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Krok 4) Klikněte na tlačítko Provést.
Krok 5) Chcete-li to otestovat, proveďte následující:
- Zadejte následující dotaz do editoru dotazů:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Klikněte na tlačítko Provést.
Vrátí následující:
Přejmenování tabulky
Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigačním panelu vlevo klikněte na Databáze.
- Klikněte na ukázku.
Krok 3) Zadejte dotaz do editoru dotazů:
ALTER TABLE BookRENAME TO Books;
Krok 4) Klikněte na tlačítko Provést.
Krok 5) Chcete-li zkontrolovat, zda byla tabulka přejmenována, postupujte takto:
- Na levém navigačním panelu klikněte na Databáze.
- Rozbalit ukázku.
- Rozbalte schémata.
- Rozbalit Veřejné.
- Rozbalit tabulky.
Tabulka byla úspěšně přejmenována.
Souhrn:
- Příkaz ALTER TABLE se používá k úpravě struktury tabulky.
- Příkaz ALTER TABLE má různé podoby v závislosti na úkolu, který musíte provést.
- Strukturou mohou být sloupce tabulky nebo samotná tabulka.
- Toto prohlášení můžeme použít ke změně názvu tabulky.
- Příkaz ALTER TABLE lze použít k nastavení výchozí hodnoty sloupce.
- Příkaz lze použít k ověření hodnot, které jsou zadány do sloupce tabulky.
Stáhněte si databázi použitou v tomto výukovém programu