SQLite Vrste podataka s primjerom: Int, Text, Numeric, Real, Blob

Vrste podataka u SQLite razlikuju se u usporedbi s drugim sustavima za upravljanje bazom podataka. U SQLite, možete normalno deklarirati tipove podataka, ali još uvijek možete pohraniti bilo koju vrijednost u bilo kojem tipu podataka.

SQLite upisuje se manje. Ne postoje vrste podataka, možete pohraniti bilo koju vrstu podataka u bilo kojem stupcu. To se zove dinamički tipovi.

U statičkim tipovima, kao i u drugim sustavima za upravljanje bazama podataka, ako ste deklarirali stupac s tipom podataka cijeli broj, možete umetnuti samo vrijednosti tipa podataka cijeli broj. Međutim, u dinamičkim tipovima poput in SQLite, vrsta stupca određena je umetnutom vrijednošću. I onda SQLite pohranjuje tu vrijednost ovisno o vrsti.

SQLite Klase skladištenja

In SQLite postoje različite metode pohrane ovisno o vrsti vrijednosti, te se različite metode pohrane nazivaju klasama pohrane SQLite.

Sljedeće su klase pohrane dostupne u SQLite:

  • NULL – ova klasa pohranjivanja koristi se za pohranjivanje bilo koje NULL vrijednosti.
  • CIJELI – svaka numerička vrijednost pohranjuje se kao cijeli broj s predznakom (može sadržavati i pozitivne i negativne vrijednosti cijelog broja). INTEGER vrijednosti u SQLite pohranjuju se u 1, 2, 3, 4, 6 ili 8 bajtova prostora za pohranu, ovisno o vrijednosti broja.
  • STVARAN – ova klasa pohrane koristi se za pohranjivanje vrijednosti s pomičnim zarezom, a one se pohranjuju u 8-bajtnu pohranu.
  • TEKST – pohranjuje tekstualne nizove. Također podržava različita kodiranja kao što su UTF-8, UTF-16 BE ili UTF-26LE.
  • BLOB – koristi se za pohranu velikih datoteka, poput slika ili tekstualnih datoteka. Vrijednost je pohranjena kao niz bajtova isto kao i ulazna vrijednost.

SQLite Vrsta afiniteta

Srodnost tipa preporučena je vrsta podataka pohranjenih u stupcu. Međutim, još uvijek možete pohraniti bilo koju vrstu podataka po želji, preporučuje se da ove vrste nisu potrebne.

Ove su vrste uvedene u SQLite kako bi se maksimizirala kompatibilnost između SQLite te druge sustav za upravljanje bazama podataka.

Svaki stupac deklariran u SQLite bazi podataka se dodjeljuje afinitet tipa ovisno o deklariranom tipu podataka. Ovdje dolazi do povećanja afiniteta tipa SQLite:

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

Evo kako SQLite određuje afinitet stupca iz njegovog deklariranog tipa podataka:

  1. INTEGER afinitet se dodjeljuje ako deklarirani tip sadrži niz "INT".
  2. TEXT afinitet se dodjeljuje ako stupac sadrži jedan od sljedećih nizova u svojoj vrsti podataka:TEKST","TENK, ili "KLOB“. Na primjer, tipu VARCHAR bit će dodijeljen afinitet TEXT.
  3. BLOB afinitet se dodjeljuje ako stupac nema naveden tip ili je tip podataka BLOB.
  4. STVARNI afinitet se dodjeljuje ako tip sadrži jedan od sljedećih nizova "DUBITI","STVARAN, ili "PLUTATI".
  5. NUMERIC afinitet se dodjeljuje za bilo koju drugu vrstu podataka.

Postoji i tablica na istoj stranici koja prikazuje neke primjere za preslikavanje između SQLite tipovi podataka i njihovi afiniteti određeni ovim pravilima:

SQLite Vrsta afiniteta
Preslikavanje između SQLite tipovi podataka i afiniteti

Primjeri pohranjivanja vrsta podataka u SQLite

Pohranjivanje broja sa SQLite cijeli

Bilo koji stupac tipa podataka sadrži riječ "INT", bit će mu dodijeljen afinitet tipa INTEGER. Bit će pohranjen u klasi pohrane INTEGER.

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

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • SITNO, MALI, SREDNJE CJELO.

INTEGER afinitet tipa u SQLite može sadržavati bilo koji dodijeljeni cijeli broj (pozitivan ili negativan) od 1 bajta do najviše 8 bajtova.

Pohranjivanje brojeva sa SQLite STVARAN

REAL brojevi su brojevi s dvostrukom preciznošću pomičnog zareza. SQLite pohranjene realne brojeve kao niz od 8 bajtova. Ovdje je popis vrsta podataka u SQLite koje možete koristiti za pohranjivanje STVARNIH brojeva:

  • STVARAN.
  • DVOSTRUKO.
  • DVOSTRUKA PRECIZNOST.
  • PLUTATI.

Pohranjivanje velikih podataka sa SQLite BLOB

Postoji samo jedan način pohranjivanja velikih datoteka u a SQLite baze podataka, a koristi 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 i zatim pohranjuje u istoj veličini kao i ulazna datoteka.

Spremanje SQLite logičke

SQLite nema zasebnu BOOLEAN klasu pohrane. Međutim, BOOLEAN vrijednosti su pohranjene kao CIJELI BROJEVI s vrijednostima 0 (kao laž) ili 1 (kao istina).

Spremanje SQLite datumi i vremena

Možete deklarirati datum ili vrijeme datuma u SQLite pomoću jedne od sljedećih vrsta podataka:

  • INFORMACIJE
  • DATUM VRIJEME
  • VREMENSKI KAMP
  • VRIJEME

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

  • TEKST – ako ste umetnuli vrijednost datuma u formatu niza ISO8601 (“GGGG-MM-DD HH:MM:SS.SSS”).
  • STVARAN – ako ste vrijednost datuma umetnuli u julijanske brojeve dana, broj dana od podneva u Greenwichu 24. studenoga 4714. pr. Kr. Tada bi vrijednost datuma bila pohranjena kao STVARNA.
  • CIJELI as Unix Vrijeme, broj sekundi od 1970-01-01 00:00:00 UTC.

Rezime

SQLite podržava širok raspon vrsta podataka. Ali, u isto vrijeme, vrlo je fleksibilan u pogledu tipova podataka. Možete staviti bilo koju vrstu vrijednosti u bilo koju vrstu podataka. SQLite također je uveo neke nove koncepte u tipovima podataka kao što su afinitet tipa i klase pohrane, za razliku od drugih sustava za upravljanje bazama podataka.