SQLite-datatyper med eksempel

Indholdsfortegnelse:

Anonim

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:

  1. INTEGER-affinitet tildeles, hvis den deklarerede type indeholder strengen " INT ".
  2. 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.
  3. BLOB-tilknytning er tildelt, hvis kolonnen ikke har nogen specificeret type, eller datatypen er en BLOB.
  4. REAL affinitet tildeles, hvis typen indeholder en af ​​følgende strenge " DOUB ", " REAL eller" FLOAT ".
  5. 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.