I denne delen skal vi forstå hvordan PostgreSQL ADD COLUMN-kommandoen brukes til å legge til en eller flere kolonner til den gjeldende databasetabellen.
PostgreSQL ADD COLUMN kommando
Vi vil bruke endre tabell legg til kolonne, kommando for å legge til den nye kolonnen i en eksisterende tabell.
Syntaks
format streng java
Syntaksen til Endre legg til kolonne-kommando er gitt nedenfor:
ALTER TABLE table_name ADD COLUMN new_column_name data_type;
I syntaksen ovenfor har vi følgende parametere:
Parameter | Beskrivelse |
---|---|
Endre bord | Det er en klausul som brukes til å endre definisjonen av en tabell. |
Tabellnavn | Den brukes til å beskrive tabellnavnet der vi må legge til en ny kolonne etter ALTER TABLE-leddet. |
New_cloumn _name | Den brukes til å spesifisere kolonnenavnet med dets attributt som standardverdi, datatype og så videre, etter ADD COLUMN-betingelsen. |
Merk: Når vi legger til en ny kolonne i tabellen, forbedrer PostgreSQL den på slutten av tabellen fordi PostgreSQL ikke har noe annet valg for å definere den nye kolonnens plass i tabellen.
Legg til flere kolonner ved å bruke alter table-kommandoen
Syntaks å legge til flere kolonner ved å bruke kommandoen alter table:
ALTER TABLE table_name ADD COLUMN new_column_name_1 data_type constraint, ADD COLUMN new_column_name_2 data_type constraint, ::: ::: ADD COLUMN new_column_name_N data_type constraint;
Eksempler på PostgreSQL ADD COLUMN
For å få en bedre forståelse av å legge til kolonnene, vil vi følge prosessen nedenfor:
Først vil vi lage en ny tabell kalt som Personer med to kolonner Person_id og Fornavn ved hjelp av kommandoen nedenfor:
CREATE TABLE Persons ( Person_ID Serial primary key, Person_Name varchar not Null );
Produksjon
Etter å ha utført spørringen ovenfor, vil vi få meldingen nedenfor vindu , som sier at Personer tabellen er opprettet:
Etter det vil vi legge til Adresse kolonne til Personer tabell med kommandoen nedenfor:
ALTER TABLE Persons ADD COLUMN Address VARCHAR;
Produksjon
Etter å ha utført spørringen ovenfor, vil vi få meldingsvinduet nedenfor:
Og kommandoen nedenfor vil hjelpe oss å legge til By og telefon_nr kolonner til Personer bord:
ALTER TABLE Persons ADD COLUMN City VARCHAR, ADD COLUMN Phone_no VARCHAR;
Produksjon
Etter å ha utført spørringen ovenfor, vil vi få meldingsvinduet nedenfor:
Hvis vi ønsker å se Personer tabellstruktur i psql , vil vi bruke kommandoen nedenfor:
javatpoint=# d Persons
Utgangen av Personer tabellstruktur
Som vi kan se i bildet ovenfor, har vi adresse, by og telefonnummer kolonner lagt til på slutten av kolonnelisten i tabellen Personer.
Legge til en kolonne med NOT NULL-begrensningen
I dette vil vi legge til en kolonne med ikke null-begrensninger til en bestemt tabell som inneholder noen data.
For det første vil vi sette inn noen data i Personer tabell ved å bruke Insert-kommandoen:
INSERT INTO Persons (Person_name) VALUES ('John'), ('Emily'), ('Mike');
Produksjon
Vi kan se at de tre radene er satt inn i Personer tabellen i meldingsvinduet nedenfor.
La oss nå anta at vi ønsket å legge til E-post kolonne til Personer tabell, og for dette bruker vi følgende kommando:
ALTER TABLE Persons ADD COLUMN Email VARCHAR NOT NULL;
Produksjon
Når vi utfører kommandoen ovenfor, vil vi få en feilmelding som sier det
kolonne 'e-post' inneholder nullverdier
Feilen ovenfor har oppstått fordi E-post kolonnen inneholder IKKE NULL begrensning.
slå sammen sorter java
I PostgreSQL tar den nye kolonnen NULL verdi når du legger til kolonnene, noe som også forstyrrer IKKE NULL begrensning.
For å løse feilen ovenfor, må vi følge trinnene nedenfor:
Trinn 1
Først må vi legge til kolonnen uten IKKE NULL begrensning, og for dette vil vi bruke følgende kommando:
ALTER TABLE Persons ADD COLUMN Email VARCHAR;
Produksjon
Som vi kan se i meldingsvinduet nedenfor E-post kolonne har vært la til inn i det Personer bord:
Steg 2
Nå vil vi oppdatere verdiene for E-post-kolonnen.
UPDATE Persons SET Email = '[email protected]' WHERE Person_id = 1; UPDATE Persons SET Email = '[email protected]' WHERE Person_id = 2; UPDATE Persons SET Email = '[email protected]' WHERE Person_id = 3;
Produksjon
Som vi kan se i meldingsvinduet nedenfor E-post kolonneverdier har vært oppdatert inn i det Personer bord:
Hvis vi ønsker å sjekke at verdiene er oppdatert eller ikke i Personer tabellen, vil vi bruke Plukke ut kommando:
Select * From Persons;
Produksjon
Utdataene fra spørringen ovenfor er som nedenfor:
Trinn 3
Etter å ha oppdatert E-post-kolonneverdien, vil vi angi IKKE NULL begrensning for E-post kolonne inn i Personer tabell ved å bruke følgende kommando:
ALTER TABLE Persons ALTER COLUMN Email SET NOT NULL;
Produksjon
Etter å ha utført kommandoen ovenfor, får vi meldingsvinduet nedenfor: