SQLite Tipovi podataka: cijeli broj, tekst, broj, stvarni broj, blob
โก Pametni saลพetak
SQLite tipovi podataka rade drugaฤije od drugih baza podataka jer SQLite koristi dinamiฤki typing, pohranjujuฤi bilo koju vrijednost u bilo koji stupac. Klase pohrane, afinitet tipa i deklarirana imena tipova zajedno odreฤuju kako se svaka vrijednost fiziฤki sprema na disk.

U donjim odjeljcima objaลกnjeno je kako SQLite obraฤuje tipove podataka, poฤevลกi s pet klasa pohrane, zatim afinitet tipova i njihova pravila dodjeljivanja, te na kraju obradio primjere pohrane cijelih brojeva, realnih brojeva, BLOB-ova, logiฤkih vrijednosti i datuma.
Vrste podataka u SQLite razlikuju se od onih u drugim sustavima za upravljanje bazama podataka. U SQLite, moลพete deklarirati tipove podataka normalno, ali i dalje moลพete pohraniti bilo koju vrijednost u bilo koji tip podataka.
SQLite je bez tipa. Ne postoje fiksni tipovi podataka; moลพete pohraniti bilo koju vrstu podataka u bilo koji stupac. To se naziva dinamiฤki tip.ping.
U statiฤkim tipovima, kao i u drugim sustavima za upravljanje bazama podataka, ako deklarirate stupac s tipom podataka integer, moลพete umetnuti samo vrijednosti tipa podataka integer. Meฤutim, u dinamiฤkim tipovima, kao u SQLite, tip stupca odreฤen je umetnutom vrijednoลกฤu, a zatim SQLite pohranjuje tu vrijednost ovisno o vrsti.
SQLite Klase skladiลกtenja
In SQLite Postoje razliฤite metode pohrane ovisno o vrsti vrijednosti; te razliฤite metode pohrane nazivaju se klasama pohrane u SQLite.
Sljedeฤe su klase pohrane dostupne u SQLite:
- NULL โ ova klasa pohranjivanja koristi se za pohranjivanje bilo koje NULL vrijednosti.
- CIJELI โ bilo koja numeriฤka vrijednost pohranjuje se kao predznaฤena cjelobrojna vrijednost (moลพe sadrลพavati i pozitivne i negativne cjelobrojne vrijednosti). CIJELI broj 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 pohranu vrijednosti s pomiฤnim zarezom, a one se pohranjuju u 8 bajtova memorije.
- TEKST โ pohranjuje tekstualne nizove. Takoฤer podrลพava razliฤita kodiranja poput UTF-8, UTF-16BE ili UTF-16LE.
- BLOB โ koristi se za pohranu velikih datoteka, poput slika ili tekstualnih datoteka. Vrijednost se pohranjuje kao niz bajtova, isto kao i ulazna vrijednost.
SQLite Vrsta afiniteta
Afinitet tipa je preporuฤena vrsta podataka pohranjenih u stupcu. Meฤutim, i dalje moลพete pohraniti bilo koju vrstu podataka kako ลพelite; ove vrste su preporuฤene, a ne obavezne.
Ove su vrste uvedene u SQLite kako bi se maksimizirala kompatibilnost izmeฤu SQLite te druge sustav za upravljanje bazama podatakas.
Svaki stupac deklariran u SQLite Bazi podataka se dodjeljuje afinitet tipa ovisno o deklariranom tipu podataka. Evo popisa afiniteta tipa u SQLite:
- TEKST.
- NUMERIฤKI.
- CIJELI BROJ.
- STVARAN.
- BLOB.
Evo kako SQLite odreฤuje afinitet stupca na temelju njegovog deklariranog tipa podataka:
- INTEGER afinitet se dodjeljuje ako deklarirani tip sadrลพi niz "INT".
- Afinitet tipa TEXT dodjeljuje se ako stupac u svom tipu podataka sadrลพi jedan od sljedeฤih nizova znakova: โTEXTโ, โCHARโ ili โCLOBโ. Na primjer, tipu VARCHAR dodjeljuje se afinitet tipa TEXT.
- BLOB afinitet se dodjeljuje ako stupac nema naveden tip ili je tip podataka BLOB.
- Afinitet tipa REAL dodjeljuje se ako tip sadrลพi jedan od sljedeฤih nizova znakova: โDOUBโ, โREALโ ili โFLOATโ.
- NUMERIC afinitet se dodjeljuje za bilo koju drugu vrstu podataka.
U nastavku je i tablica koja prikazuje neke primjere karteping izmeฤu SQLite tipovi podataka i njihovi afiniteti odreฤeni ovim pravilima:
Primjeri pohranjivanja vrsta podataka u SQLite
Pohranjivanje brojeva sa SQLite CIJELI
Ako bilo koji stupac ima tip podataka koji sadrลพi rijeฤ "INT", bit ฤe mu dodijeljen afinitet tipa INTEGER. Bit ฤe pohranjen u INTEGER klasi pohrane.
Svim sljedeฤim tipovima podataka dodijeljen je afinitet tipa INTEGER:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- MALI, SITNIฤKI, SREDNJI.
INTEGER afinitet tipa u SQLite moลพe sadrลพavati bilo koji dodijeljeni cijeli broj (pozitivan ili negativan) od 1 bajta do maksimalno 8 bajtova.
Pohranjivanje brojeva sa SQLite STVARAN
REALNI brojevi su brojevi s dvostrukom preciznoลกฤu u pomiฤnim zarezom. SQLite pohranjuje realne brojeve kao 8-bajtni niz. Evo popisa tipova 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 za pohranjivanje velikih datoteka u SQLite baza podataka, a koja koristi tip podataka BLOB. Ovaj tip podataka koristi se za pohranu velikih datoteka poput slika ili datoteka bilo koje vrste. Datoteka se pretvara u niz bajtova, a zatim pohranjuje u istoj veliฤini kao i ulazna datoteka.
Spremanje SQLite logiฤke
SQLite nema zasebnu klasu pohrane BOOLEAN. Umjesto toga, BOOLEAN vrijednosti se pohranjuju kao CIJELI BROJ, gdje 0 predstavlja laลพno, a 1 istinito.
Spremanje SQLite datumi i vremena
Moลพete deklarirati datume ili datume i vremena u SQLite pomoฤu jedne od sljedeฤih vrsta podataka:
- INFORMACIJE
- DATUM VRIJEME
- VREMENSKI KAMP
- VRIJEME
Imajte na umu da ne postoji zasebna klasa pohrane DATE ili DATETIME u SQLiteUmjesto 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 umetnete vrijednost datuma u formatu niza ISO8601 (โGGGG-MM-DD HH:MM:SSSโ).
- STVARAN โ ako unesete vrijednost datuma kao julijanski broj dana, broj dana od podneva u Greenwichu 24. studenog 4714. pr. Kr. Vrijednost datuma tada se pohranjuje kao REALNA vrijednost.
- CIJELI โ kao Unix Vrijeme, broj sekundi od 1970-01-01 00:00:00 UTC.

