SQLite-datatyper med eksempel

Innholdsfortegnelse:

Anonim

Datatyper i SQLite er forskjellige sammenlignet med andre databasestyringssystemer. I SQLite kan du erklære datatyper normalt, men du kan fortsatt lagre hvilken som helst verdi i hvilken som helst datatype.

I denne veiledningen vil du lære-

  • Lagringsklasser
  • Affinitetstype
  • Eksempler på lagring av datatyper i SQLite

SQLite blir skrevet mindre. Det er ingen datatyper, du kan lagre hvilken som helst type data du vil i en hvilken som helst kolonne. Dette kalles dynamiske typer.

I statiske typer, som i andre databasestyringssystemer, kan du bare sette inn verdier for datatype heltall hvis du erklærte en kolonne med et datatype heltall. Imidlertid, i dynamiske typer som i SQLite, bestemmes typen av kolonnen av verdien som er satt inn. Og så lagrer SQLite den verdien avhengig av typen.

SQLite-lagringsklasser

I SQLite er det forskjellige lagringsmetoder avhengig av type verdi, disse forskjellige lagringsmetodene kalles lagringsklasser i SQLite.

Følgende er lagringsklassene som er tilgjengelige i SQLite:

  • NULL - denne lagringsklassen brukes til å lagre hvilken som helst NULL-verdi.
  • INTEGER - hvilken som helst numerisk verdi er lagret som en signert heltallverdi (den kan inneholde både positive og negative heltallverdier). INTEGER-verdiene i SQLite lagres i enten 1, 2, 3, 4, 6 eller 8 byte lagring, avhengig av verdien på tallet.
  • REAL - denne lagringsklassen brukes til å lagre flytende punktverdier, og de lagres i en lagring på 8 byte.
  • TEKST - lagrer tekststrenger. Den støtter også forskjellige kodinger som UTF-8, UTF-16 BE eller UTF-26LE.
  • BLOB - brukes til å lagre store filer, som bilder eller tekstfiler. Verdien er lagret som byte-array, det samme som inngangsverdien.

SQLite Affinity Type

Type affinitet er den anbefalte typen data som er lagret i en kolonne. Imidlertid kan du fremdeles lagre alle typer data som du ønsker. Disse typene anbefales ikke nødvendig.

Disse typene ble introdusert i SQLite for å maksimere kompatibiliteten mellom SQLite og annet databasesystem.

Enhver kolonne som er erklært i en SQLite-database, tildeles en typeaffinitet avhengig av den deklarerte datatypen. Her løftes typeaffiniteter i SQLite:

  • TEKST.
  • NUMERISK.
  • INTEGER.
  • EKTE.
  • BLOB.

Slik bestemmer SQLite affiniteten til kolonnen fra den deklarerte datatypen:

  1. INTEGER-tilknytning tildeles hvis den deklarerte typen inneholder strengen " INT ".
  2. TEKST-tilknytning er tildelt hvis kolonnen inneholder en av de følgende strengene " TEKST ", " CHAR eller" CLOB "på datatypen. For eksempel vil typen VARCHAR bli tildelt TEXT-tilhørighet.
  3. BLOB-tilknytning tildeles hvis kolonnen ikke har noen spesifisert type eller datatypen er en BLOB.
  4. REAL affinitet tildeles hvis typen inneholder en av følgende strenger " DOUB ", " REAL eller" FLOAT ".
  5. NUMERISK tilknytning er tildelt for enhver annen datatype.

Det er også en tabell på samme side som viser noen eksempler for kartleggingen mellom SQLite-datatyper og deres tilknytning bestemt av disse reglene:

Eksempler på lagring av datatyper i SQLite:

Lagring av nummer med SQLite-heltall:

Enhver kolonne med datatype inneholder "INT" -ordet, det vil bli tildelt en INTEGER-typeaffinitet. Den lagres i en INTEGER-lagringsklasse.

Alle følgende datatyper er tilordnet som en INTEGER-typeaffinitet:

  • INT, INTEGER, STOR.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUM INT.

INTEGER-type affinitet i SQLite kan inneholde et hvilket som helst tildelt heltall (positivt eller negativt) fra 1 byte til maksimalt 8 byte.

Lagre tall med SQLite REAL:

REAL tall er tallet med dobbel flytende poeng presisjon. SQLite lagret reelle tall som 8 bytes matrise. Her er listen over datatyper i SQLite som du kan bruke til å lagre REAL-numre:

  • EKTE.
  • DOBBELT.
  • DOBBEL PRESISJON.
  • FLYTE.

Lagring av store data med SQLite BLOB:

Det er bare en måte å lagre store filer i en SQLite-database, og den bruker BLOB-datatypen. Denne datatypen brukes til å lagre store filer som bilder, filer (fra hvilken som helst type) osv. Filen konverteres til bytes-array og lagres deretter i samme størrelse som inndatafilen.

Lagring av SQLite Booleans:

SQLite har ikke en egen BOOLEAN-lagringsklasse. BOOLEAN-verdiene lagres imidlertid som INTEGERS med verdiene 0 (som usann) eller 1 (som sant).

Lagring av SQLite-datoer og klokkeslett:

Du kan erklære dato eller dato i SQLite ved hjelp av en av følgende datatyper:

  • DATO
  • DATO TID
  • TIDSTEMPEL
  • TID

Merk at det ikke er noen egen DATE- eller DATETIME-lagringsklasse i SQLite. I stedet lagres verdier som er deklarert med en av de forrige datatypene i en lagringsklasse, avhengig av datoformatet for den innlagte verdien som følger:

  • TEKST - hvis du satte inn datoverdien i formatet til ISO8601-strengen ("ÅÅÅÅ-MM-DD HH: MM: SS.SSS").
  • REAL - hvis du la inn datoverdien i de julianske dagstallene, antall dager siden middag i Greenwich 24. november 4714 f.Kr. Da vil datoverdien bli lagret som REAL.
  • INTEGER som Unix Time, antall sekunder siden 1970-01-01 00:00:00 UTC.

Sammendrag:

SQLite støtter et bredt spekter av datatyper. Men samtidig er det veldig fleksibelt med hensyn til datatyper. Du kan plassere hvilken som helst verditype i hvilken som helst datatype. SQLite introduserte også noen nye konsepter i datatyper som type affinitet og lagringsklasser, i motsetning til andre databasestyringssystemer.