Vrste podatkov SQLite s primerom

Kazalo:

Anonim

Podatkovni tipi v SQLite se razlikujejo od drugih sistemov za upravljanje baz podatkov. V SQLiteju lahko podatkovne tipe deklarirate normalno, vendar lahko vse podatke shranite v kateri koli podatkovni tip.

V tej vadnici boste izvedeli-

  • Razredi shranjevanja
  • Vrsta afinitete
  • Primeri shranjevanja podatkovnih vrst v SQLite

SQLite se vtipka manj. Ni podatkovnih vrst, v kateri koli stolpec lahko shranite poljubno vrsto podatkov. To se imenuje dinamični tipi.

Če ste v statične tipe, tako kot v druge sisteme za upravljanje baz podatkov, prijavili stolpec s celim številom podatkovnega tipa, lahko vstavite samo vrednosti celotnega podatkovnega tipa. Vendar pa je pri dinamičnih tipih, kot je SQLite, vrsta stolpca določena z vstavljeno vrednostjo. In potem SQLite shrani to vrednost glede na vrsto.

Razredi za shranjevanje SQLite

V SQLite obstajajo različni načini shranjevanja, odvisno od vrste vrednosti, ti različni načini shranjevanja pa se v SQLite imenujejo razredi shranjevanja.

Sledijo razredi pomnilnika, ki so na voljo v SQLite:

  • NULL - ta razred pomnilnika se uporablja za shranjevanje katere koli vrednosti NULL.
  • INTEGER - katera koli številska vrednost je shranjena kot podpisana celoštevilčna vrednost (lahko vsebuje tako pozitivne kot negativne celoštevilčne vrednosti). Vrednosti INTEGER v SQLite se shranijo v 1, 2, 3, 4, 6 ali 8 bajtov pomnilnika, odvisno od vrednosti števila.
  • REAL - ta razred pomnilnika se uporablja za shranjevanje vrednosti s plavajočo vejico in so shranjene v 8-bajtnem pomnilniku.
  • TEXT - shrani besedilne nize. Podpira tudi različna kodiranja, kot so UTF-8, UTF-16 BE ali UTF-26LE.
  • BLOB - uporablja se za shranjevanje velikih datotek, na primer slik ali besedilnih datotek. Vrednost je shranjena kot bajtna matrika enako kot vhodna vrednost.

Vrsta pripadnosti SQLite

Afiniteta tipa je priporočena vrsta podatkov, shranjenih v stolpcu. Kljub temu lahko še vedno shranite katero koli vrsto podatkov, kot želite, priporočamo, da te vrste niso potrebne.

Ti tipi so bili uvedeni v SQLite, da bi povečali združljivost med SQLite in drugim sistemom za upravljanje baz podatkov.

Vsakemu stolpcu, prijavljenemu v zbirki podatkov SQLite, je dodeljena afiniteta tipa, odvisno od deklariranega tipa podatkov. Tukaj dvig afinitet tipa v SQLite:

  • BESEDILO.
  • ŠTEVILČNO.
  • INTEGER.
  • REALNO.
  • BLOB.

Evo, kako SQLite določi afiniteto stolpca iz deklariranega podatkovnega tipa:

  1. Afiniteta INTEGER se dodeli, če deklarirani tip vsebuje niz " INT ".
  2. Afiniteta TEXT je dodeljena, če stolpec na svojem podatkovnem tipu vsebuje enega od naslednjih nizov " TEXT ", " CHAR ali" CLOB ". Na primer, tip VARCHAR bo dodeljen afiniteti TEXT.
  3. Afiniteta BLOB se dodeli, če stolpec nima določene vrste ali je podatkovni tip BLOB.
  4. REAL afiniteta se dodeli, če tip vsebuje enega od naslednjih nizov " DOUB ", " REAL ali" FLOAT ".
  5. NUMERIC afiniteta je dodeljena za katero koli drugo vrsto podatkov.

Na isti strani je tudi tabela, ki prikazuje nekaj primerov za preslikavo podatkovnih tipov SQLite in njihove afinitete, določene s temi pravili:

Primeri shranjevanja podatkovnih vrst v SQLite:

Shranjevanje številke s celim številom SQLite:

Vsak stolpec podatkovnega tipa vsebuje besedo "INT", dodeljena mu bo afiniteta tipa INTEGER. Shranjeno bo v razredu za shranjevanje INTEGER.

Vsi naslednji tipi podatkov so dodeljeni kot afiniteta tipa INTEGER:

  • INT, INTEGER, VELIKO.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, SREDNJI INT.

Afiniteta tipa INTEGER v SQLite lahko vsebuje katero koli dodeljeno celoštevilsko število (pozitivno ali negativno) od 1 do 8 bajtov.

Shranjevanje številk z SQLite REAL:

REAL številke so številke z dvojno natančnostjo plavajočih vejic. SQLite je shranil realne številke kot matriko 8 bajtov. Tu je seznam podatkovnih vrst v SQLite, ki jih lahko uporabite za shranjevanje REAL številk:

  • REALNO.
  • DVOJNA.
  • DVOJNA PRECIZNOST.
  • FLOAT.

Shranjevanje velikih podatkov z SQLite BLOB:

Obstaja samo en način za shranjevanje velikih datotek v bazo podatkov SQLite, in sicer z uporabo podatkovnega tipa BLOB. Ta podatkovni tip se uporablja za shranjevanje velikih datotek, kot so slike, datoteke (katere koli vrste) itd. Datoteka se pretvori v bajtno matriko in nato shrani v enaki velikosti kot vhodna datoteka.

Shranjevanje logičnih logičnih vrednosti SQLite:

SQLite nima ločenega razreda shrambe BOOLEAN. Vendar so vrednosti BOOLEAN shranjene kot INTEGERS z vrednostmi 0 (kot false) ali 1 (kot true).

Shranjevanje datumov in ure SQLite:

Datum ali datumske ure lahko v SQLite navedete z enim od naslednjih podatkovnih tipov:

  • DATUM
  • DATUM ČAS
  • TIMESTAMP
  • ČAS

Upoštevajte, da v SQLite ni ločenega razreda shrambe DATE ali DATETIME. Namesto tega se vse vrednosti, prijavljene z enim od prejšnjih podatkovnih tipov, shranijo v pomnilniški razred, odvisno od oblike zapisa datuma vstavljene vrednosti, kot sledi:

  • BESEDILO - če ste datumsko vrednost vstavili v obliki niza ISO8601 ("LLLL-MM-DD HH: MM: SS.SSS").
  • REAL - če ste vrednost datuma vstavili v julijske številke dni, število dni od poldneva v Greenwichu 24. novembra 4714 pr. N. Št. Potem bi bila datumska vrednost shranjena kot REAL
  • INTEGER kot čas Unix, število sekund od 1970-01-01 00:00:00 UTC.

Povzetek:

SQLite podpira široko paleto podatkovnih vrst. Toda hkrati je zelo prilagodljiv glede podatkovnih vrst. V katero koli vrsto podatkov lahko vnesete katero koli vrsto vrednosti. SQLite je za razliko od drugih sistemov za upravljanje z bazami podatkov predstavil tudi nekatere nove koncepte v podatkovnih vrstah, kot so afiniteta tipov in razredi shranjevanja.