Die SQLite-Datenbank -Manager packt ein umfangreiches Feature in einer kleinen Software- Bibliothek - weniger als 350KB . Er erreicht diese Effizienz in Teil durch Kompromisse in die Datentypen , zum Beispiel unterstützt sie integer, Charakter und BLOB Felder aber nicht ENUM . Sie können rund um die ENUM Einschränkung zu umgehen und erreichen viel von der gleichen Funktionalität durch die Nutzung SQLite andere Merkmale und durch sorgfältige Anwendungsprogrammierung . ENUM Datentyp
Wenn Sie erstellen ein aufgezählt , oder ENUM -Datentyp definieren Sie eine Liste der zugelassenen Datenwerte . Zum Beispiel enthält eine Datentabelle von Filmbewertungen eine Reihe von Sternen , von null bis vier - kein Film bekommt eine zehn - Sterne , egal wie gut es ist , und keiner erhält eine negative Bewertung, egal wie schlimm es ist . Sie können einen ENUM für die Tabelle Sterne Feld verwenden , so dass es die Werte der Zahlen von null bis vier . Einige Programmiersprachen wie Java und SQL-Datenbank -Managern wie MySQL und Oracle sind die ENUM -Datentyp , aber es ist nicht ein Teil des SQL 92-Standard .
SQL Feld Constraints
< br >
Obwohl SQLite nicht bieten eine ENUM- Datentyp , können Sie eine Eigenschaft namens eine CHECK-Einschränkung auf ein Feld , wodurch es zu zwingen , um Werte aus einer begrenzten Liste zu übernehmen . Zum Beispiel, sagen Sie die Einrichtung eines staatlichen Bereich und möchten ihre Werte auf den Satz von zwei Zeichen US-Bundesstaat Abkürzungen beschränken. Wenn Sie die Tabelle in SQLite zu erstellen, legen Sie den Zustand Feld als Typ CHAR und fügen Sie dann eine CHECK-Einschränkung , die die 50 staatlichen Abkürzungen aufgelistet . SQLite unterstützt CHECK-Einschränkungen ab Version 3.3.0 , vor dieser Version , SQLite Zwänge analysiert, aber nicht durchsetzen können . Wenn Sie eine Einschränkung zu einer Tabelle hinzufügen , die bereits Daten , wird SQLite nicht überprüfen die vorhandenen Werte . Wenn ein Benutzer versucht, Werte in die Tabelle, die nicht in die Zwänge sind inklusive hinzufügen , generiert SQLite einen Fehler , die Blockierung der Transaktion.
SQL Statements
Als zusätzlichen Test, um sicherzustellen, dass die richtigen Daten-Tabellen Werte zu erhalten , erstellen Sie SQL SELECT-Anweisungen , die für diese Werte aussehen . Zum Beispiel sieht die folgende SELECT-Anweisung für Film- Bewertung Datensätze, die eine falsche Anzahl von Sternen haben :
SELECT COUNT ( *) FROM WHERE movie_ratings Sternen NOT IN ( 0,1,2,3,4 )
es gibt eine Null zählen , wenn es Aufzeichnungen findet mit Sterne-Bewertungen , die außerhalb des Bereichs von null bis vier . Mit Tests wie diese zu überprüfen, ob Tabellen richtigen Werte haben . Wenn Sie Datensätze mit falschen Daten zu finden , überprüfen Sie die CHECK-Einschränkungen für fehlende oder zusätzliche Werte .
Programmlogik
Neben SQL-Anweisungen , kann die Logik in Anwendungsprogrammen überprüfen Sie auch die Werte der Daten gehen in SQLite -Datenbanken. Zum Beispiel, wie Nutzer -Typ -Informationen in einem Dateneingabe -Maske , testet des Bildschirms Logik jeden Wert und zeigt eine Meldung an den Benutzer auffordert, falsche Daten zu beheben.