The SQLite database manager pakker en omfattende funksjon satt inn i en liten programvare bibliotek - 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 øvrige funksjoner og gjennom forsiktig programmeringsgrensesnitt . ENUM Datatype
Når du oppretter en nummerert eller ENUM , datatype , definerer du en liste over godkjente data verdier . For eksempel inkluderer en datatabell av film rangeringer 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 tabellens stjerners rating feltet , 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-standarden .
SQL Felt Begrensninger
Selv SQLite ikke tilbyr en ENUM datatype , kan du legge en eiendom kalt en sjekk begrensning til et felt , og dermed tvinge den til å akseptere verdier fra en begrenset liste . For eksempel si at du setter opp en stat feltet og ønsker å begrense sine verdier til det settet med to-tegns amerikanske delstaten forkortelser. Når du oppretter tabellen i SQLite , sette deg opp staten feltet som en CHAR type og deretter legge en sjekk begrensning som viser de 50 statlige forkortelser. SQLite støtter sjekk begrensninger som av versjon 3.3.0 , før den versjonen , SQLite analyseres begrensninger , men ikke håndheve dem . Hvis du legger en begrensning til en tabell som allerede har data , betyr SQLite ikke sjekke de eksisterende verdier. Hvis en bruker forsøker å legge til verdier i tabellen som ikke er inkludert i begrensninger, genererer SQLite en feil , blokkerer transaksjonen .
SQL-setninger
< p > som en ekstra test for å sikre at data tabeller får de rette verdiene , create SQL SELECT-setninger som ser for disse verdiene . For eksempel ser følgende SELECT-setningen for film vurdering postene som har et feil antall stjerner : en
SELECT COUNT ( * ) FROM movie_ratings HVOR stjerner NOT IN ( 0,1,2,3,4 )
den returnerer en null teller hvis den finner poster som har stjernegraderinger liggende utenfor området null til fire. Bruk tester som dette for å verifisere at bordene har riktige verdier . Hvis du finner poster med informasjon som er feil , undersøke kontrollbegrensninger for manglende eller ekstra verdier .
Program Logic
I tillegg til SQL-setninger , logikken i programmer kan også sjekke verdiene av data som går inn i SQLite databaser. For eksempel som brukere skriver informasjon til en dataregistrering skjermen form, tester skjermens logikk hver verdi og viser en melding som ber brukeren om å fikse feil .