SQLite Datentypen mit Beispiel: Int, Text, Numerisch, Real, Blob
Datentypen in SQLite unterscheiden sich von anderen Datenbankverwaltungssystemen. In SQLitekönnen Sie Datentypen normal deklarieren, aber Sie können trotzdem jeden Wert in jedem Datentyp speichern.
SQLite wird weniger getippt. Es gibt keine Datentypen. Sie können jeden beliebigen Datentyp in jeder Spalte speichern. Dies nennt man dynamische Typen.
Wenn Sie in statischen Typen wie in anderen Datenbankverwaltungssystemen eine Spalte mit einem Datentyp „Integer“ deklariert haben, können Sie nur Werte des Datentyps „Integer“ einfügen. Allerdings in dynamischen Typen wie in SQLite, der Typ der Spalte wird durch den eingefügten Wert bestimmt. Und dann SQLite speichert diesen Wert je nach Typ.
SQLite Speicherklassen
In SQLite Abhängig von der Art des Werts gibt es unterschiedliche Speichermethoden. Diese unterschiedlichen Speichermethoden werden in als Speicherklassen bezeichnet SQLite.
Die folgenden Speicherklassen sind verfügbar in SQLite:
- NULL – Diese Speicherklasse wird zum Speichern eines beliebigen NULL-Werts verwendet.
- GANZE ZAHL – Jeder numerische Wert wird als vorzeichenbehafteter Ganzzahlwert gespeichert (er kann sowohl positive als auch negative Ganzzahlwerte enthalten). Die INTEGER-Werte in SQLite werden abhängig vom Wert der Zahl entweder in 1, 2, 3, 4, 6 oder 8 Byte Speicher gespeichert.
- REAL – Diese Speicherklasse wird zum Speichern der Gleitkommawerte verwendet und sie werden in einem 8-Byte-Speicher gespeichert.
- TEXT – speichert Textzeichenfolgen. Es unterstützt auch verschiedene Codierungen wie UTF-8, UTF-16 BE oder UTF-26LE.
- BLOB – Wird zum Speichern großer Dateien wie Bilder oder Textdateien verwendet. Der Wert wird wie der Eingabewert als Byte-Array gespeichert.
SQLite Affinitätstyp
Typaffinität ist der empfohlene Datentyp, der in einer Spalte gespeichert wird. Sie können jedoch weiterhin beliebige Datentypen speichern. Diese Datentypen werden jedoch empfohlen und sind nicht erforderlich.
Diese Typen wurden eingeführt SQLite um die Kompatibilität zwischen zu maximieren SQLite und andere Datenbankverwaltungssystem.
Jede in einer deklarierte Spalte SQLite Der Datenbank wird abhängig vom deklarierten Datentyp eine Typaffinität zugewiesen. Hier der Aufschwung der Typverwandtschaften SQLite:
- TEXT.
- NUMERISCH.
- GANZE ZAHL.
- ECHT.
- KLECKS.
Hier ist wie SQLite bestimmt die Affinität der Spalte anhand ihres deklarierten Datentyps:
- Die INTEGER-Affinität wird zugewiesen, wenn der deklarierte Typ die enthält Schnur "INT".
- TEXT-Affinität wird zugewiesen, wenn die Spalte als Datentyp eine der folgenden Zeichenfolgen enthält:TEXT","VERKOHLEN, oder "CLOB„. Beispielsweise wird dem Typ VARCHAR die TEXT-Affinität zugewiesen.
- BLOB-Affinität wird zugewiesen, wenn für die Spalte kein Typ angegeben ist oder der Datentyp ein BLOB ist.
- REAL-Affinität wird zugewiesen, wenn der Typ eine der folgenden Zeichenfolgen enthält:DOUB","REAL, oder "FLOAT".
- Die Affinität NUMERIC wird jedem anderen Datentyp zugewiesen.
Auf der gleichen Seite befindet sich auch eine Tabelle mit einigen Beispielen für die Zuordnung zwischen SQLite Datentypen und ihre Affinitäten werden durch diese Regeln bestimmt:
Beispiele für das Speichern von Datentypen in SQLite
Nummer speichern mit SQLite ganze Zahl
Jede Spalte des Datentyps enthält das Wort „INT“, ihr wird eine Affinität vom Typ INTEGER zugewiesen. Es wird in einer INTEGER-Speicherklasse gespeichert.
Allen folgenden Datentypen wird die Typaffinität INTEGER zugewiesen:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
INTEGER-Typaffinität in SQLite kann jede zugewiesene Ganzzahl (positiv oder negativ) von 1 Byte bis maximal 8 Bytes enthalten.
Nummern speichern mit SQLite REAL
REAL-Zahlen sind Zahlen mit doppelter Gleitkommagenauigkeit. SQLite gespeicherte reelle Zahlen als 8-Byte-Array. Hier ist die Liste der Datentypen in SQLite die Sie zum Speichern von REAL-Zahlen verwenden können:
- ECHT.
- DOPPELT.
- DOPPELTE PRÄZISION.
- SCHWEBEN.
Speichern großer Datenmengen mit SQLite BLOB
Es gibt nur eine Möglichkeit, große Dateien in einem zu speichern SQLite Datenbank und verwendet den BLOB-Datentyp. Dieser Datentyp wird zum Speichern großer Dateien wie Bilder, Dateien (jeglichen Typs) usw. verwendet. Die Datei wird in ein Byte-Array konvertiert und dann in derselben Größe wie die Eingabedatei gespeichert.
Speicherung SQLite Booleans
SQLite verfügt über keine separate BOOLEAN-Speicherklasse. Die BOOLEAN-Werte werden jedoch als INTEGERS mit den Werten 0 (als falsch) oder 1 (als wahr) gespeichert.
Speicherung SQLite Daten und Uhrzeiten
Sie können Datum oder Uhrzeit angeben SQLite mithilfe eines der folgenden Datentypen:
- DATUM
- Datetime
- TIMESTAMP
- ZEIT-
Beachten Sie, dass es keine separate DATE- oder DATETIME-Speicherklasse gibt SQLite. Stattdessen werden alle mit einem der vorherigen Datentypen deklarierten Werte in einer Speicherklasse gespeichert, abhängig vom Datumsformat des eingefügten Werts, und zwar wie folgt:
- TEXT – wenn Sie den Datumswert im Format der ISO8601-Zeichenfolge („JJJJ-MM-TT HH:MM:SS.SSS“) eingegeben haben.
- REAL – wenn Sie den Datumswert in den julianischen Tageszahlen einsetzen, der Anzahl der Tage seit dem Mittag in Greenwich am 24. November 4714 v. Chr. Dann würde der Datumswert als REAL gespeichert.
- GANZE ZAHL as Unix Zeit, die Anzahl der Sekunden seit dem 1970 01:01:00 UTC.
Zusammenfassung
SQLite unterstützt eine breite Palette von Datentypen. Gleichzeitig ist es jedoch sehr flexibel hinsichtlich der Datentypen. Sie können jeden Werttyp in jeden Datentyp einfügen. SQLite führte im Gegensatz zu anderen Datenbankverwaltungssystemen auch einige neue Konzepte in Datentypen wie Typaffinität und Speicherklassen ein.