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:

  1. Die INTEGER-Affinitรคt wird zugewiesen, wenn der deklarierte Typ die enthรคlt Schnur "INT".
  2. 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.
  3. BLOB-Affinitรคt wird zugewiesen, wenn fรผr die Spalte kein Typ angegeben ist oder der Datentyp ein BLOB ist.
  4. REAL-Affinitรคt wird zugewiesen, wenn der Typ eine der folgenden Zeichenfolgen enthรคlt:DOUBโ€“REAL, oder "FLOAT".
  5. 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:

SQLite Affinitรคtstyp
Zuordnung zwischen SQLite Datentypen und Affinitรคten

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.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: