Tipovi podataka SQLite s primjerom

Sadržaj:

Anonim

Vrste podataka u SQLiteu razlikuju se u usporedbi s drugim sustavima za upravljanje bazama podataka. U SQLiteu možete normalno deklarirati tipove podataka, ali svejedno možete pohraniti bilo koju vrijednost u bilo koji tip podataka.

U ovom vodiču naučit ćete-

  • Klase skladištenja
  • Tip afiniteta
  • Primjeri spremanja vrsta podataka u SQLite

SQLite se manje upisuje. Ne postoje vrste podataka, možete pohraniti bilo koju vrstu podataka u bilo koji stupac. To se naziva dinamičkim tipovima.

U statičke tipove, kao u drugim sustavima za upravljanje bazom podataka, ako ste stupac deklarirali s cijelim brojem tipa podataka, možete umetnuti samo vrijednosti cjelobrojnog tipa podataka. Međutim, u dinamičkim tipovima poput SQLitea, vrsta stupca određuje se umetnutom vrijednošću. A onda SQLite pohranjuje tu vrijednost ovisno o svojoj vrsti.

Klase SQLite pohrane

U SQLiteu postoje različite metode pohrane, ovisno o vrsti vrijednosti, te različite metode pohrane nazivaju se klasama pohrane u SQLiteu.

Slijede klase pohrane dostupne u SQLiteu:

  • NULL - ova klasa pohrane koristi se za pohranu bilo koje NULL vrijednosti.
  • INTEGER - bilo koja numerička vrijednost pohranjuje se kao potpisana cijela vrijednost (može sadržavati i pozitivne i negativne cjelobrojne vrijednosti). Vrijednosti INTEGER u SQLiteu pohranjuju se u 1, 2, 3, 4, 6 ili 8 bajtova memorije, ovisno o vrijednosti broja.
  • REAL - ova klasa pohrane koristi se za pohranu vrijednosti s pomičnim zarezom i pohranjuju se u 8 bajtova memorije.
  • TEKST - pohranjuje tekstualne nizove. Također podržava različito kodiranje poput UTF-8, UTF-16 BE ili UTF-26LE.
  • BLOB - koristi se za pohranu velikih datoteka, poput slika ili tekstualnih datoteka. Vrijednost se pohranjuje kao bajtni niz isto što i ulazna vrijednost.

SQLite Affinity Type

Afinitet tipa preporučena je vrsta podataka pohranjenih u stupcu. Međutim, i dalje možete pohraniti bilo koju vrstu podataka po želji, preporuča se da ove vrste nisu potrebne.

Ti su tipovi uvedeni u SQLite kako bi se povećala kompatibilnost između SQLitea i drugog sustava za upravljanje bazama podataka.

Bilo kojem stupcu deklariranom u bazi podataka SQLite dodjeljuje se afinitet tipa, ovisno o deklariranom tipu podataka. Evo povećanja afiniteta tipa u SQLiteu:

  • TEKST.
  • NUMERIČKI.
  • CIJELI.
  • STVARAN.
  • BLOB.

Evo kako SQLite određuje afinitet stupca iz njegove deklarirane vrste podataka:

  1. Afinitet INTEGER dodjeljuje se ako deklarirani tip sadrži niz " INT ".
  2. Dodijeljen je afinitet TEXT-a ako stupac na svom tipu podataka sadrži jedan od sljedećih nizova " TEXT ", " CHAR ili" CLOB ". Na primjer, tipu VARCHAR dodijelit će se afinitet TEXT-a.
  3. Afinitet BLOB-a dodjeljuje se ako stupac nema navedenu vrstu ili je vrsta podataka BLOB.
  4. REAL affinity dodjeljuje se ako vrsta sadrži jedan od sljedećih nizova " DOUB ", " REAL ili" FLOAT ".
  5. NUMERIČKI afinitet dodjeljuje se za bilo koju drugu vrstu podataka.

Na istoj stranici nalazi se i tablica koja prikazuje neke primjere za mapiranje između SQLite tipova podataka i njihovih afiniteta utvrđenih ovim pravilima:

Primjeri pohrane vrsta podataka u SQLite:

Pohranjivanje broja sa SQLite cijelim brojem:

Bilo koji stupac tipa podataka sadrži riječ "INT", dodijelit će mu se afinitet tipa INTEGER. Pohranit će se u klasi pohrane INTEGER.

Svi sljedeći tipovi podataka dodijeljeni su kao afinitet tipa INTEGER:

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

Afinitet tipa INTEGER u SQLiteu može sadržavati bilo koji dodijeljeni cjelobrojni broj (pozitivan ili negativan) od 1 do 8 bajtova.

Pohranjivanje brojeva s SQLite REAL:

STVARNI brojevi su brojevi s dvostrukom preciznošću s pomičnim zarezom. SQLite je pohranio stvarne brojeve kao niz od 8 bajtova. Evo popisa vrsta podataka u SQLiteu koje možete koristiti za spremanje STVARNIH brojeva:

  • STVARAN.
  • DVOSTRUKO.
  • DUPLA PRECIZNOST.
  • PLUTATI.

Pohranjivanje velikih podataka pomoću SQLite BLOB:

Postoji samo jedan način za pohranu velikih datoteka u bazu podataka SQLite, a koristi se tip podataka BLOB. Ova vrsta podataka koristi se za pohranu velikih datoteka poput slika, datoteka (bilo koje vrste) itd. Datoteka se pretvara u niz bajtova, a zatim sprema u istoj veličini kao i ulazna datoteka.

Pohranjivanje SQLite logičkih vrijednosti:

SQLite nema zasebnu klasu spremišta BOOLEAN. Međutim, vrijednosti BOOLEAN pohranjuju se kao INTEGERS s vrijednostima 0 (kao false) ili 1 (kao true).

Pohranjivanje SQLite datuma i vremena:

U SQLiteu možete deklarirati datum ili vrijeme koristeći jedan od sljedećih tipova podataka:

  • DATUM
  • DATUM VRIJEME
  • VREMENSKI KAMP
  • VRIJEME

Imajte na umu da u SQLiteu ne postoji zasebna DATE ili DATETIME klasa za pohranu. Umjesto toga, sve vrijednosti deklarirane s jednim od prethodnih tipova podataka pohranjuju se u klasi pohrane, ovisno o formatu datuma umetnute vrijednosti, kako slijedi:

  • TEKST - ako ste vrijednost datuma umetnuli u format niza ISO8601 ("GGGG-MM-DD HH: MM: SS.SSS").
  • STVARNO - ako ste datumsku vrijednost umetnuli u julijanske brojeve dana, broj dana od podneva u Greenwichu 24. studenoga 4714. pne. Tada bi datumska vrijednost bila spremljena kao STVARNA.
  • INTEGER kao Unix vrijeme, broj sekundi od 1970-01-01 00:00:00 UTC.

Sažetak:

SQLite podržava širok raspon tipova podataka. Ali, istodobno je vrlo fleksibilan u pogledu tipova podataka. U bilo koju vrstu podataka možete staviti bilo koju vrstu vrijednosti. SQLite je također predstavio neke nove koncepte u vrstama podataka poput afiniteta tipova i klasa pohrane, za razliku od ostalih sustava za upravljanje bazama podataka.