SQLite Datatyper: Heltal, Tekst, Numerisk, Reel, Blob
โก Smart opsummering
SQLite Datatyper fungerer anderledes end andre databaser fordi SQLite bruger dynamisk typing, lagring af en hvilken som helst vรฆrdi i en hvilken som helst kolonne. Lagringsklasser, typetilhรธrighed og deklarerede typenavne bestemmer tilsammen, hvordan hver vรฆrdi fysisk gemmes pรฅ disken.

Afsnittene nedenfor forklarer hvordan SQLite hรฅndterer datatyper, startende med de fem lagringsklasser, derefter typeaffinitet og dens tildelingsregler, og endelig bearbejdede eksempler pรฅ lagring af heltal, reelle tal, BLOB'er, boolske tal og datoer.
Datatyper ind SQLite adskiller sig fra dem i andre databasestyringssystemer. SQLite, kan du deklarere datatyper normalt, men du kan stadig gemme enhver vรฆrdi i enhver datatype.
SQLite er typelรธs. Der er ingen faste datatyper; du kan gemme enhver type data, du รธnsker, i enhver kolonne. Dette kaldes dynamisk typing.
I statiske typer, som i andre databasestyringssystemer, kan du kun indsรฆtte vรฆrdier af datatypen heltal, hvis du deklarerer en kolonne med datatypen heltal. I dynamiske typer, som i SQLite, kolonnetypen bestemmes af den indsatte vรฆrdi, og derefter SQLite gemmer denne vรฆrdi afhรฆngigt af dens type.
SQLite Opbevaringsklasser
In SQLite Der findes forskellige lagringsmetoder afhรฆngigt af vรฆrditypen; disse forskellige lagringsmetoder kaldes lagringsklasser i SQLite.
Fรธlgende er de opbevaringsklasser, der er tilgรฆngelige i SQLite:
- NULL โ denne lagerklasse bruges til at gemme enhver NULL-vรฆrdi.
- HELTAL โ enhver numerisk vรฆrdi gemmes som et heltal med fortegn (den kan indeholde bรฅde positive og negative heltal). HELTALSvรฆrdierne i SQLite gemmes i enten 1, 2, 3, 4, 6 eller 8 bytes lager afhรฆngigt af vรฆrdien af โโtallet.
- รGTE โ denne lagringsklasse bruges til at gemme flydende kommavรฆrdier, og de gemmes i 8 bytes lagerplads.
- TEKST โ gemmer tekststrenge. Den understรธtter ogsรฅ forskellige kodninger som UTF-8, UTF-16BE eller UTF-16LE.
- Blob โ bruges til at gemme store filer, sรฅsom billeder eller tekstfiler. Vรฆrdien gemmes som et byte-array, det samme som inputvรฆrdien.
SQLite Affinitetstype
Typeaffinitet er den anbefalede type data, der gemmes i en kolonne. Du kan dog stadig gemme enhver type data, som du รธnsker; disse typer anbefales, ikke pรฅkrรฆvede.
Disse typer blev introduceret i SQLite for at maksimere kompatibiliteten mellem SQLite og andre databasestyringssystems.
Enhver kolonne erklรฆret i en SQLite Databasen tildeles en typeaffinitet afhรฆngigt af dens deklarerede datatype. Her er listen over typeaffiniteter i SQLite:
- TEKST.
- NUMERISK.
- HELTAL.
- รGTE.
- BLOB.
Her er, hvordan SQLite bestemmer en kolonnes affinitet ud fra dens deklarerede datatype:
- HELTAL affinitet tildeles, hvis den erklรฆrede type indeholder streng "INT".
- TEXT-affinitet tildeles, hvis kolonnen indeholder en af โโfรธlgende strenge i sin datatype: "TEXT", "CHAR" eller "CLOB". For eksempel vil typen VARCHAR blive tildelt TEXT-affiniteten.
- BLOB-affinitet tildeles, hvis kolonnen ikke har nogen specificeret type, eller datatypen er en BLOB.
- REAL-affinitet tildeles, hvis typen indeholder en af โโfรธlgende strenge: "DOUB", "REAL" eller "FLOAT".
- NUMERISK affinitet tildeles for enhver anden datatype.
Der er ogsรฅ en tabel nedenfor, der viser nogle eksempler pรฅ kortetping mellem SQLite datatyper og deres tilhรธrsforhold bestemt af disse regler:
Eksempler pรฅ lagring af datatyper i SQLite
Lagring af numre med SQLite HELTAL
Hvis en kolonne har en datatype, der indeholder ordet "INT", vil den blive tildelt en INTEGER-typeaffinitet. Den vil blive gemt i en INTEGER-lagringsklasse.
Alle fรธlgende datatyper tildeles en INTEGER-typeaffinitet:
- INT, HELTAL, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUMINT.
INTEGER type affinitet i SQLite kan indeholde ethvert tildelt heltal (positivt eller negativt) fra 1 byte op til maksimalt 8 bytes.
Lagring af numre med SQLite รGTE
RELE tal er tal med dobbelt flydende kommaprรฆcision. SQLite gemmer reelle tal som et 8-byte array. Her er listen over datatyper i SQLite som du kan bruge til at gemme RIGTIGE numre:
- รGTE.
- DOBBELT.
- DOBBELT PRรCISION.
- FLYDE.
Lagring af store data med SQLite Blob
Der er kun รฉn mรฅde at gemme store filer pรฅ SQLite database, og det bruger BLOB-datatypen. Denne datatype bruges til at gemme store filer som billeder eller filer af enhver type. Filen konverteres til et byte-array og gemmes derefter i samme stรธrrelse som inputfilen.
Lagring SQLite Booleans
SQLite har ikke en separat BOOLEAN-lagringsklasse. I stedet gemmes BOOLEAN-vรฆrdier som HELTAL, hvor 0 reprรฆsenterer falsk og 1 reprรฆsenterer sand.
Lagring SQLite datoer og tidspunkter
Du kan angive datoer eller dato-tidspunkter i SQLite ved hjรฆlp af en af โโfรธlgende datatyper:
- INFORMATION
- DATO TID
- TIDSSTEMPEL
- TIME
Bemรฆrk, at der ikke er nogen separat DATE- eller DATETIME-lagringsklasse i SQLiteI stedet gemmes alle vรฆrdier, der er deklareret med en af โโde foregรฅende datatyper, i en lagringsklasse afhรฆngigt af datoformatet for den indsatte vรฆrdi, som fรธlger:
- TEKST โ hvis du indsรฆtter datovรฆrdien i formatet af en ISO8601-streng (โร ร ร ร -MM-DD TT:MM:SSS).
- รGTE โ hvis du indsรฆtter datovรฆrdien som et juliansk dagtal, er det antallet af dage siden middag i Greenwich den 24. november 4714 f.Kr. Datovรฆrdien gemmes derefter som REAL.
- HELTAL - som Unix Tid, antallet af sekunder siden 1970-01-01 00:00:00 UTC.

