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:
- INTEGER-tilknytning tildeles hvis den deklarerte typen inneholder strengen " INT ".
- 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.
- BLOB-tilknytning tildeles hvis kolonnen ikke har noen spesifisert type eller datatypen er en BLOB.
- REAL affinitet tildeles hvis typen inneholder en av følgende strenger " DOUB ", " REAL eller" FLOAT ".
- 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.