Syntaks:
Syntaksen til enum -datatypen er gitt nedenfor.
Lag tabell tabell_navn (Maksimum 65 535 verdier kan defineres som enumverdier.
Enum attributter:
Enum datatype har tre attributter. Disse er beskrevet nedenfor.
MISLIGHOLDE
Standardverdien for enum -datatypen er null. Hvis det ikke er gitt noen verdi for enumfeltet, vil nullverdien bli satt inn.
NULL
Det fungerer på samme måte som standardverdien hvis denne attributtet er satt til enumfeltet.
IKKE NULL
En advarselsmelding vil vises hvis denne attributtet er satt for enumfeltet og ingen verdi er gitt på innsettingstidspunktet.
Kontroller bruken av enum datatype:
Du må opprette en tabell med enum datatype i en MySQL -database for å sjekke bruken av enum datatype. Åpne terminalen og koble til MySQL -serveren ved å utføre følgende kommando.
$ sudo mysql -u root
Kjør følgende kommando for å opprette en database som heter test_db.
Opprette databasetest_db;Kjør følgende kommando for å velge databasen.
Bruk test_db;Kjør følgende spørsmål for å opprette en tabell som heter Bok med fem felt. Datatypen til type Feltet til denne tabellen er en enum som vil lagre en av tre verdier (ingeniørfag, medisinsk og virksomhet).
Lag tabellbok (Kjør følgende kommando for å sjekke strukturen til Bok bord.
Beskrive bok;Produksjon:
Følgende utgang vises etter å ha utført kommandoen ovenfor.
Sett inn gyldige data i tabellen:
Kjør følgende sett inn spørring for å sette inn tre poster i Bok bord. "Engineering," medisinsk "og" virksomhet "-verdier har blitt brukt til tabellens enumfelt, som er gyldige enumverdier. Så spørringen vil bli utført uten feil.
Sett inn 'bok' ('id', 'navn', 'type', 'forfatter', 'pris') verdierLes data fra tabellen:
Etter å ha utført Sett inn spørringen, kjører du følgende velg -spørring for å sjekke innholdet i Bok bord.
Velg * fra 'bok';Produksjon:
Følgende utgang vises etter å ha utført kommandoen ovenfor.
Sett inn ugyldige data i tabellen:
Sett inn spørringen vil generere en feil hvis verdien som ikke eksisterer i enumlisten, vil bli prøvd å sette inn. I den følgende innsatsspørsmålet er 'BBA' -verdien satt for Enum -feltet (Type), men den samsvarer ikke med noen av Enum -elementene som er definert på tidspunktet for opprettelse av tabellen. Så følgende innsettingsspørsmål vil generere en feil etter utførelsen.
Sett inn 'bok' ('id', 'navn', 'type', 'forfatter', 'pris') verdierProduksjon:
Følgende utgang vises etter å ha utført kommandoen ovenfor. Her, feil nei 1265 har blitt generert, og ingen ny post vil bli satt inn.
Filtredata fra tabellen basert på numerisk enumverdi:
Strengverdien brukes på tidspunktet for å sette inn data i tabellens enumfelt, men de innsatte postene til tabellen kan hentes basert på den numeriske indeksen eller strengverdien til enumfeltet. Bruken av den numeriske indeksen for enumverdi for å filtrere dataene fra Bok Tabellen er vist i følgende valgte spørring. Den numeriske indeksen 2 i enumfeltet inneholder verdien, 'medisinsk.'Så postene som inneholder verdien 'Medisinsk' i typen felt av Bok Tabellen vises i utgangen. Det er bare en post i tabellen som samsvarer med kriteriene.
Velg ID, navn, type, forfatter, pris fra boken der type = 2;Produksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor.
Filtredata fra tabellen basert på menneskelig lesbar enumverdi:
Det er ikke lettere å huske den numeriske indeksen for hver enumelementverdi hvis enumfeltet inneholder en liste over et stort antall elementer. I dette tilfellet er det bedre å bruke strengverdien til Enum -elementet i spørringen for å hente postene basert på enumfeltets verdi. Følgende Select Query vil filtrere postene der typefeltet inneholder verdien, 'virksomhet.I følge boktabelldataene er det bare en samsvarende post med type Verdi, 'virksomhet.'
Velg ID, navn, type, forfatter, pris fra boken hvor type = 'virksomhet';Produksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor.
Konklusjon:
Enum er en gunstig datatype av mysql. Innføring av ugyldige data kan forhindres ved å bruke denne datatypen. Måten å erklære og sette inn data i enumfeltet og måten å hente data basert på enumfeltet er vist i denne opplæringen ved å bruke eksempler på.