ALTER TABLE-kommandot används för att ändra strukturen i en PostgreSQL-tabell. Det är kommandot som används för att ändra tabellkolumnerna eller namnet på tabellen.
I den här handledningen lär du dig:
- Syntax
- Beskrivning
- Ändra en kolumn
- Lägga till en ny kolumn
- Byta namn på en tabellkolumn
- Ställa in ett standardvärde för en kolumn
- Lägga till en checkbegränsning
- Byta namn på ett bord
- Använda pgAdmin
Syntax
Här är syntaxen för kommandot PostgreSQL ALTER TABLE:
ALTER TABLE table-name action;
Tabellnamnparametern är namnet på tabellen som du behöver ändra.
Åtgärdsparametern är den åtgärd som du behöver utföra, till exempel att ändra namnet på en kolumn, ändra datatypen för en kolumn, etc.
Beskrivning
Kommandot ALTER TABLE ändrar definitionen av en befintlig tabell. Det krävs följande underformulär:
- LÄGG TILL KOLONN : denna använder liknande syntax som kommandot CREATE TABLE för att lägga till en ny kolumn i en tabell.
- DROPKOLONN : för att släppa en tabellkolumn. De begränsningar och index som läggs på kolumnerna kommer också att tas bort.
- SET / DROP STANDARD : Används för att ta bort standardvärdet för en kolumn. Ändringen kommer dock endast att gälla för efterföljande INSERT-uttalanden.
- SET / DROP NOT NULL : Ändrar om en kolumn tillåter nollor eller inte.
- STÄLLA STATISTIK: För att ställa in mål för statistikinsamling för varje kolumn för ANALYSERA-operationer.
- SET LAGRING : För att ställa in lagringsläget för en kolumn. Detta kommer att avgöra var kolumnen hålls, antingen inline eller i en kompletterande tabell.
- INSTÄLLS UTAN FÖRMÅL : Används för att ta bort den gamla kolumnen i tabellen.
- RENAME : för att ändra tabellnamnet eller ett kolumnnamn.
- ADD table_constraint : Används för att lägga till en ny begränsning i en tabell. Den använder samma syntax som CREATE TABLE-kommandot.
- DROP CONSTRAINT : Används för att släppa en tabellbegränsning.
- ÄGARE : för att ändra ägaren till en tabell, sekvens, index eller en vy till en viss användare.
- CLUSTER : för att markera en tabell som ska användas för att utföra framtida klusteroperationer.
Ändra en kolumn
En kolumn kan modifieras på ett antal sätt. Sådana modifieringar kan göras med kommandot ALTER TABLE. Låt oss diskutera dessa:
Lägga till en ny kolumn
För att lägga till en ny kolumn i en PostgreSQL-tabell används ALTER TABLE-kommandot med följande syntax:
ALTER TABLE table-nameADD new-column-name column-definition;
Tabellnamnet är namnet på tabellen som ska ändras.
Det nya kolumnnamnet är namnet på den nya kolumnen som ska läggas till.
Kolumndefinitionen är datatypen för den nya kolumnen.
Se boktabellen nedan:
Tabellen har två kolumner, id och namn. Vi måste lägga till en ny kolumn i tabellen och ge den namnet författare. Kör bara följande kommando:
ALTER TABLE BookADD author VARCHAR(50);
Efter att ha kört ovanstående kommando är boktabellen nu som följer:
Den nya kolumnen har lagts till.
Byta namn på en tabellkolumn
Vi kan använda ALTER TABLE-kommandot för att ändra namnet på en kolumn. I det här fallet används kommandot med följande syntax:
ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;
Tabellnamnet är namnet på tabellen vars kolumn ska bytas namn.
Det gamla namnet är det gamla / nuvarande namnet på kolumnen.
Det nya namnet är det nya namnet på kolumnen. Tänk på tabellen Bok som visas nedan:
Bok:
Vi behöver namnet på kolumnförfattaren till book_author. Här är kommandot:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Efter att ha kört kommandot kan vi se strukturen i tabellen:
Kolumnnamnet ändrades framgångsrikt.
Ställa in ett standardvärde för en kolumn
Vi kan ställa in ett standardvärde för en kolumn så att även när du inte anger ett värde för den kolumnen under INSERT-operationer kommer standardvärdet att användas. I det här fallet kan ALTER TABLE-kommandot användas med följande syntax:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Tabellnamnet är namnet på tabellen vars kolumn ska ändras.
Kolumnnamnet är det namn vars standardvärde ska ställas in.
Värdet är standardvärdet för kolumnen.
Tänk på boktabellen nedan:
Vi måste ange ett standardvärde för kolumnen book_author. Vi kan köra följande kommando:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Låt oss nu infoga en rad i tabellen:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');
Observera att vi infogade värden för endast två kolumner, id och namn. Standardvärdet har dock använts för kolumnen book_author:
Lägga till en checkbegränsning
En kontrollbegränsning hjälper till att validera de poster som sätts in i en tabell. Vi kan göra detta genom att kombinera ALTER TABLE-kommandot med ADD CHECK-uttalandet. Syntax:
ALTER TABLE table-name ADD CHECK expression;
Tabellnamnet är namnet på tabellen som ska ändras.
Uttrycket är den begränsning som ska införas på tabellkolumnen.
Låt oss ändra kolumnen bokförfattare i boktabellen så att den endast accepterar värdena, Nicholas och Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Låt oss nu försöka infoga ett annat värde än Nicholas eller Samuel i book_author-kolumnen i boktabellen:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Uttalandet returnerar följande fel:
Insättningen misslyckades eftersom vi bryter mot kontrollbegränsningen.
Byta namn på ett bord
Här är syntaxen för kommandot ALTER TABLE för att byta namn på en tabell:
ALTER TABLE table-nameRENAME TO new-table-name;
Tabellnamnet är det aktuella namnet på tabellen.
Det nya tabellnamnet är det nya namnet som ska tilldelas tabellen.
Låt oss till exempel ändra namnet på boktabellen till böcker:
ALTER TABLE BookRENAME TO Books;
Använda pgAdmin
Låt oss nu se hur dessa åtgärder kan utföras med pgAdmin.
Lägga till en ny kolumn
För att åstadkomma samma genom pgAdmin, gör detta:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
ALTER TABLE BookADD author VARCHAR(50);
Steg 4) Klicka på knappen Kör.
Steg 5) Gör följande för att kontrollera om kolumnen har lagts till:
- Klicka på Databaser från vänster navigering.
- Expandera demo.
- Expandera scheman.
- Expandera allmänheten.
- Expandera tabeller.
- Expandera boken.
- Expandera kolumner.
Kolumnen borde ha lagts till, som visas nedan:
Byta namn på en tabellkolumn
För att åstadkomma samma genom pgAdmin, gör detta:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Steg 4) Klicka på knappen Kör.
Steg 5) För att kontrollera om ändringen lyckades, gör följande:
- Klicka på Databaser från vänster navigering.
- Expandera demo.
- Expandera scheman.
- Expandera allmänheten.
- Expandera tabeller.
- Expandera boken.
- Expandera kolumner.
Kolumnerna ska nu vara som följer:
Kolumnen ändrades framgångsrikt.
Ställa in ett standardvärde för en kolumn
För att åstadkomma samma genom pgAdmin, gör detta:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Steg 4) Klicka på knappen Kör.
Steg 5) För att testa, kör följande kommando i frågeredigeraren:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')
Steg 6) Nu kan vi fråga tabellen för att kontrollera om standardvärdet infördes i kolumnen book_author:
Lägga till en checkbegränsning
För att åstadkomma samma genom pgAdmin, gör detta:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Steg 4) Klicka på knappen Kör.
Steg 5) Gör följande för att testa detta:
- Skriv följande fråga i frågeditorn:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Klicka på knappen Kör.
Den returnerar följande:
Byta namn på ett bord
För att åstadkomma samma genom pgAdmin, gör detta:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
ALTER TABLE BookRENAME TO Books;
Steg 4) Klicka på knappen Kör.
Steg 5) Gör följande för att kontrollera om tabellen bytt namn:
- Klicka på Databaser från vänster navigering.
- Expandera demo.
- Expandera scheman.
- Expandera allmänheten.
- Expandera tabeller.
Tabellen döptes om framgångsrikt.
Sammanfattning:
- Uttalandet ALTER TABLE används för att ändra tabellens struktur.
- Kommandot ALTER TABLE har olika former beroende på vilken uppgift du behöver utföra.
- Strukturen kan vara tabellkolumnerna eller själva tabellen.
- Vi kan använda detta uttalande för att ändra namnet på en tabell.
- Kommandot ALTER TABLE kan användas för att ställa in standardvärdet för en kolumn.
- Uttalningen kan användas för att validera de värden som anges i en tabellkolumn.
Ladda ner databasen som används i denna handledning