PostgreSQL ALTER-tabell: ADD Column, Gi nytt navn til Column / Table Eksempler

ALTER TABLE-kommandoen brukes til å endre strukturen til en PostgreSQL-tabell. Det er kommandoen som brukes til å endre tabellkolonnene eller navnet på tabellen.

I denne opplæringen lærer du:

  • Syntaks
  • Beskrivelse
  • Endring av en kolonne
    • Legge til en ny kolonne
    • Endre navn på en tabellkolonne
  • Angi en standardverdi for en kolonne
  • Legge til en sjekkbegrensning
  • Endre navn på et bord
  • Bruke pgAdmin

Syntaks

Her er syntaksen for PostgreSQL ALTER TABLE-kommandoen:

ALTER TABLE table-name action;

Tabellnavnparameteren er navnet på tabellen du trenger å endre.

Handlingsparameteren er handlingen du må utføre, for eksempel å endre navnet på en kolonne, endre datatypen til en kolonne, etc.

Beskrivelse

ALTER TABLE-kommandoen endrer definisjonen av en eksisterende tabell. Det tar følgende underformer:

  • LEGG TIL KOLONN : dette bruker lignende syntaks som CREATE TABLE-kommando for å legge til en ny kolonne i en tabell.
  • DROPKOLONN : for å slippe en tabellkolonne. Begrensningene og indeksene som pålegges kolonnene vil også bli fjernet.
  • SET / DROP DEFAULT : Brukes til å fjerne standardverdien for en kolonne. Endringen vil imidlertid bare gjelde for de påfølgende INSERT-uttalelsene.
  • SET / DROP NOT NULL : Endrer om en kolonne tillater null eller ikke.
  • SETT STATISTIKK: For å sette mål for statistikkinnsamling for hver kolonne for ANALYSER-operasjoner.
  • SET LAGRING : For å stille inn lagringsmodus for en kolonne. Dette vil avgjøre hvor kolonnen holdes, enten det er innebygd, eller i en tilleggstabell.
  • INNSTILLT UTEN OIDS : Brukes til å fjerne den gamle kolonnen i tabellen.
  • RENAME : for å endre tabellnavnet eller et kolonnenavn.
  • ADD table_constraint : Brukes for å legge til en ny begrensning i en tabell. Den bruker samme syntaks som CREATE TABLE-kommandoen.
  • DROP CONSTRAINT : Brukes til å slippe en tabellbegrensning.
  • EIER : for å endre eier av en tabell, sekvens, indeks eller visning til en bestemt bruker.
  • CLUSTER : for å merke en tabell som skal brukes til å utføre fremtidige klyngoperasjoner.

Endring av en kolonne

En kolonne kan endres på flere måter. Slike modifikasjoner kan gjøres ved å bruke ALTER TABLE-kommandoen. La oss diskutere disse:

Legge til en ny kolonne

For å legge til en ny kolonne i en PostgreSQL-tabell, brukes ALTER TABLE-kommandoen med følgende syntaks:

ALTER TABLE table-nameADD new-column-name column-definition;

Tabellnavnet er navnet på tabellen som skal endres.

Det nye kolonnenavnet er navnet på den nye kolonnen som skal legges til.

Kolonnedefinisjonen er datatypen til den nye kolonnen.

Se boktabellen vist nedenfor:

Tabellen har to kolonner, id og navn. Vi må legge til en ny kolonne i tabellen og gi den navnet forfatter. Bare kjør følgende kommando:

ALTER TABLE BookADD author VARCHAR(50);

Etter å ha kjørt kommandoen ovenfor, er boktabellen nå som følger:

Den nye kolonnen ble lagt til.

Endre navn på en tabellkolonne

Vi kan bruke ALTER TABLE-kommandoen til å endre navnet på en kolonne. I dette tilfellet brukes kommandoen med følgende syntaks:

ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;

Tabellnavnet er navnet på tabellen hvis kolonne skal omdøpes.

Det gamle navnet er det gamle / nåværende navnet på kolonnen.

Det nye navnet er det nye navnet på kolonnen. Tenk på tabellen Book vist nedenfor:

Bok:

Vi trenger navnet på kolonneforfatteren til book_author. Her er kommandoen:

ALTER TABLE BookRENAME COLUMN author TO book_author;

Etter å ha kjørt kommandoen kan vi se strukturen til tabellen:

Kolonnenavnet ble endret.

Angi en standardverdi for en kolonne

Vi kan angi en standardverdi for en kolonne slik at selv når du ikke angir en verdi for den kolonnen under INSERT-operasjoner, vil standardverdien bli brukt. I dette tilfellet kan ALTER TABLE-kommandoen brukes med følgende syntaks:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Tabellnavnet er navnet på tabellen hvis kolonne skal endres.

Kolonnenavnet er navnet som standardverdien skal angis for.

Verdien er standardverdien for kolonnen.

Vurder boktabellen nedenfor:

Vi må angi en standardverdi for book_author-kolonnen. Vi kan kjøre følgende kommando:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

La oss nå sette inn en rad i tabellen:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');

Merk at vi bare la inn verdier for to kolonner, id og navn. Standardverdien har imidlertid blitt brukt for book_author-kolonnen:

Legge til en sjekkbegrensning

En sjekkbegrensning hjelper til med å validere postene som settes inn i en tabell. Vi kan gjøre dette ved å kombinere ALTER TABLE-kommandoen med ADD CHECK-setningen. Syntaks:

ALTER TABLE table-name ADD CHECK expression;

Tabellnavnet er navnet på tabellen som skal endres.

Uttrykket er begrensningen som skal pålegges tabellkolonnen.

La oss endre book_author-kolonnen i Book-tabellen slik at den bare aksepterer verdiene, Nicholas og Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

La oss nå prøve å sette inn en annen verdi enn Nicholas eller Samuel i book_author-kolonnen i Book-tabellen:

INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

Uttalelsen vil returnere følgende feil:

Innsettingsoperasjonen mislyktes fordi vi brøt kontrollbegrensningen.

Endre navn på et bord

Her er syntaksen for ALTER TABLE-kommandoen for å gi nytt navn til en tabell:

ALTER TABLE table-nameRENAME TO new-table-name;

Tabellnavnet er det nåværende navnet på tabellen.

Det nye bordnavnet er det nye navnet som skal tildeles tabellen.

La oss for eksempel endre navnet på boktabellen til bøker:

ALTER TABLE BookRENAME TO Books;

Bruke pgAdmin

La oss nå se hvordan disse handlingene kan utføres ved hjelp av pgAdmin.

Legge til en ny kolonne

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

ALTER TABLE BookADD author VARCHAR(50);

Trinn 4) Klikk på Utfør-knappen.

Trinn 5) Gjør følgende for å kontrollere om kolonnen ble lagt til:

  1. Klikk på Databaser fra venstre navigasjon.
  2. Utvid demo.
  3. Utvid skjemaer.
  4. Utvid offentlig.
  5. Utvid tabeller.
  6. Utvid boken.
  7. Utvid kolonner.

Kolonnen burde ha blitt lagt til, som vist nedenfor:

Endre navn på en tabellkolonne

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

ALTER TABLE BookRENAME COLUMN author TO book_author;

Trinn 4) Klikk på Utfør-knappen.

Trinn 5) For å sjekke om endringen var vellykket, gjør du følgende:

  1. Klikk på Databaser fra venstre navigasjon.
  2. Utvid demo.
  3. Utvid skjemaer.
  4. Utvid offentlig.
  5. Utvid tabeller.
  6. Utvid boken.
  7. Utvid kolonner.

Kolonnene skal nå være som følger:

Kolonnen ble endret.

Angi en standardverdi for en kolonne

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Trinn 4) Klikk på Utfør-knappen.

Trinn 5) For å teste, kjør følgende kommando på spørreeditoren:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')

Trinn 6) Nå kan vi spørre tabellen for å sjekke om standardverdien ble satt inn i boken_forfatterkolonnen:

Legge til en sjekkbegrensning

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Trinn 4) Klikk på Utfør-knappen.

Trinn 5) Gjør følgende for å teste dette:

  1. Skriv inn følgende spørring i spørreeditoren:
    INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
  2. Klikk på Utfør-knappen.

    Det vil returnere følgende:

Endre navn på et bord

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

ALTER TABLE BookRENAME TO Books;

Trinn 4) Klikk på Utfør-knappen.

Trinn 5) Gjør følgende for å kontrollere om tabellen ble omdøpt:

  1. Klikk på Databaser fra venstre navigasjon.
  2. Utvid demo.
  3. Utvid skjemaer.
  4. Utvid offentlig.
  5. Utvid tabeller.

Tabellen ble omdøpt.

Sammendrag:

  • ALTER TABLE-setningen brukes til å endre strukturen i tabellen.
  • ALTER TABLE-kommandoen har forskjellige former, avhengig av oppgaven du trenger å utføre.
  • Strukturen kan være tabellkolonnene eller selve tabellen.
  • Vi kan bruke denne uttalelsen til å endre navnet på en tabell.
  • ALTER TABLE-kommandoen kan brukes til å angi standardverdien for en kolonne.
  • Uttalelsen kan brukes til å validere verdiene som er lagt inn i en tabellkolonne.

Last ned databasen som brukes i denne veiledningen

Interessante artikler...