ENUM typer i SQLite

ENUM typer i SQLite


Den SQLite databasesystemet pakker med interne satt inn i en liten programvarebibliotek - mindre enn 350KB. Det oppnår denne effektiviteten blant annet gjennom kompromisser i sine datatyper; for eksempel støtter det heltall, karakter og BLOB felter, men ikke ENUM. Du kan omgå ENUM begrensning og oppnå mye av den samme funksjonaliteten ved å utnytte SQLite andre funksjoner og gjennom nøye programmerings.

ENUM Datatype

Når du oppretter en nummerert eller ENUM, datatype, definerer du en liste over godkjente dataverdier. For eksempel kan en datatabell av film karakterer omfatter en rekke stjerner, fra null til fire - ingen film får en ti-stjerner, uansett hvor bra det er, og ingen får en negativ vurdering, uansett hvor ille det er . Du kan bruke en ENUM for tabellen er stjerneklassifisering felt, gir det verdiene av heltall fra null til fire. Noen programmeringsspråk, inkludert Java og SQL database ledere som MySQL og Oracle inkluderer ENUM datatype, selv om det ikke er en del av SQL 92 standard.

SQL Felt Begrensninger

Selv SQLite ikke tilbyr en ENUM datatype, kan du legge til en egenskap kalt en kontrollbegrensning til et felt, og dermed tvinge den til å godta verdier fra en begrenset liste. For eksempel si at du setter opp en tilstand feltet og ønsker å begrense sine verdier til det sett av to-tegns amerikanske stats forkortelser. Når du oppretter tabellen i SQLite, sette deg opp staten feltet som en CHAR type og deretter legge til en kontrollbegrensning som viser de 50 statlige forkortelser. SQLite støtter kontrollbegrensninger som av versjon 3.3.0; før den versjonen, SQLite analyseres begrensninger, men ikke håndheve dem. Hvis du legger en begrensning i en tabell som allerede har data, ikke SQLite ikke sjekke de eksisterende verdiene. Hvis en bruker forsøker å legge til verdier i tabellen som ikke er inkludert i de begrensninger, genererer SQLite en feil, blokkerer transaksjonen.

SQL-setninger

Som en ekstra test for å sikre at datatabeller få de rette verdiene, lage SQL SELECT-setninger som ser for disse verdiene. For eksempel ser følgende SELECT-setningen for film vurdering poster som har feil antall stjerner:

SELECT COUNT (*) FROM movie_ratings der stjernene NOT IN (0,1,2,3,4)

Den returnerer en null teller hvis den finner poster som har karakterer som ligger utenfor området null til fire. Bruk tester som dette for å verifisere at tabellene har riktige verdier. Hvis du finner poster med feil, undersøke kontrollbegrensninger for manglende eller ekstra verdier.

program Logic

I tillegg til SQL-setninger, kan logikken i programmer også sjekke verdiene av data som går inn SQLite databaser. For eksempel, som brukerne skrive informasjon i en dataregistrering skjerm form, skjermens logikk tester hver verdi og viser en melding som ber brukeren om å fikse feil data.