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:
- HELTAL affinitet tildeles, hvis den erklærede type indeholder streng "INT".
- 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.
- 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 "DUBBEL","ÆGTE, eller "FLOAT".
- 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:
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.