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:
- INTEGER-tillhörighet tilldelas om den deklarerade typen innehåller strängen " INT ".
- 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.
- BLOB-affinitet tilldelas om kolumnen inte har specificerat någon typ eller om datatypen är en BLOB.
- VERKLIG affinitet tilldelas om typen innehåller en av följande strängar " DOUB ", " REAL eller" FLOAT ".
- 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.