SQLite Datentypen: Int, Text, Numeric, Real, Blob
⚡ Intelligente Zusammenfassung
SQLite Datentypen funktionieren anders als in anderen Datenbanken, weil SQLite verwendet dynamische TypenpingDabei wird jeder Wert in jeder Spalte gespeichert. Speicherklassen, Typaffinität und deklarierte Typnamen bestimmen gemeinsam, wie jeder Wert physisch auf der Festplatte gespeichert wird.

Die folgenden Abschnitte erklären, wie SQLite Behandelt Datentypen, beginnend mit den fünf Speicherklassen, dann Typaffinität und ihren Zuweisungsregeln und schließlich durchgerechnete Beispiele zum Speichern von ganzen Zahlen, reellen Zahlen, BLOBs, Booleans und Datumsangaben.
Datentypen in SQLite unterscheiden sich von denen anderer Datenbankverwaltungssysteme. SQLiteSie können Datentypen wie gewohnt deklarieren, aber Sie können trotzdem jeden beliebigen Wert in jedem beliebigen Datentyp speichern.
SQLite ist typenlos. Es gibt keine festen Datentypen; Sie können beliebige Datentypen in beliebigen Spalten speichern. Dies wird als dynamischer Typ bezeichnet.ping.
Bei statischen Datentypen, wie in anderen Datenbankmanagementsystemen, können Sie, wenn Sie eine Spalte mit dem Datentyp Integer deklarieren, nur Werte vom Datentyp Integer einfügen. Bei dynamischen Datentypen hingegen, wie in anderen Datenbankmanagementsystemen, können Sie dies tun. SQLiteDer Spaltentyp wird durch den eingegebenen Wert bestimmt, und dann SQLite speichert diesen Wert je nach Typ.
SQLite Speicherklassen
In SQLite Es gibt unterschiedliche Speichermethoden, abhängig vom Datentyp; diese unterschiedlichen Speichermethoden werden in 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 Integerwert gespeichert (er kann sowohl positive als auch negative Integerwerte aufnehmen). 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 dient zum Speichern der Gleitkommawerte und belegt einen Speicherplatz von 8 Bytes.
- TEXT – Speichert Textzeichenfolgen. Es unterstützt außerdem verschiedene Kodierungen wie UTF-8, UTF-16BE oder UTF-16LE.
- BLOB – Wird zum Speichern großer Dateien wie Bilder oder Textdateien verwendet. Der Wert wird als Byte-Array gespeichert, genau wie der Eingabewert.
SQLite Affinitätstyp
Die Datentypzugehörigkeit ist der empfohlene Datentyp für die Speicherung in einer Spalte. Sie können jedoch weiterhin beliebige Datentypen speichern; diese Typen sind lediglich Empfehlungen, nicht zwingend erforderlich.
Diese Typen wurden eingeführt SQLite um die Kompatibilität zwischen zu maximieren SQLite und andere Datenbankverwaltungssystems.
Jede in einer deklarierte Spalte SQLite Einer Datenbank wird abhängig von ihrem deklarierten Datentyp eine Typaffinität zugewiesen. Hier ist die Liste der Typaffinitäten in SQLite:
- TEXT.
- NUMERISCH.
- GANZE ZAHL.
- ECHT.
- KLECKS.
Hier ist, wie SQLite Bestimmt die Datenaffinität einer Spalte anhand ihres deklarierten Datentyps:
- Die INTEGER-Affinität wird zugewiesen, wenn der deklarierte Typ die enthält Schnur „INT“.
- Die Datentyp-Affinität TEXT wird zugewiesen, wenn die Spalte in ihrem Datentyp eine der folgenden Zeichenfolgen enthält: „TEXT“, „CHAR“ oder „CLOB“. Beispielsweise wird dem Datentyp VARCHAR die Datentyp-Affinität TEXT zugewiesen.
- BLOB-Affinität wird zugewiesen, wenn für die Spalte kein Typ angegeben ist oder der Datentyp ein BLOB ist.
- Die Affinität REAL wird zugewiesen, wenn der Typ eine der folgenden Zeichenketten enthält: „DOUB“, „REAL“ oder „FLOAT“.
- Die Affinität NUMERIC wird jedem anderen Datentyp zugewiesen.
Weiter unten befindet sich außerdem eine Tabelle mit einigen Beispielen der Karte.ping zwischen SQLite Datentypen und ihre Affinitäten werden durch diese Regeln bestimmt:
Beispiele für das Speichern von Datentypen in SQLite
Nummern speichern mit SQLite GANZE ZAHL
Wenn eine Spalte einen Datentyp aufweist, der das Wort „INT“ enthält, wird ihr die Datentyp-Affinität INTEGER zugewiesen. Sie wird in einer INTEGER-Speicherklasse gespeichert.
Allen folgenden Datentypen ist die Typaffinität INTEGER zugewiesen:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUMINT.
INTEGER-Typaffinität in SQLite kann jede zugewiesene ganze Zahl (positiv oder negativ) von 1 Byte bis maximal 8 Byte speichern.
Nummern speichern mit SQLite REAL
REELLE Zahlen sind Zahlen mit doppelter Gleitkomma-Genauigkeit. SQLite Speichert 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 SQLite Die Datenbank verwendet den BLOB-Datentyp. Dieser Datentyp dient zum Speichern großer Dateien wie Bilder oder Dateien beliebigen Typs. Die Datei wird in ein Byte-Array umgewandelt und anschließend in der gleichen Größe wie die Eingabedatei gespeichert.
Speicherung SQLite Booleans
SQLite verfügt nicht über eine separate BOOLEAN-Speicherklasse. Stattdessen werden BOOLEAN-Werte als INTEGERS gespeichert, wobei 0 für „falsch“ und 1 für „wahr“ steht.
Speicherung SQLite Daten und Uhrzeiten
Sie können Datumsangaben oder Datums- und Uhrzeitangaben in SQLite mithilfe eines der folgenden Datentypen:
- DATUM
- Datetime
- TIMESTAMP
- ZEIT-
Beachten Sie, dass es keine separate Speicherklasse für DATE oder DATETIME gibt. SQLiteStattdessen werden alle Werte, die mit einem der vorherigen Datentypen deklariert wurden, in einer Speicherklasse gespeichert, die vom Datumsformat des eingefügten Werts abhängt, und zwar wie folgt:
- TEXT – wenn Sie den Datumswert im Format einer ISO8601-Zeichenfolge einfügen („YYYY-MM-DD HH:MM:SS.SSS“).
- REAL – Wenn Sie den Datumswert als Julianische Tageszahl eingeben, also die Anzahl der Tage seit Mittag in Greenwich am 24. November 4714 v. Chr., wird der Datumswert dann als REAL gespeichert.
- GANZE ZAHL - wie Unix Zeit, die Anzahl der Sekunden seit dem 1970 01:01:00 UTC.

