SQLite Datatyper: Heltal, Text, Numerisk, Real, Blob
โก Smart sammanfattning
SQLite Datatyper fungerar annorlunda รคn andra databaser eftersom SQLite anvรคnder dynamisk typing, lagrar valfritt vรคrde i valfri kolumn. Lagringsklasser, typtillhรถrighet och deklarerade typnamn avgรถr tillsammans hur varje vรคrde fysiskt sparas pรฅ disken.

Avsnitten nedan fรถrklarar hur SQLite hanterar datatyper, med bรถrjan i de fem lagringsklasserna, sedan typtillhรถrighet och dess tilldelningsregler, och slutligen bearbetade exempel pรฅ lagring av heltal, reella tal, BLOB, booleska tal och datum.
Data skrivs in SQLite skiljer sig frรฅn de i andra databashanteringssystem. SQLite, kan du deklarera datatyper normalt, men du kan fortfarande lagra vilket vรคrde som helst i vilken datatyp som helst.
SQLite รคr typlรถs. Det finns inga fasta datatyper; du kan lagra vilken typ av data du vill i vilken kolumn som helst. Detta kallas dynamisk typping.
I statiska typer, liksom i andra databashanteringssystem, kan du bara infoga vรคrden av datatypen heltal om du deklarerar en kolumn med datatypen heltal. Dรคremot i dynamiska typer, som i SQLite, kolumntypen bestรคms av det infogade vรคrdet, och sedan SQLite lagrar det vรคrdet beroende pรฅ dess typ.
SQLite Fรถrvaringsklasser
In SQLite Det finns olika lagringsmetoder beroende pรฅ vรคrdetyp; 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 teckenfรถrtecknat heltal (det kan innehรฅlla bรฅde positiva och negativa heltal). HELTALSvรค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 flyttalvรคrdena, och de lagras i 8 byte lagringsutrymme.
- TEXT โ lagrar textstrรคngar. Den stรถder รคven olika kodningar som UTF-8, UTF-16BE eller UTF-16LE.
- KLICK โ anvรคnds fรถr att lagra stora filer, som bilder eller textfiler. Vรคrdet lagras som en byte-array, samma som inmatningsvรคrdet.
SQLite Affinitetstyp
Typtillhรถrighet รค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 obligatoriska.
Dessa typer introducerades i SQLite fรถr att maximera kompatibiliteten mellan SQLite och andra databashanteringssystems.
Varje kolumn som deklareras i en SQLite databasen tilldelas en typtillhรถrighet beroende pรฅ dess deklarerade datatyp. Hรคr รคr listan รถver typtillhรถrigheter i SQLite:
- TEXT.
- NUMERISK.
- HELTAL.
- VERKLIG.
- KLICK.
Hรคr รคr hur SQLite bestรคmmer en kolumns affinitet frรฅn dess deklarerade datatyp:
- INTEGER-affinitet tilldelas om den deklarerade typen innehรฅller strรคng "INT".
- TEXT-affinitet tilldelas om kolumnen innehรฅller en av fรถljande strรคngar i sin datatyp: "TEXT", "CHAR" eller "CLOB". Till exempel kommer typen VARCHAR att tilldelas TEXT-affiniteten.
- BLOB-affinitet tilldelas om kolumnen inte har nรฅgon typ angiven eller om datatypen รคr en BLOB.
- REAL-affinitet tilldelas om typen innehรฅller en av fรถljande strรคngar: โDOUBโ, โREALโ eller โFLOATโ.
- NUMERISK affinitet tilldelas fรถr alla andra datatyper.
Det finns ocksรฅ en tabell nedan som visar nรฅgra exempel pรฅ kartanping mellan SQLite datatyper och deras affinitet bestรคms av dessa regler:
Exempel pรฅ att lagra datatyper i SQLite
Lagra nummer med SQLite HELTAL
Om nรฅgon kolumn har en datatyp som innehรฅller ordet "INT" kommer den att tilldelas en INTEGER-typtillhรถrighet. Den kommer att lagras i en INTEGER-lagringsklass.
Alla fรถljande datatyper tilldelas en INTEGER-typaffinitet:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- LITENINT, LITENINT, MEDELINT.
INTEGER typ affinitet i SQLite kan hรฅlla vilket tilldelat heltal som helst (positivt eller negativt) frรฅn 1 byte upp till maximalt 8 byte.
Lagra nummer med SQLite VERKLIG
REELLA tal รคr tal med dubbel flyttalsprecision. SQLite lagrar reella tal som en 8-byte-matris. 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 det anvรคnder datatypen BLOB. Denna datatyp anvรคnds fรถr att lagra stora filer som bilder eller filer av vilken typ som helst. Filen konverteras till en byte-array och lagras sedan i samma storlek som indatafilen.
lagring SQLite Booleans
SQLite har ingen separat BOOLESK lagringsklass. Istรคllet lagras BOOLESKA vรคrden som HELTAL, dรคr 0 representerar falskt och 1 representerar sant.
lagring SQLite datum och tider
Du kan ange 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 SQLiteIstรคllet lagras alla vรคrden som deklarerats med en av de fรถregรฅende datatyperna i en lagringsklass beroende pรฅ datumformatet fรถr det infogade vรคrdet, enligt fรถljande:
- TEXT โ om du infogar datumvรคrdet i formatet fรถr en ISO8601-strรคng (โร ร ร ร -MM-DD TT:MM:SSS).
- VERKLIG โ om du infogar datumvรคrdet som ett julianskt dagtal, antalet dagar sedan middagstid i Greenwich den 24 november 4714 f.Kr. Datumvรคrdet lagras dรฅ som REALT.
- HELTAL - som Unix Tid, antalet sekunder sedan 1970-01-01 00:00:00 UTC.

