PostgreSQL oppregnet datatype

PostgreSQL oppregnet datatype

Den oppregnet eller enum datatypen brukes til å velge en verdi fra listen over flere verdier. Den spesielle verdien vil bli valgt fra rullegardinlisten for enum-datatypen. Enumverdiene er statiske, unike og saksfølsomme. Så brukerne må velge hvilken som helst verdi fra enumverdiene. Inngangsverdien som ikke stemmer med noen enumverdi, kan ikke settes inn i enumfeltet. Denne datatypen tar 4 byte å lagre i tabellen. Enum -datatypen er nyttig for lagring av disse typer data som ikke er pålagt å endre seg i fremtiden. Det hjelper bare å sette inn gyldige data. Bruken av enum datatype i PostgreSQL er vist i denne opplæringen.

Forutsetninger:

Du må installere den nyeste versjonen av PostgreSQL -pakker på Linux -operativsystemet før du utfører SQL -uttalelsene som vises i denne opplæringen. Kjør følgende kommandoer for å installere og starte PostgreSQL:

$ sudo apt-get -y installer postgreSql postgreSql-contrib
$ sudo SystemCTL Start PostgreSql.service

Kjør følgende kommando for å logge inn på PostgreSQL med rottillatelse:

$ sudo -u postgres psql

Bruk av enum datatype:

Før du oppretter en tabell med den boolske datatypen, må du opprette en PostgreSQL -database. Så kjør følgende kommando for å opprette en database som heter 'Testdb':

# Opprett databasetestdb;

Følgende utdata vises etter å ha opprettet databasen:

Lag og les Enum -typen:

Kjør følgende Opprett kommando for å opprette en enum -type som heter Account_Status med tre verdier:

# Opprett type Account_Status som enum ('Venter', 'inaktiv', 'aktiv');

Kjør følgende velger kommando for å skrive ut verdiene av enumtype som er opprettet før:

# Velg Unnest (ENUM_RANGE (NULL :: ACCOME_STATUS)) som Account_Status;

Følgende utgang vises etter å ha utført ovennevnte kommandoer:

Gi nytt navn til Enum -typen:

Kjør følgende kommando for å endre navnet på Enum -typen fra 'Account_status' til 'status':

# Endre type konto_status gi nytt navn til status;

Lag en tabell ved hjelp av enum -datatypen:

Lag en tabell som heter 'regnskap'I den nåværende databasen med tre felt. Det første feltnavnet er Brukernavn det er den primære nøkkelen til. Det andre feltnavnet er Navn Og datatypen er Varchar (30). Det tredje feltnavnet er adresse Og datatypen er TEKST. Det fjerde feltnavnet er e -post Og datatypen er Varchar (50). Det femte feltnavnet er a_status Og datatypen er Enum som har blitt opprettet tidligere.

# Opprett tabellkonto (
Brukernavn varchar (20) primærnøkkel,
Navn varchar (30),
Adresse tekst,
E -post varchar (50),
a_status status);

Følgende utgang vises etter å ha utført kommandoen ovenfor:

Sett inn data i tabellen:

Kjør følgende sett inn spørring for å sette inn tre poster i kontetabellen. Alle verdiene for enumfeltet er gyldige her:

# Sett inn i betraktning (brukernavn, navn, adresse, e -post, a_status)
Verdier
('Farhad1278', 'Farhad Hossain', '123/7, Dhanmondi Dhaka.',' [email protected] ',' aktiv '),
('Nira8956', 'Nira Akter', '10/A, Jigatola Dhaka.',' [email protected] ',' inaktiv '),
('Jafar90', 'Jafar Iqbal', '564, Mirpur Dhaka.',' [email protected] ',' Venter ');

Følgende utgang vises etter utførelse av spørringen ovenfor:

Kjør følgende sett inn spørring for å sette inn en post i regnskap Tabell, men verdien gitt for enumfeltet eksisterer ikke i enum -typen:

# Sett inn i betraktning (brukernavn, navn, adresse, e -post, a_status)
Verdier
('Rifad76', 'Rifad Hasan', '89, Gabtoli Dhaka.',' [email protected] ',' blokkert ');

Følgende utdata vises etter utførelsen av spørringen ovenfor. Feilen har oppstått i utgangen for å gi en enumverdi som ikke eksisterer i enum -typen.

Kjør følgende velger kommando for å lese alle poster fra regnskap bord:

# Velg * fra konto;

Kjør følgende valgkommando for å lese disse postene til regnskap Tabell som inneholder 'Aktiv' eller 'i påvente' Verdi i enumfeltet:

# Velg * fra konto der a_status = 'aktiv' eller a_status = 'i påvente';

Følgende utgang vises etter å ha utført ovennevnte PLUKKE UT spørsmål:

Endre enumverdien:

Hvis noen eksisterende verdi av Enum -typen endres, så er Enum feltverdien på tabellen der det Enum har blitt brukt vil også bli endret.

Kjør følgende ENDRE kommando for å endre Enum verdi 'Aktiv' til 'online':

# Alter type status gi nytt navn til verdien 'aktiv' til 'online';

Kjør følgende velger kommando for å sjekke postene til regnskap Tabell etter å ha endret enumverdien:

# Velg * fra konto;

Følgende utgang vises etter å ha utført kommandoene ovenfor. Det var en post i tabellen som inneholder enumverdien, 'Aktiv'. Utgangen viser at den 'aktive' verdien er endret til 'online' etter å ha endret enumverdien.

Legg til ny verdi til en eksisterende enum datatype:

Kjør følgende alter -kommando for å legge til et nytt element i enumtypen som er navngitt status:

# Alter type status legge til verdi 'blokkert';

Kjør følgende velger spørring som vil skrive ut listen over enumtyper etter å ha lagt til den nye verdien:

# Velg Unnest (ENUM_RANGE (NULL :: Status)) som Account_Status;

Følgende utgang vises etter utførelse av spørringen ovenfor:

En ny verdi kan settes inn før eller etter den spesielle verdien av en eksisterende Enum type. Kjør den første Alter -kommandoen for å legge til den nye verdien, 'Blokkert' før verdien 'inaktiv'. Kjør den andre ENDRE kommando for å legge til den nye verdien, 'Blokkert' etter verdien 'inaktiv'.

# Alter type status legge til verdi 'blokkert' før 'inaktiv';
# Alter type status legge til verdi 'blokkert' etter 'inaktiv';

Slett enum datatype:

Du må slette tabellen der Enum -typen brukes før du fjerner Enum -typen. Kjør følgende kommando for å fjerne tabellen:

# Drop tabellkonto;

Kjør følgende kommando for å fjerne enumtypen etter å ha fjernet bordet:

# Drop Type Status;

Konklusjon:

Måtene å opprette, oppdatere og slette enum datatyper i PostgreSQL og bruken av enum datatyper i PostgreSQL -tabellen har blitt vist i denne opplæringen som vil hjelpe de nye PostgreSQL -brukerne til å vite formålet med å bruke enum datatyper riktig.