SQLite Datatyper med exempel: Int, Text, Numeric, Real, Blob

Data skrivs in SQLite skiljer sig från andra databashanteringssystem. I SQLite, kan du deklarera datatyper normalt, men du kan fortfarande lagra vilket värde som helst i vilken datatyp som helst.

SQLite skrivs mindre. Det finns inga datatyper, du kan lagra vilken typ av data du vill i vilken kolumn som helst. Detta kallas dynamiska typer.

I statiska typer, som i andra databashanteringssystem, om du deklarerade en kolumn med en datatyp heltal, kan du bara infoga värden av datatypen heltal. Men i dynamiska typer som i SQLite, bestäms typen av kolumn av det infogade värdet. Och då SQLite lagrar det värdet beroende på dess typ.

SQLite Förvaringsklasser

In SQLite det finns olika lagringsmetoder beroende på typ av värde, dessa olika lagringsmetoder kallas lagringsklasser i SQLite.

Följande är de lagringsklasser som finns tillgängliga i SQLite:

  • NULL – denna lagringsklass används för att lagra alla NULL-värden.
  • HELTAL – alla numeriska värden lagras som ett heltalsvärde med tecken (det kan innehålla både positiva och negativa heltalsvärden). INTEGER-värdena i SQLite lagras i antingen 1, 2, 3, 4, 6 eller 8 byte lagring beroende på värdet på numret.
  • VERKLIG – denna lagringsklass används för att lagra flyttalsvärden, och de lagras i ett 8-byte lagringsutrymme.
  • TEXT – lagrar textsträngar. Den stöder också olika kodningar som UTF-8, UTF-16 BE eller UTF-26LE.
  • KLICK – används för att lagra stora filer, som bilder eller textfiler. Värdet lagras som byte array på samma sätt som inmatningsvärdet.

SQLite Affinitetstyp

Typaffinitet är den rekommenderade typen av data som lagras i en kolumn. Du kan dock fortfarande lagra vilken typ av data du vill, dessa typer rekommenderas inte nödvändiga.

Dessa typer introducerades i SQLite för att maximera kompatibiliteten mellan SQLite och andra databashanteringssystem.

Varje kolumn som deklareras i en SQLite databasen tilldelas en typaffinitet beroende på den deklarerade datatypen. Här lyftet av typ affiniteter i SQLite:

  • TEXT.
  • NUMERISK.
  • HELTAL.
  • VERKLIG.
  • KLICK.

Här är hur SQLite bestämmer kolumns affinitet utifrån dess deklarerade datatyp:

  1. INTEGER-affinitet tilldelas om den deklarerade typen innehåller sträng "INT".
  2. TEXT-affinitet tilldelas, om kolumnen innehåller på sin datatyp en av följande strängar "TEXT","RÖDING, eller "CLOB". Till exempel kommer typen VARCHAR att tilldelas TEXT-affiniteten.
  3. BLOB-affinitet tilldelas om kolumnen inte har någon typ angiven eller om datatypen är en BLOB.
  4. VERKLIG affinitet tilldelas om typen innehåller en av följande strängar "DUBBLA","VERKLIG, eller "FLOTTÖR".
  5. NUMERISK affinitet tilldelas för alla andra datatyper.

Det finns också en tabell på samma sida som visar några exempel för mappningen mellan SQLite datatyper och deras affinitet bestäms av dessa regler:

SQLite Affinitetstyp
Kartläggning mellan SQLite datatyper och affiniteter

Exempel på att lagra datatyper i SQLite

Lagrar nummer med SQLite heltal

Varje kolumn av datatyp innehåller ordet "INT", kommer det att tilldelas en INTEGER-typ affinitet. Den kommer att lagras i en INTEGER-lagringsklass.

Alla följande datatyper tilldelas som en INTEGER-typaffinitet:

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUM INT.

INTEGER typ affinitet i SQLite kan innehålla valfritt tilldelat heltal (positivt eller negativt) från 1 byte till maximalt 8 byte.

Lagra nummer med SQLite VERKLIG

RIKTIGA siffror är numret med dubbel flyttalsprecision. SQLite lagrade reella tal som 8 bytes array. Här är listan över datatyper i SQLite som du kan använda för att lagra VERKLIGA nummer:

  • VERKLIG.
  • DUBBEL.
  • DUBBEL PRECISION.
  • FLYTA.

Lagra stora data med SQLite KLICK

Det finns bara ett sätt att lagra stora filer i en SQLite databas, och den använder datatypen BLOB. Denna datatyp används för att lagra stora filer som bilder, filer (från vilken typ som helst), etc. Filen konverteras till byte-array och lagras sedan i samma storlek som indatafilen.

lagring SQLite Booleans

SQLite har inte en separat BOOLEAN lagringsklass. Däremot lagras BOOLEAN-värdena som INTEGERS med värdena 0 (som falskt) eller 1 (som sant).

lagring SQLite datum och tider

Du kan deklarera datum eller datum tider i SQLite använder någon av följande datatyper:

  • DATUM
  • Datum Tid
  • TIDSSTÄMPEL
  • TID

Observera att det inte finns någon separat lagringsklass för DATE eller DATETIME i SQLite. Istället lagras alla värden som deklarerats med en av de tidigare datatyperna i en lagringsklass beroende på datumformatet för det infogade värdet enligt följande:

  • TEXT – om du infogade datumvärdet i formatet ISO8601-strängen ("ÅÅÅÅ-MM-DD HH:MM:SS.SSS").
  • VERKLIG – om du infogade datumvärdet i de julianska dagtalen, antalet dagar sedan middagstid i Greenwich den 24 november 4714 f.Kr. Då skulle datumvärdet lagras som RIKTIGT.
  • HELTAL as Unix Tid, antalet sekunder sedan 1970-01-01 00:00:00 UTC.

Sammanfattning

SQLite stöder ett brett utbud av datatyper. Men samtidigt är det väldigt flexibelt när det gäller datatyper. Du kan lägga vilken värdetyp som helst i vilken datatyp som helst. SQLite introducerade också några nya koncept i datatyper som typaffinitet och lagringsklasser, till skillnad från andra databashanteringssystem.