Datatyper i SQLite er forskellige sammenlignet med andre databasestyringssystemer. I SQLite kan du erklære datatyper normalt, men du kan stadig gemme enhver værdi i enhver datatype.
I denne vejledning lærer du-
- Opbevaringsklasser
- Affinitetstype
- Eksempler på lagring af datatyper i SQLite
SQLite er skrevet mindre. Der er ingen datatyper, du kan gemme enhver type data, du kan lide, i en hvilken som helst kolonne. Dette kaldes dynamiske typer.
I statiske typer, som i andre databasestyringssystemer, kan du kun indsætte værdier for datatypens heltal, hvis du erklærede en kolonne med et datatypenummer. Imidlertid bestemmes typen af kolonnen i dynamiske typer som i SQLite af den indsatte værdi. Og så gemmer SQLite den værdi afhængigt af dens type.
SQLite-lagerklasser
I SQLite er der forskellige lagringsmetoder afhængigt af typen af værdi, disse forskellige lagringsmetoder kaldes lagerklasser i SQLite.
Følgende er de lagerklasser, der er tilgængelige i SQLite:
- NULL - denne lagerklasse bruges til at gemme enhver NULL-værdi.
- INTEGER - en hvilken som helst numerisk værdi er gemt som en underskrevet heltal (den kan indeholde både positive og negative heltal). INTEGER-værdierne i SQLite gemmes i enten 1, 2, 3, 4, 6 eller 8 byte lager afhængigt af værdien af nummeret.
- REAL - denne lagringsklasse bruges til at gemme værdierne for flydende punkt, og de lagres i en 8-bytes lager.
- TEKST - gemmer tekststrenge. Det understøtter også forskellige kodninger som UTF-8, UTF-16 BE eller UTF-26LE.
- BLOB - bruges til at gemme store filer, som billeder eller tekstfiler. Værdien er gemt som byte-array den samme som inputværdien.
SQLite-affinitetstype
Typeaffinitet er den anbefalede type data, der er gemt i en kolonne. Du kan dog stadig gemme alle typer data, som du ønsker, disse typer anbefales ikke påkrævet.
Disse typer blev introduceret i SQLite for at maksimere kompatibiliteten mellem SQLite og andet databasestyringssystem.
Enhver kolonne, der er erklæret i en SQLite-database, tildeles en typeaffinitet afhængigt af den deklarerede datatype. Her løftes typen af affiniteter i SQLite:
- TEKST.
- NUMERISK.
- HELTAL.
- ÆGTE.
- BLOB.
Sådan bestemmer SQLite affiniteten for kolonnen ud fra dens deklarerede datatype:
- INTEGER-affinitet tildeles, hvis den deklarerede type indeholder strengen " INT ".
- TEKST-affinitet tildeles, hvis kolonnen på dens datatype indeholder en af de følgende strenge " TEKST ", " CHAR eller" CLOB ". F.eks. Tildeles typen VARCHAR TEKST-affinitet.
- BLOB-tilknytning er tildelt, 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 enhver anden datatype.
Der er også en tabel på den samme side, der viser nogle eksempler til kortlægning mellem SQLite-datatyper og deres tilhørsforhold bestemt af disse regler:
Eksempler på lagring af datatyper i SQLite:
Lagring af nummer med SQLite-heltal:
Enhver kolonne af datatype indeholder ordet "INT", det tildeles en INTEGER-typeaffinitet. Det opbevares i en INTEGER-lagerklasse.
Alle følgende datatyper er tildelt en INTEGER-affinitet:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
INTEGER-affinitet i SQLite kan indeholde ethvert tildelt heltal (positivt eller negativt) fra 1 byte til maksimalt 8 byte.
Lagring af numre med SQLite REAL:
VIRKELIGE tal er antallet med dobbelt flydende nøjagtighed. SQLite lagrede reelle tal som 8 bytes array. Her er listen over datatyper i SQLite, som du kan bruge til at gemme REAL-numre:
- ÆGTE.
- DOBBELT.
- DOBBEL 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 det bruger BLOB-datatypen. 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 af SQLite Booleans:
SQLite har ikke en separat BOOLEAN-lagerklasse. BOOLEAN-værdierne gemmes dog som INTEGERS med værdierne 0 (som falske) eller 1 (som sande).
Lagring af SQLite-datoer og -tider:
Du kan erklære dato eller dato i SQLite ved hjælp af en af følgende datatyper:
- DATO
- DATO TID
- TIDSSTEMPEL
- TID
Bemærk, at der ikke er nogen separat DATE- eller DATETIME-lagerklasse i SQLite. I stedet gemmes alle værdier, der er deklareret med en af de tidligere datatyper, i en lagerklasse afhængigt af datoformatet for den indsatte værdi som følger:
- TEKST - hvis du indsatte datoværdien i formatet for ISO8601-strengen ("ÅÅÅÅ-MM-DD HH: MM: SS.SSS").
- REAL - hvis du indsatte datoværdien i de julianske dagnumre, antallet af dage siden middag i Greenwich den 24. november 4714 f.Kr. Derefter gemmes datoværdien som REAL.
- INTEGER som Unix Time, antallet af sekunder siden 1970-01-01 00:00:00 UTC.
Resumé:
SQLite understøtter en bred vifte af datatyper. Men på samme tid er det meget fleksibelt med hensyn til datatyper. Du kan placere en hvilken som helst værditype i enhver datatype. SQLite introducerede også nogle nye koncepter i datatyper som type affinitet og lagringsklasser, i modsætning til andre databasestyringssystemer.