I dette afsnit skal vi forstå, hvordan PostgreSQL ADD COLUMN-kommandoen bruges til at tilføje en eller flere kolonner til den aktuelle databasetabel.
PostgreSQL ADD COLUMN kommando
Vi vil bruge ændre tabel tilføj kolonne, kommando til at tilføje den nye kolonne til en eksisterende tabel.
Syntaks
format streng java
Syntaksen for Skift tilføj kolonnekommando er givet nedenfor:
ALTER TABLE table_name ADD COLUMN new_column_name data_type;
I ovenstående syntaks har vi følgende parametre:
Parameter | Beskrivelse |
---|---|
Skift bord | Det er en klausul, som bruges til at ændre definitionen af en tabel. |
Tabel_navn | Det bruges til at beskrive tabelnavnet, hvor vi skal tilføje en ny kolonne efter ALTER TABLE-sætningen. |
New_cloumn _name | Det bruges til at angive kolonnenavnet med dets attribut som standardværdi, datatype og så videre, efter ADD COLUMN-betingelsen. |
Bemærk: Når vi tilføjer en ny kolonne til tabellen, forbedrer PostgreSQL den i slutningen af tabellen, fordi PostgreSQL ikke har noget andet valg til at definere den nye kolonnes plads i tabellen.
Tilføj flere kolonner ved hjælp af kommandoen alter table
Syntaks at tilføje de flere kolonner ved at bruge 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 at få en bedre forståelse af at tilføje kolonnerne, vil vi følge nedenstående proces:
Først vil vi oprette en ny tabel med navnet som Personer med to søjler Person_id og Fornavn ved hjælp af nedenstående kommando:
CREATE TABLE Persons ( Person_ID Serial primary key, Person_Name varchar not Null );
Produktion
Efter at have udført ovenstående forespørgsel, vil vi få nedenstående meddelelse vindue , som siger, at Personer tabel er oprettet:
Derefter tilføjer vi Adresse kolonne til Personer tabel med nedenstående kommandos hjælp:
ALTER TABLE Persons ADD COLUMN Address VARCHAR;
Produktion
Efter at have udført ovenstående forespørgsel, får vi nedenstående meddelelsesvindue:
Og kommandoen nedenfor hjælper os med at tilføje By og telefon_nr kolonner til Personer bord:
ALTER TABLE Persons ADD COLUMN City VARCHAR, ADD COLUMN Phone_no VARCHAR;
Produktion
Efter at have udført ovenstående forespørgsel, får vi nedenstående meddelelsesvindue:
Hvis vi vil se Personer tabelstruktur i psql , vil vi bruge nedenstående kommando:
javatpoint=# d Persons
Udgangen af Personer tabelstruktur
Som vi kan se på billedet ovenfor, har vi adresse, by og telefonnr kolonner tilføjet i slutningen af kolonnelisten i tabellen Personer.
Tilføjelse af en kolonne med NOT NULL-begrænsningen
I dette vil vi tilføje en kolonne med ikke null-begrænsninger til en bestemt tabel, der indeholder nogle data.
For det første vil vi indsætte nogle data i Personer tabel ved at bruge kommandoen Indsæt:
INSERT INTO Persons (Person_name) VALUES ('John'), ('Emily'), ('Mike');
Produktion
Vi kan se, at de tre rækker er blevet indsat i Personer tabel i nedenstående meddelelsesvindue.
Lad os nu antage, at vi ønskede at tilføje E-mail kolonne til Personer tabel, og til dette bruger vi følgende kommando:
ALTER TABLE Persons ADD COLUMN Email VARCHAR NOT NULL;
Produktion
Når vi udfører ovenstående kommando, får vi en fejl, som siger det
kolonne 'e-mail' indeholder null-værdier
Ovenstående fejl er opstået, fordi E-mail kolonnen indeholder IKKE NULL begrænsning.
flette sort java
I PostgreSQL tager den nye kolonne NUL værdi, når du tilføjer kolonnerne, hvilket også forstyrrer IKKE NULL begrænsning.
For at løse ovenstående fejl skal vi følge nedenstående trin:
Trin 1
For det første skal vi tilføje kolonnen uden IKKE NULL begrænsning, og til dette vil vi bruge følgende kommando:
ALTER TABLE Persons ADD COLUMN Email VARCHAR;
Produktion
Som vi kan se i nedenstående meddelelsesvindue, at E-mail kolonne har været tilføjet ind i Personer bord:
Trin 2
Nu vil vi opdatere værdierne for kolonnen E-mail.
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;
Produktion
Som vi kan se i nedenstående meddelelsesvindue, at E-mail kolonneværdier har været opdateret ind i Personer bord:
Hvis vi vil kontrollere, at værdierne er opdateret eller ej i Personer tabel, vil vi bruge Vælg kommando:
Select * From Persons;
Produktion
Outputtet af ovenstående forespørgsel er som nedenfor:
Trin 3
Efter opdatering af E-mail-kolonnens værdi, indstiller vi IKKE NULL begrænsning for E-mail kolonne ind i Personer tabel ved at bruge følgende kommando:
ALTER TABLE Persons ALTER COLUMN Email SET NOT NULL;
Produktion
Efter at have udført ovenstående kommando, får vi nedenstående meddelelsesvindue: