SQLite Datatyper med eksempel: Int, Text, Numeric, Real, Blob

Datatyper ind SQLite er anderledes sammenlignet med andre databasestyringssystemer. I SQLite, kan du deklarere datatyper normalt, men du kan stadig gemme enhver vรฆrdi i enhver datatype.

SQLite er skrevet mindre. Der er ingen datatyper, du kan gemme enhver type data, du kan lide, i enhver kolonne. Dette kaldes dynamiske typer.

I statiske typer, som i andre databasestyringssystemer, kan du kun indsรฆtte vรฆrdier af datatypen heltal, hvis du erklรฆrede en kolonne med et datatype heltal. Men i dynamiske typer som i SQLite, er kolonnens type bestemt af den indsatte vรฆrdi. Og sรฅ SQLite gemmer denne vรฆrdi afhรฆngigt af dens type.

SQLite Opbevaringsklasser

In SQLite der er forskellige lagringsmetoder afhรฆngigt af typen af โ€‹โ€‹vรฆrdi, 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 en heltalsvรฆrdi med fortegn (den kan indeholde bรฅde positive og negative heltalsvรฆrdier). INTEGER-vรฆrdierne i SQLite gemmes i enten 1, 2, 3, 4, 6 eller 8 bytes lager afhรฆngigt af vรฆrdien af โ€‹โ€‹tallet.
  • ร†GTE โ€“ denne lagerklasse bruges til at gemme de flydende kommavรฆrdier, og de er gemt i et 8-bytes lager.
  • TEKST โ€“ gemmer tekststrenge. Det understรธtter ogsรฅ forskellig kodning som UTF-8, UTF-16 BE eller UTF-26LE.
  • Blob โ€“ bruges til at gemme store filer, sรฅsom billeder eller tekstfiler. Vรฆrdien gemmes som byte-array pรฅ samme mรฅde som inputvรฆrdien.

SQLite Affinitetstype

Typeaffinitet er den anbefalede type data, der er gemt i en kolonne. Du kan dog stadig gemme enhver type data, som du รธnsker, disse typer anbefales ikke pรฅkrรฆvet.

Disse typer blev introduceret i SQLite for at maksimere kompatibiliteten mellem SQLite og andre databasestyringssystem.

Enhver kolonne erklรฆret i en SQLite databasen tildeles en type affinitet afhรฆngig af den erklรฆrede datatype. Her lรธft af type affiniteter i SQLite:

  • TEKST.
  • NUMERISK.
  • HELTAL.
  • ร†GTE.
  • BLOB.

Sรฅdan er det SQLite bestemmer kolonnens affinitet ud fra dens erklรฆrede datatype:

  1. HELTAL affinitet tildeles, hvis den erklรฆrede type indeholder streng "INT".
  2. TEXT-affinitet tildeles, hvis kolonnen pรฅ sin datatype indeholder en af โ€‹โ€‹fรธlgende strenge "TEKST","CHAR, eller "KLUBโ€œ. For eksempel vil typen VARCHAR blive tildelt TEXT-affiniteten.
  3. BLOB-affinitet tildeles, hvis kolonnen ikke har nogen specificeret type, eller datatypen er en BLOB.
  4. REAL affinitet tildeles, hvis typen indeholder en af โ€‹โ€‹fรธlgende strenge "DUBBEL","ร†GTE, eller "FLOAT".
  5. NUMERISK affinitet tildeles for enhver anden datatype.

Der er ogsรฅ en tabel pรฅ samme side, der viser nogle eksempler til kortlรฆgningen mellem SQLite datatyper og deres tilhรธrsforhold bestemt af disse regler:

SQLite Affinitetstype
Kortlรฆgning mellem SQLite datatyper og affiniteter

Eksempler pรฅ lagring af datatyper i SQLite

Gemmer nummer med SQLite heltal

Enhver kolonne med datatype indeholder ordet "INT", det vil blive tildelt en INTEGER-type affinitet. Det vil blive gemt i en INTEGER-lagringsklasse.

Alle fรธlgende datatyper er tildelt som en INTEGER type affinitet:

  • INT, HELTAL, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUM INT.

INTEGER type affinitet i SQLite kan indeholde ethvert tildelt heltal (positivt eller negativt) fra 1 byte til maksimalt 8 bytes.

Lagring af numre med SQLite ร†GTE

ร†GTE tal er tallet med dobbelt flydende point-prรฆcision. SQLite gemt reelle tal som 8 bytes 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 i en SQLite database, og den bruger datatypen BLOB. Denne datatype bruges til at gemme store filer som billeder, filer (fra enhver type) osv. Filen konverteres til bytes-array og gemmes derefter i samme stรธrrelse som inputfilen.

Lagring SQLite Booleans

SQLite har ikke en separat BOOLEAN lagerklasse. De BOOLEAN-vรฆrdier gemmes dog som HELTAL med vรฆrdierne 0 (som falsk) eller 1 (som sand).

Lagring SQLite datoer og tidspunkter

Du kan angive dato eller dato klokkeslรฆt 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 SQLite. I stedet bliver alle vรฆrdier, der er erklรฆret med en af โ€‹โ€‹de tidligere datatyper, gemt pรฅ en lagerklasse afhรฆngigt af datoformatet for den indsatte vรฆrdi som fรธlger:

  • TEKST โ€“ hvis du har indsat datovรฆrdien i formatet af ISO8601-strengen ("ร…ร…ร…ร…-MM-DD TT:MM:SS.SSS").
  • ร†GTE โ€“ hvis du indsatte datovรฆrdien i de julianske dagtal, antallet af dage siden middagstid i Greenwich den 24. november 4714 f.Kr.. Sรฅ ville datovรฆrdien blive gemt som RIGTIG.
  • HELTAL as Unix Tid, antallet af sekunder siden 1970-01-01 00:00:00 UTC.

Resumรฉ

SQLite understรธtter en bred vifte af datatyper. Men samtidig er det meget fleksibelt med hensyn til datatyper. Du kan indsรฆtte enhver vรฆrditype i enhver datatype. SQLite introducerede ogsรฅ nogle nye koncepter i datatyper som type affinitet og lagerklasser, i modsรฆtning til andre databasestyringssystemer.

Opsummer dette indlรฆg med: