ALTER TABLE-kommandoen bruges til at ændre strukturen i en PostgreSQL-tabel. Det er den kommando, der bruges til at ændre bordkolonnerne eller navnet på tabellen.
I denne vejledning lærer du:
- Syntaks
- Beskrivelse
- Ændring af en kolonne
- Tilføjelse af en ny kolonne
- Omdøbning af en tabelkolonne
- Indstilling af en standardværdi for en kolonne
- Tilføjelse af en kontrolbegrænsning
- Omdøbning af et bord
- Brug af pgAdmin
Syntaks
Her er syntaksen for PostgreSQL ALTER TABLE-kommandoen:
ALTER TABLE table-name action;
Parameteren for tabelnavn er navnet på den tabel, som du skal ændre.
Handlingsparameteren er den handling, du skal udføre, såsom at ændre navnet på en kolonne, ændre datatypen i en kolonne osv.
Beskrivelse
ALTER TABLE-kommandoen ændrer definitionen af en eksisterende tabel. Det tager følgende underformularer:
- TILFØJ KOLONNE : denne bruger lignende syntaks som CREATE TABLE-kommandoen for at føje en ny kolonne til en tabel.
- DROPKOLONNE : til at droppe en tabelkolonne. De begrænsninger og indekser, der pålægges kolonnerne, slettes også.
- SET / DROP DEFAULT : Bruges til at fjerne standardværdien for en kolonne. Ændringen gælder dog kun for de efterfølgende INSERT-erklæringer.
- SET / DROP NOT NULL : Ændrer, om en kolonne tillader nul eller ej.
- SET STATISTICS: Til indstilling af statistikindsamlingsmålet for hver kolonne til ANALYSER-operationer.
- SET LAGRING : Til indstilling af lagringstilstand for en kolonne. Dette bestemmer, hvor kolonnen holdes, hvad enten den er indbygget eller i en supplerende tabel.
- INDSTILLET UDEN OIDS : Bruges til at fjerne den gamle kolonne i tabellen.
- RENAME : til ændring af tabelnavnet eller et kolonnenavn.
- TILFØJ table_constraint : Bruges til at tilføje en ny begrænsning til en tabel. Den bruger den samme syntaks som CREATE TABLE-kommandoen.
- DROP CONSTRAINT : Brug til at droppe en tabelbegrænsning.
- EJER : til at ændre ejeren af en tabel, sekvens, indeks eller en visning til en bestemt bruger.
- CLUSTER : til markering af en tabel, der skal bruges til at udføre fremtidige klyngeoperationer.
Ændring af en kolonne
En kolonne kan ændres på en række måder. Sådanne ændringer kan udføres ved hjælp af kommandoen ALTER TABLE. Lad os diskutere disse:
Tilføjelse af en ny kolonne
For at tilføje en ny kolonne til en PostgreSQL-tabel bruges ALTER TABLE-kommandoen med følgende syntaks:
ALTER TABLE table-nameADD new-column-name column-definition;
Tabellenavnet er navnet på den tabel, der skal ændres.
Det nye kolonnenavn er navnet på den nye kolonne, der skal tilføjes.
Kolonnedefinitionen er datatypen for den nye kolonne.
Se bogtabellen vist nedenfor:
Tabellen har to kolonner, id og navn. Vi er nødt til at tilføje en ny kolonne til tabellen og give den navnet forfatter. Kør bare følgende kommando:
ALTER TABLE BookADD author VARCHAR(50);
Efter at have kørt ovenstående kommando er bogtabellen nu som følger:
Den nye kolonne blev tilføjet med succes.
Omdøbning af en tabelkolonne
Vi kan bruge ALTER TABLE-kommandoen til at ændre navnet på en kolonne. I dette tilfælde bruges kommandoen med følgende syntaks:
ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;
Tabellenavnet er navnet på den tabel, hvis kolonne skal omdøbes.
Det gamle navn er kolonnens gamle / aktuelle navn.
Det nye navn er det nye navn på kolonnen. Overvej tabellen Bog vist nedenfor:
Bestil:
Vi har brug for navnet på kolonneforfatteren til book_author. Her er kommandoen:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Efter at have kørt kommandoen kan vi se strukturens struktur:
Kolonnens navn blev ændret med succes.
Indstilling af en standardværdi for en kolonne
Vi kan indstille en standardværdi for en kolonne, så selvom du ikke angiver en værdi for den kolonne under INSERT-operationer, bruges standardværdien. I dette tilfælde kan ALTER TABLE-kommandoen bruges med følgende syntaks:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Tabellenavnet er navnet på den tabel, hvis kolonne skal ændres.
Kolonnenavnet er det navn, hvis standardværdi skal indstilles.
Værdien er standardværdien for kolonnen.
Overvej bogtabellen nedenfor:
Vi er nødt til at indstille en standardværdi for book_author-kolonnen. Vi kan køre følgende kommando:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Lad os nu indsætte en række i tabellen:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');
Bemærk, at vi kun indsatte værdier for to kolonner, id og navn. Standardværdien er dog blevet brugt til bogforfatterkolonnen:
Tilføjelse af en kontrolbegrænsning
En kontrolbegrænsning hjælper med at validere de poster, der indsættes i en tabel. Vi kan gøre dette ved at kombinere ALTER TABLE-kommandoen med ADD CHECK-sætningen. Syntaks:
ALTER TABLE table-name ADD CHECK expression;
Tabellenavnet er navnet på den tabel, der skal ændres.
Udtrykket er den begrænsning, der skal pålægges bordkolonnen.
Lad os ændre bogforfatterkolonnen i bogtabellen, så den kun accepterer værdierne, Nicholas og Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Lad os nu prøve at indsætte en anden værdi end Nicholas eller Samuel i bogforfatterkolonnen i bogtabellen:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Erklæringen returnerer følgende fejl:
Indsættelsen mislykkedes, fordi vi overtrådte kontrolbegrænsningen.
Omdøbning af et bord
Her er syntaksen for ALTER TABLE-kommandoen til omdøbning af en tabel:
ALTER TABLE table-nameRENAME TO new-table-name;
Tabellenavnet er det aktuelle navn på tabellen.
Det nye bordnavn er det nye navn, der skal tildeles tabellen.
Lad os for eksempel ændre navnet på bogtabellen til bøger:
ALTER TABLE BookRENAME TO Books;
Brug af pgAdmin
Lad os nu se, hvordan disse handlinger kan udføres ved hjælp af pgAdmin.
Tilføjelse af en ny kolonne
For at opnå det samme gennem pgAdmin skal du gøre dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Skriv forespørgslen i forespørgselseditoren:
ALTER TABLE BookADD author VARCHAR(50);
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere, om kolonnen blev tilføjet, skal du gøre følgende:
- Klik på Databaser fra venstre navigation.
- Udvid demo.
- Udvid skemaer.
- Udvid offentlig.
- Udvid tabeller.
- Udvid bogen.
- Udvid kolonner.
Kolonnen skulle være tilføjet som vist nedenfor:
Omdøbning af en tabelkolonne
For at opnå det samme gennem pgAdmin skal du gøre dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Skriv forespørgslen i forespørgselseditoren:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere, om ændringen var vellykket, skal du gøre følgende:
- Klik på Databaser fra venstre navigation.
- Udvid demo.
- Udvid skemaer.
- Udvid offentlig.
- Udvid tabeller.
- Udvid bogen.
- Udvid kolonner.
Kolonnerne skal nu være som følger:
Kolonnen blev ændret med succes.
Indstilling af en standardværdi for en kolonne
For at opnå det samme gennem pgAdmin skal du gøre dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Skriv forespørgslen i forespørgselseditoren:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Trin 4) Klik på knappen Udfør.
Trin 5) Kør følgende kommando på forespørgselseditoren for at teste:
INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')
Trin 6) Nu kan vi forespørge tabellen for at kontrollere, om standardværdien blev indsat i kolonnen bogforfatter:
Tilføjelse af en kontrolbegrænsning
For at opnå det samme gennem pgAdmin skal du gøre dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Skriv forespørgslen i forespørgselseditoren:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Trin 4) Klik på knappen Udfør.
Trin 5) For at teste dette skal du gøre følgende:
- Skriv følgende forespørgsel i forespørgselseditoren:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Klik på knappen Udfør.
Den returnerer følgende:
Omdøbning af et bord
For at opnå det samme gennem pgAdmin skal du gøre dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Skriv forespørgslen i forespørgselseditoren:
ALTER TABLE BookRENAME TO Books;
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere, om tabellen blev omdøbt, skal du gøre følgende:
- Klik på Databaser fra venstre navigation.
- Udvid demo.
- Udvid skemaer.
- Udvid offentlig.
- Udvid tabeller.
Tabellen blev omdøbt med succes.
Resumé:
- ALTER TABLE-sætningen bruges til at ændre tabellens struktur.
- ALTER TABLE-kommandoen har forskellige former afhængigt af den opgave, du skal udføre.
- Strukturen kan være tabelkolonnerne eller selve tabellen.
- Vi kan bruge denne erklæring til at ændre navnet på en tabel.
- ALTER TABLE-kommandoen kan bruges til at indstille standardværdien for en kolonne.
- Erklæringen kan bruges til at validere de værdier, der er indtastet i en tabelkolonne.
Download den database, der blev brugt i denne vejledning