PostgreSQL ALTER-tabell: ADD-kolonne, Gi nytt navn til kolonne/tabelleksempler
ALTER TABLE-kommandoen brukes til å endre strukturen til en PostgreSQL bord. Det er kommandoen som brukes til å endre tabellkolonnene eller navnet på tabellen.
syntax
Her er syntaksen for PostgreSQL ALTER TABLE kommando:
ALTER TABLE table-name action;
Tabellnavn-parameteren er navnet på tabellen du må endre.
Handlingsparameteren er handlingen du må utføre, for eksempel å endre navnet på en kolonne, endre datatypen til en kolonne osv.
Tekniske beskrivelser
ALTER TABLE-kommandoen endrer definisjonen av en eksisterende tabell. Det tar følgende underskjemaer:
- LEGG TIL KOLONNE: denne bruker lignende syntaks som CREATE TABLE-kommandoen for å legge til en ny kolonne i en tabell.
- DROPPE KOLONNE: for å slippe en tabellkolonne. Begrensningene og indeksene som er pålagt kolonnene vil også bli slettet.
- SET/DROPP STANDARD: Brukes for å fjerne standardverdien for en kolonne. Endringen vil imidlertid kun gjelde for etterfølgende INSERT setninger.
- SET/DROP NOT NULL: Endrer om en kolonne vil tillate null eller ikke.
- ANGI STATISTIKK: For å angi statistikkinnsamlingsmålet for hver kolonne for ANALYSE-operasjoner.
- STILL LAGRING: For innstilling av lagringsmodus for en kolonne. Dette vil avgjøre hvor kolonnen holdes, enten inline eller i en tilleggstabell.
- SATT UTEN OID: Brukes for å 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 LAG TABELL kommando.
- DROPKONTRAST: Brukes for å slippe en tabellbegrensning.
- EIER: for å endre eieren av en tabell, sekvens, indeks eller en visning til en bestemt bruker.
- CLUSTER: for merking av en tabell som skal brukes for å utføre fremtidige klyngeoperasjoner.
Endre en kolonne
En kolonne kan endres på flere måter. Slike modifikasjoner kan gjøres ved å bruke ALTER TABLE-kommandoen. La oss diskutere disse:
Legger 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-name ADD 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 data-type av 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 Book ADD author VARCHAR(50);
Etter å ha kjørt kommandoen ovenfor, er boktabellen nå som følger:
Den nye kolonnen ble lagt til.
Gi nytt navn til 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-name RENAME COLUMN old-name TO new-name;
Tabellnavnet er navnet på tabellen hvis kolonne skal gis nytt navn.
Det gamle navnet er det gamle/nåværende navnet på kolonnen.
Det nye navnet er det nye navnet på kolonnen. Tenk på tabellboken vist nedenfor:
Bok:
Vi trenger navnet på spalteforfatteren til book_author. Her er kommandoen:
ALTER TABLE Book RENAME 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.
Tenk på 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 satt inn verdier for kun to kolonner, id og navn. Standardverdien har imidlertid blitt brukt for bok_forfatter-kolonnen:
Legge til en sjekkbegrensning
En kontrollbegrensning 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 boktabellen 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 boktabellen:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Utsagnet vil returnere følgende feil:
Innsettingsoperasjonen mislyktes fordi vi brøt kontrollbegrensningen.
Gi nytt navn til en tabell
Her er syntaksen for ALTER TABLE-kommandoen for å gi nytt navn til en tabell:
ALTER TABLE table-name RENAME TO new-table-name;
Tabellnavnet er det gjeldende navnet på tabellen.
Det nye tabellnavnet er det nye navnet som skal tildeles tabellen.
La oss for eksempel endre navnet på boktabellen til bøker:
ALTER TABLE Book RENAME TO Books;
Bruker pgAdmin
La oss nå se hvordan disse handlingene kan utføres ved hjelp av pgAdmin.
Legger til en ny kolonne
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
ALTER TABLE Book ADD author VARCHAR(50);
Trinn 4) Klikk på Utfør-knappen.
Trinn 5) For å sjekke om kolonnen ble lagt til, gjør følgende:
- Klikk på Databaser fra venstre navigering.
- Utvid Demo.
- Utvid skjemaer.
- Utvid offentlig.
- Utvid tabeller.
- Utvid boken.
- Utvid kolonner.
Kolonnen skulle ha blitt lagt til, som vist nedenfor:
Gi nytt navn til en tabellkolonne
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Trinn 4) Klikk på Utfør-knappen.
Trinn 5) For å sjekke om endringen var vellykket, gjør følgende:
- Klikk på Databaser fra venstre navigering.
- Utvid Demo.
- Utvid skjemaer.
- Utvid offentlig.
- Utvid tabeller.
- Utvid boken.
- 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 dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
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 i spørringsredigeringsprogrammet:
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 book_author-kolonnen:
Legge til en sjekkbegrensning
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Trinn 4) Klikk på Utfør-knappen.
Trinn 5) For å teste dette, gjør følgende:
- Skriv inn følgende spørring i spørringsredigeringsprogrammet:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Klikk på Utfør-knappen.
Det vil returnere følgende:
Gi nytt navn til en tabell
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
ALTER TABLE Book RENAME TO Books;
Trinn 4) Klikk på Utfør-knappen.
Trinn 5) For å sjekke om tabellen har fått nytt navn, gjør følgende:
- Klikk på Databaser fra venstre navigering.
- Utvid Demo.
- Utvid skjemaer.
- Utvid offentlig.
- Utvid tabeller.
Tabellen ble omdøpt.
Sammendrag
- ALTER TABLE-setningen brukes til å endre strukturen til tabellen.
- ALTER TABLE-kommandoen har forskjellige former avhengig av oppgaven du må utføre.
- Strukturen kan være tabellkolonnene eller selve tabellen.
- Vi kan bruke denne setningen til å endre navnet på en tabell.
- ALTER TABLE-kommandoen kan brukes til å angi standardverdien for en kolonne.
- Utsagnet kan brukes til å validere verdiene som legges inn i en tabellkolonne.
Last ned databasen som brukes i denne opplæringen