SQLite Typy danych: Int, Tekst, Numeryczne, Rzeczywiste, Blob
โก Inteligentne podsumowanie
SQLite typy danych dziaลajฤ inaczej niลผ inne bazy danych, poniewaลผ SQLite uลผywa dynamicznego typing, przechowujฤ c dowolnฤ wartoลฤ w dowolnej kolumnie. Klasy pamiฤci masowej, powinowactwo typรณw i zadeklarowane nazwy typรณw razem okreลlajฤ sposรณb fizycznego zapisywania kaลผdej wartoลci na dysku.

Poniลผsze sekcje wyjaลniajฤ , jak SQLite zajmuje siฤ typami danych, zaczynajฤ c od piฤciu klas pamiฤci masowej, nastฤpnie powinowactwem typรณw i zasadami ich przypisywania, a na koลcu omawia przykลady przechowywania liczb caลkowitych, liczb rzeczywistych, obiektรณw BLOB, wartoลci logicznych i dat.
Typy danych w SQLite rรณลผniฤ siฤ od tych w innych systemach zarzฤ dzania bazami danych. W SQLite, moลผesz deklarowaฤ typy danych normalnie, ale nadal moลผesz przechowywaฤ dowolnฤ wartoลฤ w dowolnym typie danych.
SQLite Jest beztypowy. Nie ma staลych typรณw danych; moลผesz przechowywaฤ dowolny typ danych w dowolnej kolumnie. Nazywa siฤ to dynamicznym typem.ping.
W typach statycznych, podobnie jak w innych systemach zarzฤ dzania bazami danych, jeลli zadeklarujesz kolumnฤ z typem danych integer, moลผesz wstawiaฤ tylko wartoลci typu integer. Jednak w typach dynamicznych, takich jak SQLite, typ kolumny jest okreลlany przez wprowadzonฤ wartoลฤ, a nastฤpnie SQLite przechowuje tฤ wartoลฤ w zaleลผnoลci od jej typu.
SQLite Klasy pamiฤci
In SQLite Istniejฤ rรณลผne metody przechowywania w zaleลผnoลci od typu wartoลci; te rรณลผne metody przechowywania nazywane sฤ klasami przechowywania SQLite.
Poniลผej przedstawiono klasy pamiฤci masowej dostฤpne w SQLite:
- NULL โ ta klasa pamiฤci sลuลผy do przechowywania dowolnej wartoลci NULL.
- LICZBA CAลKOWITA โ kaลผda wartoลฤ liczbowa jest przechowywana jako liczba caลkowita ze znakiem (moลผe zawieraฤ zarรณwno dodatnie, jak i ujemne wartoลci caลkowite). Wartoลci INTEGER w SQLite sฤ przechowywane w pamiฤci o pojemnoลci 1, 2, 3, 4, 6 lub 8 bajtรณw, w zaleลผnoลci od wartoลci liczby.
- Niezaleลผne โ ta klasa pamiฤci masowej sลuลผy do przechowywania wartoลci zmiennoprzecinkowych. Sฤ one przechowywane w 8 bajtach pamiฤci masowej.
- TEKST โ przechowuje ciฤ gi tekstowe. Obsลuguje rรณwnieลผ rรณลผne kodowania, takie jak UTF-8, UTF-16BE lub UTF-16LE.
- KROPELKA โ sลuลผy do przechowywania duลผych plikรณw, takich jak obrazy czy pliki tekstowe. Wartoลฤ jest przechowywana jako tablica bajtรณw, tak samo jak wartoลฤ wejลciowa.
SQLite Typ powinowactwa
Powinowactwo typรณw to zalecany typ danych przechowywanych w kolumnie. Moลผesz jednak przechowywaฤ dowolny typ danych, jaki chcesz; typy te sฤ zalecane, a nie wymagane.
Typy te zostaลy wprowadzone w SQLite aby zmaksymalizowaฤ kompatybilnoลฤ pomiฤdzy SQLite i inne system zarzฤ dzania bazฤ danychs.
Dowolna kolumna zadeklarowana w pliku an SQLite Baza danych ma przypisane powinowactwo typu w zaleลผnoลci od zadeklarowanego typu danych. Oto lista powinowactw typu w SQLite:
- TEKST.
- NUMERYCZNE.
- LICZBA CAลKOWITA.
- PRAWDZIWY.
- KROPELKA.
Oto jak SQLite okreลla powinowactwo kolumny na podstawie zadeklarowanego typu danych:
- Powinowactwo INTEGER jest przypisywane, jeลli zadeklarowany typ zawiera ciฤ g โINTโ.
- Powinowactwo TEXT jest przypisywane, jeลli kolumna zawiera w swoim typie danych jeden z nastฤpujฤ cych ciฤ gรณw: โTEXTโ, โCHARโ lub โCLOBโ. Na przykลad, typowi VARCHAR zostanie przypisane powinowactwo TEXT.
- Powinowactwo BLOB jest przypisywane, jeลli kolumna nie ma okreลlonego typu lub typ danych to BLOB.
- Powinowactwo REAL jest przypisywane, jeลผeli typ zawiera jeden z nastฤpujฤ cych ciฤ gรณw: โDOUBโ, โREALโ lub โFLOATโ.
- Powinowactwo NUMERIC jest przypisane do dowolnego innego typu danych.
Poniลผej znajduje siฤ rรณwnieลผ tabela przedstawiajฤ ca przykลady mapping pomiฤdzy SQLite typy danych i ich powinowactwa okreลlone przez te zasady:
Przykลady przechowywania typรณw danych w SQLite
Przechowywanie liczb za pomocฤ SQLite LICZBA CAลKOWITA
Jeลli jakakolwiek kolumna ma typ danych zawierajฤ cy sลowo โINTโ, zostanie mu przypisane powinowactwo typu INTEGER. Zostanie ono zapisane w klasie pamiฤci INTEGER.
Wszystkim nastฤpujฤ cym typom danych przypisane jest powinowactwo typu INTEGER:
- CAลKOWITA, LICZBA CAลKOWITA, DUลปY CAลKOWITY.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUMINT.
Powinowactwo typu INTEGER w SQLite moลผe przechowywaฤ dowolnฤ przypisanฤ liczbฤ caลkowitฤ (dodatniฤ lub ujemnฤ ) od 1 bajtu do maksymalnie 8 bajtรณw.
Przechowywanie liczb za pomocฤ SQLite Niezaleลผne
Liczby RZECZYWISTE to liczby o podwรณjnej precyzji zmiennoprzecinkowej. SQLite Przechowuje liczby rzeczywiste jako tablicฤ 8-bajtowฤ . Oto lista typรณw danych w SQLite ktรณrego moลผna uลผywaฤ do przechowywania liczb RZECZYWISTYCH:
- PRAWDZIWY.
- PODWรJNIE.
- PODWรJNA PRECYZJA.
- PLATFORMA.
Przechowywanie duลผych danych za pomocฤ SQLite KROPELKA
Istnieje tylko jeden sposรณb przechowywania duลผych plikรณw w SQLite Baza danych korzysta z typu danych BLOB. Ten typ danych sลuลผy do przechowywania duลผych plikรณw, takich jak obrazy lub pliki dowolnego typu. Plik jest konwertowany na tablicฤ bajtรณw, a nastฤpnie przechowywany w tym samym rozmiarze co plik wejลciowy.
Przechowywanie SQLite Booleans
SQLite nie ma osobnej klasy pamiฤci BOOLEAN. Zamiast tego wartoลci BOOLEAN sฤ przechowywane jako liczby caลkowite, gdzie 0 oznacza faลsz, a 1 prawdฤ.
Przechowywanie SQLite daty i godziny
Moลผesz deklarowaฤ daty lub daty i godziny w SQLite uลผywajฤ c jednego z nastฤpujฤ cych typรณw danych:
- DATA
- DATA GODZINA
- ZNAK CZASU
- CZAS
Naleลผy pamiฤtaฤ, ลผe w tym modelu nie ma osobnej klasy pamiฤci DATE ani DATETIME. SQLiteZamiast tego wszelkie wartoลci zadeklarowane przy uลผyciu jednego z poprzednich typรณw danych sฤ przechowywane w klasie pamiฤci masowej, w zaleลผnoลci od formatu daty wstawionej wartoลci, w nastฤpujฤ cy sposรณb:
- TEKST โ jeลli wprowadzisz wartoลฤ daty w formacie ciฤ gu ISO8601 (โRRRR-MM-DD GG:MM:SS.SSSโ).
- Niezaleลผne โ jeลli wprowadzisz wartoลฤ daty jako liczbฤ dni w kalendarzu juliaลskim, czyli liczbฤ dni od poลudnia w Greenwich 24 listopada 4714 r. p.n.e. Wartoลฤ daty zostanie wรณwczas zapisana jako liczba RZECZYWISTA.
- LICZBA CAลKOWITA - tak jak Unix Czas, liczba sekund od 1970-01-01 00:00:00 UTC.

