SQLite Typy danych z przykładem: Int, Text, Numeric, Real, Blob

Typy danych w SQLite różnią się od innych systemów zarządzania bazami danych. W SQLite, możesz normalnie deklarować typy danych, ale nadal możesz przechowywać dowolną wartość w dowolnym typie danych.

SQLite jest wpisywane mniej. Nie ma typów danych, możesz przechowywać dowolny typ danych w dowolnej kolumnie. Nazywa się to typami dynamicznymi.

W typach statycznych, podobnie jak w innych systemach zarządzania bazami danych, jeśli zadeklarowałeś kolumnę z typem danych integer, możesz wstawiać tylko wartości typu danych integer. Jednak w typach dynamicznych, takich jak in SQLite, typ kolumny zależy od wstawionej wartości. I wtedy 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 rodzaju 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 – dowolna wartość liczbowa jest zapisywana jako wartość 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 służy do przechowywania wartości zmiennoprzecinkowych i są one przechowywane w 8-bajtowej pamięci.
  • TEKST – przechowuje ciągi tekstowe. Obsługuje również różne kodowanie, takie jak UTF-8, UTF-16 BE lub UTF-26LE.
  • KROPELKA – służy do przechowywania dużych plików, takich jak obrazy lub pliki tekstowe. Wartość jest przechowywana jako tablica bajtów, taka sama jak wartość wejściowa.

SQLite Typ powinowactwa

Powinowactwo typu to zalecany typ danych przechowywanych w kolumnie. Jednakże nadal możesz przechowywać dowolny typ danych, według własnego uznania. Zaleca się, aby te typy nie były wymagane.

Typy te zostały wprowadzone w SQLite aby zmaksymalizować kompatybilność pomiędzy SQLite i inne system zarządzania bazą danych.

Dowolna kolumna zadeklarowana w pliku an SQLite bazie danych przypisuje się powinowactwo typu w zależności od zadeklarowanego typu danych. Tutaj winda podobieństwa typów SQLite:

  • TEKST.
  • NUMERYCZNE.
  • LICZBA CAŁKOWITA.
  • PRAWDZIWY.
  • KROPELKA.

Oto jak SQLite określa powinowactwo kolumny na podstawie jej zadeklarowanego typu danych:

  1. Powinowactwo INTEGER jest przypisywane, jeśli zadeklarowany typ zawiera ciąg "INT".
  2. Powinowactwo TEXT jest przypisywane, jeżeli kolumna zawiera w swoim typie danych jeden z następujących ciągów „TEKST","ZWĘGLAĆlub „KLOB„. Na przykład typowi VARCHAR zostanie przypisane powinowactwo TEXT.
  3. Powinowactwo BLOB jest przypisywane, jeśli kolumna nie ma określonego typu lub typ danych to BLOB.
  4. Rzeczywiste powinowactwo jest przypisywane, jeśli typ zawiera jeden z następujących ciągów „DOUB","Niezależnelub „FLOAT".
  5. Powinowactwo NUMERIC jest przypisane do dowolnego innego typu danych.

Na tej samej stronie znajduje się również tabela przedstawiająca przykłady mapowania pomiędzy SQLite typy danych i ich powinowactwa określone przez te zasady:

SQLite Typ powinowactwa
Mapowanie między SQLite typy danych i powinowactwa

Przykłady przechowywania typów danych w SQLite

Zapisywanie numeru za pomocą SQLite liczba całkowita

Dowolna kolumna typu danych zawiera słowo „INT”, zostanie jej przypisane powinowactwo typu INTEGER. Będzie przechowywany w klasie pamięci INTEGER.

Wszystkim następującym typom danych przypisano powinowactwo typu INTEGER:

  • CAŁKOWITA, LICZBA CAŁKOWITA, DUŻY CAŁKOWITY.
  • INT2, INT4, INT8.
  • MAŁAINT, MAŁAINT, ŚREDNIA INK.

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 z podwójną precyzją zmiennoprzecinkową. SQLite przechowywane liczby rzeczywiste jako tablica 8 bajtów. 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 formacie SQLite bazy danych i używa typu danych BLOB. Ten typ danych służy do przechowywania dużych plików, takich jak obrazy, pliki (dowolnego typu) itp. Plik jest konwertowany na tablicę bajtów, a następnie zapisywany w tym samym rozmiarze co plik wejściowy.

Przechowywanie SQLite Booleans

SQLite nie ma osobnej klasy pamięci BOOLEAN. Jednakże wartości BOOLEAN są przechowywane jako liczby całkowite o wartościach 0 (jako fałsz) lub 1 (jako prawda).

Przechowywanie SQLite daty i godziny

Możesz zadeklarować datę lub datę w formacie SQLite używając jednego z następujących typów danych:

  • DATA
  • DATA GODZINA
  • ZNAK CZASU
  • CZAS

Należy pamiętać, że nie ma oddzielnej 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żeli wpisałeś wartość daty w formacie ciągu ISO8601 („RRRR-MM-DD HH:MM:SS.SSS”).
  • Niezależne – gdyby wstawić wartość daty w juliańskich liczbach dni, czyli liczbę dni od południa w Greenwich 24 listopada 4714 r. p.n.e., wówczas wartość daty zostałaby zapisana jako RZECZYWISTA.
  • LICZBA CAŁKOWITA as Unix Czas, liczba sekund od 1970-01-01 00:00:00 UTC.

Podsumowanie

SQLite obsługuje szeroką gamę typów danych. Ale jednocześnie jest bardzo elastyczny pod względem typów danych. Możesz umieścić dowolny typ wartości w dowolnym typie danych. SQLite wprowadził również nowe koncepcje typów danych, takie jak powinowactwo typów i klasy pamięci masowej, w przeciwieństwie do innych systemów zarządzania bazami danych.