SQLite-datatyper med exempel

Innehållsförteckning:

Anonim

Datatyper i SQLite är olika jämfört med andra databashanteringssystem. I SQLite kan du deklarera datatyper normalt, men du kan fortfarande lagra vilket värde som helst i vilken datatyp som helst.

I den här handledningen lär du dig-

  • Lagringsklasser
  • Affinitetstyp
  • Exempel på lagring av datatyper i SQLite

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, kan du bara infoga värden för datatypens heltal om du förklarade en kolumn med ett datatyps heltal. I dynamiska typer som i SQLite bestäms emellertid typen av kolumn av det infogade värdet. Och sedan lagrar SQLite det värdet beroende på typ.

SQLite-lagringsklasser

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

Följande är lagringsklasserna tillgängliga i SQLite:

  • NULL - den här lagringsklassen används för att lagra valfritt NULL-värde.
  • INTEGER - valfritt numeriskt värde lagras som ett signerat heltal (det kan innehålla både positiva och negativa heltal). INTEGER-värdena i SQLite lagras i antingen 1, 2, 3, 4, 6 eller 8 byte lagring beroende på värdet på numret.
  • REAL - den här lagringsklassen används för att lagra flytpunktsvärdena och de lagras i en 8-bitars lagring.
  • TEXT - lagrar textsträngar. Den stöder också olika kodningar som UTF-8, UTF-16 BE eller UTF-26LE.
  • BLOB - används för att lagra stora filer, som bilder eller textfiler. Värdet lagras som byte-array samma som ingångsvä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 krävs.

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

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

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

Så här bestämmer SQLite kolumnens affinitet från dess deklarerade datatyp:

  1. INTEGER-tillhörighet tilldelas om den deklarerade typen innehåller strängen " INT ".
  2. TEXT-affinitet tilldelas om kolumnen innehåller en av följande strängar " TEXT ", " CHAR eller" CLOB "på dess datatyp . Till exempel tilldelas typen VARCHAR TEXT-affinitet.
  3. BLOB-affinitet tilldelas om kolumnen inte har specificerat någon typ eller om datatypen är en BLOB.
  4. VERKLIG affinitet tilldelas om typen innehåller en av följande strängar " DOUB ", " REAL eller" FLOAT ".
  5. NUMERISK tillhörighet tilldelas för alla andra datatyper.

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

Exempel på lagring av datatyper i SQLite:

Lagring av nummer med SQLite-heltal:

Varje kolumn med datatyp innehåller "INT" -ordet, det tilldelas en INTEGER-typaffinitet. 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-typaffinitet i SQLite kan innehålla vilket som helst tilldelat heltal (positivt eller negativt) från 1 byte till maximalt 8 byte.

Lagra nummer med SQLite REAL:

REAL-siffror är siffran med precision med dubbla flytpunkter. SQLite lagrade verkliga nummer som 8 bytes array. Här är listan över datatyper i SQLite som du kan använda för att lagra REAL-nummer:

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

Lagra stora data med SQLite BLOB:

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

Lagring av SQLite Booleans:

SQLite har ingen separat BOOLEAN-lagringsklass. BOOLEAN-värdena lagras dock som INTEGERS med värdena 0 (som falska) eller 1 (som sanna).

Lagring av SQLite-datum och tider:

Du kan deklarera datum eller datum i SQLite med hjälp av någon av följande datatyper:

  • DATUM
  • DATUM TID
  • TIDSSTÄMPEL
  • TID

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

  • TEXT - om du har lagt in datumvärdet i formatet för ISO8601-strängen ("ÅÅÅÅ-MM-DD HH: MM: SS.SSS").
  • REAL - om du infogade datumvärdet i julianska dagnummer, antalet dagar sedan klockan 12 i Greenwich den 24 november 4714 f.Kr. Då sparades datumvärdet som REAL.
  • INTEGER som Unix Time, antalet sekunder sedan 1970-01-01 00:00:00 UTC.

Sammanfattning:

SQLite stöder ett brett spektrum av datatyper. Men samtidigt är det mycket flexibelt när det gäller datatyper. Du kan placera vilken typ av värde 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.