SQLite Datatyper: Heltall, Tekst, Numerisk, Reell, Blob
โก Smart oppsummering
SQLite Datatyper fungerer annerledes enn andre databaser fordi SQLite bruker dynamisk typing, og lagrer en hvilken som helst verdi i en hvilken som helst kolonne. Lagringsklasser, typetilhรธrighet og deklarerte typenavn bestemmer sammen hvordan hver verdi fysisk lagres pรฅ disken.

Avsnittene nedenfor forklarer hvordan SQLite hรฅndterer datatyper, startende med de fem lagringsklassene, deretter typeaffinitet og tildelingsreglene, og til slutt utarbeidede eksempler pรฅ lagring av heltall, reelle tall, BLOB-er, boolske tall og datoer.
Datatyper inn SQLite skiller seg fra de i andre databasesystemer. SQLite, kan du deklarere datatyper normalt, men du kan fortsatt lagre hvilken som helst verdi i hvilken som helst datatype.
SQLite er typelรธs. Det finnes ingen faste datatyper; du kan lagre hvilken som helst type data du รธnsker i en hvilken som helst kolonne. Dette kalles dynamisk typing.
I statiske typer, som i andre databasebehandlingssystemer, kan du bare sette inn verdier av datatypen heltall hvis du deklarerer en kolonne med datatypen heltall. I dynamiske typer, som i SQLite, kolonnetypen bestemmes av verdien som settes inn, og deretter SQLite lagrer denne verdien avhengig av typen.
SQLite Lagringsklasser
In SQLite Det finnes forskjellige lagringsmetoder avhengig av verditypen; disse forskjellige lagringsmetodene kalles lagringsklasser i SQLite.
Fรธlgende er lagringsklassene som er tilgjengelige i SQLite:
- NULL โ denne lagringsklassen brukes til รฅ lagre enhver NULL-verdi.
- INTEGER โ enhver numerisk verdi lagres som et heltall med fortegn (den kan inneholde bรฅde positive og negative heltallsverdier). HELTALLSverdiene i SQLite lagres i enten 1, 2, 3, 4, 6 eller 8 byte lagringsplass, avhengig av verdien pรฅ tallet.
- EKTE โ denne lagringsklassen brukes til รฅ lagre flyttallverdiene, og de lagres i 8 byte med lagringsplass.
- TEKST โ lagrer tekststrenger. Den stรธtter ogsรฅ forskjellige kodinger som UTF-8, UTF-16BE eller UTF-16LE.
- BLOB โ brukes til รฅ lagre store filer, som bilder eller tekstfiler. Verdien lagres som en byte-matrise, det samme som inngangsverdien.
SQLite Tilhรธrighetstype
Typetilhรธrighet er den anbefalte datatypen som lagres i en kolonne. Du kan imidlertid fortsatt lagre alle datatyper du รธnsker; disse typene anbefales, ikke pรฅkrevd.
Disse typene ble introdusert i SQLite for รฅ maksimere kompatibiliteten mellom SQLite og andre databasesystems.
Enhver kolonne erklรฆrt i en SQLite databasen tildeles en typetilhรธrighet avhengig av den deklarerte datatypen. Her er listen over typetilhรธrigheter i SQLite:
- TEKST.
- NUMERISK.
- HELTAL.
- EKTE.
- BLOB.
Her er hvordan SQLite bestemmer affiniteten til en kolonne fra den deklarerte datatypen:
- INTEGER-tilhรธrighet tildeles hvis den deklarerte typen inneholder string ยซINTยป.
- TEXT-affinitet tildeles hvis kolonnen inneholder en av fรธlgende strenger i datatypen: ยซTEXTยป, ยซCHARยป eller ยซCLOBยป. For eksempel vil typen VARCHAR tildeles TEXT-affiniteten.
- BLOB-tilhรธrighet tildeles hvis kolonnen ikke har noen type spesifisert eller datatypen er en BLOB.
- REAL-tilhรธrighet tildeles hvis typen inneholder en av fรธlgende strenger: ยซDOUBยป, ยซREALยป eller ยซFLOATยป.
- NUMERISK tilhรธrighet er tilordnet for alle andre datatyper.
Det finnes ogsรฅ en tabell nedenfor som viser noen eksempler pรฅ kartetping mellom SQLite datatyper og deres tilhรธrighet bestemt av disse reglene:
Eksempler pรฅ lagring av datatyper i SQLite
Lagre tall med SQLite INTEGER
Hvis en kolonne har en datatype som inneholder ordet ยซINTยป, vil den bli tilordnet en INTEGER-typetilhรธrighet. Den vil bli lagret i en INTEGER-lagringsklasse.
Alle fรธlgende datatyper er tilordnet en INTEGER-typeaffinitet:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- LITENINT, LITENINT, MEDIUMINT.
INTEGER type affinitet i SQLite kan holde et hvilket som helst tildelt heltall (positivt eller negativt) fra 1 byte opptil maksimalt 8 byte.
Lagre tall med SQLite EKTE
REELLE tall er tall med dobbel flyttallspresisjon. SQLite lagrer reelle tall som en 8-byte-matrise. Her er listen over datatyper i SQLite som du kan bruke til รฅ lagre EKTE tall:
- EKTE.
- DOBBELT.
- DOBBEL PRESISJON.
- FLYTE.
Lagre store data med SQLite BLOB
Det finnes bare รฉn mรฅte รฅ lagre store filer pรฅ SQLite database, og det bruker BLOB-datatypen. Denne datatypen brukes til รฅ lagre store filer som bilder eller filer av alle typer. Filen konverteres til en byte-array og lagres deretter i samme stรธrrelse som inndatafilen.
Lagring SQLite booleans
SQLite har ikke en separat BOOLESK lagringsklasse. I stedet lagres BOOLESK verdier som HELTAL, der 0 representerer usann og 1 representerer sann.
Lagring SQLite datoer og klokkeslett
Du kan deklarere datoer eller dato-klokkeslett i SQLite ved รฅ bruke en av fรธlgende datatyper:
- INFORMASJON
- DATO TID
- TIMESTAMP
- TIME
Merk at det ikke finnes noen separat DATE- eller DATETIME-lagringsklasse i SQLiteI stedet lagres alle verdier som er deklarert med en av de foregรฅende datatypene i en lagringsklasse avhengig av datoformatet til den innsatte verdien, som fรธlger:
- TEKST โ hvis du setter inn datoverdien i formatet til en ISO8601-streng (ยซร ร ร ร -MM-DD TT:MM:SSSยป).
- EKTE โ hvis du setter inn datoverdien som et juliansk dagtall, er det antall dager siden klokken 12 i Greenwich den 24. november 4714 f.Kr. Datoverdien lagres da som REELL.
- INTEGER โ som Unix Tid, antall sekunder siden 1970-01-01 00:00:00 UTC.

