Typy danych SQLite z przykładem

Spisie treści:

Anonim

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.

W tym samouczku nauczysz się:

  • Klasy pamięci
  • Typ podobieństwa
  • Przykłady przechowywania typów danych w SQLite

SQLite jest wpisywane mniej. Nie ma typów danych, możesz przechowywać dowolne typy 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 liczbą całkowitą, możesz wstawić tylko wartości typu integer. Jednak w typach dynamicznych, takich jak SQLite, typ kolumny jest określany przez wstawioną wartość. Następnie SQLite przechowuje tę wartość w zależności od jej typu.

Klasy pamięci masowej SQLite

W SQLite istnieją różne metody przechowywania w zależności od typu wartości, te różne metody przechowywania w SQLite nazywane są klasami pamięci.

Poniżej przedstawiono klasy pamięci dostępne w SQLite:

  • NULL - ta klasa pamięci służy do przechowywania dowolnej wartości NULL.
  • INTEGER - dowolna wartość liczbowa jest przechowywana jako liczba całkowita ze znakiem (może zawierać zarówno dodatnie, jak i ujemne liczby całkowite). Wartości INTEGER w SQLite są przechowywane w 1, 2, 3, 4, 6 lub 8 bajtach pamięci, w zależności od wartości liczby.
  • REAL - 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.
  • BLOB - 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.

Typ koligacji SQLite

Koligacja typu to zalecany typ danych przechowywanych w kolumnie. Jednak nadal możesz przechowywać dowolne typy danych, jak chcesz, te typy są zalecane, a nie wymagane.

Te typy zostały wprowadzone w SQLite, aby zmaksymalizować kompatybilność między SQLite a innym systemem zarządzania bazami danych.

Każda kolumna zadeklarowana w bazie danych SQLite ma przypisane powinowactwo do typu w zależności od zadeklarowanego typu danych. Oto różnica podobieństw typów w SQLite:

  • TEKST.
  • NUMERYCZNE.
  • LICZBA CAŁKOWITA.
  • REAL.
  • 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 przypisane, jeśli kolumna zawiera w swoim typie danych jeden z następujących ciągów „ TEXT ”, „ CHAR lub„ CLOB ”. Na przykład, typ VARCHAR będzie miał 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 ”, „ REAL ” lub „ FLOAT ”.
  5. Koligacja NUMERIC jest przypisywana do każdego innego typu danych.

Na tej samej stronie znajduje się również tabela pokazująca przykłady mapowania między typami danych SQLite i ich podobieństwami określonymi przez następujące reguły:

Przykłady przechowywania typów danych w SQLite:

Zapisywanie liczby za pomocą SQLite integer:

Każda kolumna typu danych zawiera słowo „INT”, zostanie mu przypisane powinowactwo do typu INTEGER. Będzie przechowywany w klasie pamięci INTEGER.

Wszystkie następujące typy danych są przypisywane jako koligacja typu INTEGER:

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUM INT.

Koligacja typu INTEGER w SQLite może pomieścić dowolną przypisaną liczbę całkowitą (dodatnią lub ujemną) od 1 bajtu do maksymalnie 8 bajtów.

Przechowywanie liczb w SQLite REAL:

Liczby RZECZYWISTE to liczby o podwójnej precyzji zmiennoprzecinkowej. SQLite zapisał liczby rzeczywiste jako tablicę 8-bajtową. Oto lista typów danych w SQLite, których możesz użyć do przechowywania RZECZYWISTYCH liczb:

  • REAL.
  • PODWÓJNIE.
  • PODWÓJNA PRECYZJA.
  • PŁYWAK.

Przechowywanie dużych danych za pomocą SQLite BLOB:

Istnieje tylko jeden sposób przechowywania dużych plików w bazie danych SQLite i wykorzystuje typ danych BLOB. Ten typ danych jest używany 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 takim samym rozmiarze jak plik wejściowy.

Przechowywanie wartości logicznych SQLite:

SQLite nie ma oddzielnej klasy pamięci BOOLEAN. Jednak wartości typu BOOLEAN są przechowywane jako INTEGERS z wartościami 0 (jako fałsz) lub 1 (jako prawda).

Przechowywanie dat i godzin SQLite:

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

  • DATA
  • DATETIME
  • ZNAK CZASU
  • CZAS

Zauważ, że w SQLite nie ma oddzielnej klasy pamięci typu DATE lub DATETIME. Zamiast tego wszelkie wartości zadeklarowane z jednym z poprzednich typów danych są przechowywane w klasie pamięci w zależności od formatu daty wstawionej wartości w następujący sposób:

  • TEKST - jeśli wstawiłeś wartość daty w formacie ciągu ISO8601 („RRRR-MM-DD GG: MM: SS.SSS”).
  • REAL - jeśli wstawisz wartość daty w liczbach dni juliańskich, liczba dni od południa w Greenwich 24 listopada 4714 rpne Wtedy wartość daty zostanie zapisana jako RZECZYWISTA.
  • INTEGER jako czas uniksowy, 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 dotyczące typów danych, takich jak koligacja typów i klasy pamięci, w przeciwieństwie do innych systemów zarządzania bazami danych.