Типове данни на SQLite с пример

Съдържание:

Anonim

Типовете данни в SQLite са различни в сравнение с друга система за управление на база данни. В SQLite можете да декларирате типове данни нормално, но все пак можете да съхранявате всяка стойност във всеки тип данни.

В този урок ще научите -

  • Класове за съхранение
  • Тип на афинитет
  • Примери за съхраняване на типове данни в SQLite

SQLite се въвежда по-малко. Няма типове данни, можете да съхранявате всякакъв вид данни, които харесвате, във всяка колона. Това се нарича динамични типове.

В статичните типове, както и в други системи за управление на база данни, ако сте декларирали колона с цяло число от тип данни, можете да вмъквате само стойности на цяло число от тип данни. Въпреки това, при динамични типове като в SQLite, типът на колоната се определя от вмъкнатата стойност. И тогава SQLite съхранява тази стойност в зависимост от нейния тип.

Класове за съхранение на SQLite

В SQLite има различни методи за съхранение в зависимост от вида на стойността, тези различни методи за съхранение се наричат ​​класове за съхранение в SQLite.

По-долу са наличните класове за съхранение в SQLite:

  • NULL - този клас за съхранение се използва за съхраняване на всяка NULL стойност.
  • INTEGER - всяка цифрова стойност се съхранява като подписана цяло число (може да съдържа както положителни, така и отрицателни цели числа). Стойностите INTEGER в SQLite се съхраняват в 1, 2, 3, 4, 6 или 8 байта съхранение в зависимост от стойността на числото.
  • REAL - този клас за съхранение се използва за съхраняване на стойностите с плаваща запетая и те се съхраняват в 8-байтово хранилище.
  • ТЕКСТ - съхранява текстови низове. Той също така поддържа различно кодиране като UTF-8, UTF-16 BE или UTF-26LE.
  • BLOB - използва се за съхраняване на големи файлове, като изображения или текстови файлове. Стойността се съхранява като масив от байтове, същото като входната стойност.

Тип на афинитет на SQLite

Тип афинитет е препоръчителният тип данни, съхранявани в колона. Все пак можете да съхранявате какъвто и да е тип данни, както желаете, препоръчва се тези типове да не се изискват.

Тези типове бяха въведени в SQLite, за да максимизират съвместимостта между SQLite и друга система за управление на база данни.

На всяка колона, декларирана в база данни на SQLite, се присвоява афинитет на типа в зависимост от декларирания тип данни. Ето лифта на афинитетите на типа в SQLite:

  • ТЕКСТ.
  • ЧИСЛЕНО.
  • ИНТЕГЪР.
  • ИСТИНСКИ.
  • BLOB.

Ето как SQLite определя афинитета на колоната от декларирания й тип данни:

  1. INTEGER афинитет се присвоява, ако декларираният тип съдържа низ " INT ".
  2. Афинитет на TEXT се присвоява, ако колоната съдържа в своя тип данни един от следните низове „ TEXT “, „ CHAR или„ CLOB ". Например на типа VARCHAR ще бъде присвоен афинитет TEXT.
  3. BLOB афинитет се присвоява, ако в колоната няма определен тип или типът данни е BLOB.
  4. РЕАЛЕН афинитет се присвоява, ако типът съдържа един от следните низове „ DOUB “, „ REAL или„ FLOAT “.
  5. NUMERIC афинитет се присвоява за всеки друг тип данни.

На същата страница има и таблица, показваща някои примери за картографиране между типовете данни на SQLite и техните афинитети, определени от тези правила:

Примери за съхранение на типове данни в SQLite:

Съхраняване на номер с SQLite цяло число:

Всяка колона от тип данни съдържа думата "INT", ще й бъде присвоена афинитет на тип INTEGER. Той ще се съхранява в клас за съхранение INTEGER.

Всички следните типове данни се присвояват като афинитет на тип INTEGER:

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, СРЕДЕН INT.

Афинитетът на INTEGER тип в SQLite може да съдържа всяко присвоено цяло число (положително или отрицателно) от 1 байт до максимум 8 байта.

Съхраняване на номера с SQLite REAL:

ИСТИНСКИТЕ числа са числото с двойна точност с плаваща запетая. SQLite съхранява реални числа като масив от 8 байта. Ето списъка с типовете данни в SQLite, които можете да използвате за съхраняване на РЕАЛНИ номера:

  • ИСТИНСКИ.
  • ДВОЙНА.
  • ДВОЙНА ТОЧНОСТ.
  • ПЛАВА.

Съхраняване на големи данни с SQLite BLOB:

Има само един начин за съхраняване на големи файлове в база данни на SQLite и той използва типа данни BLOB. Този тип данни се използва за съхраняване на големи файлове като изображения, файлове (от всякакъв тип) и т.н. Файлът се преобразува в масив от байтове и след това се съхранява в същия размер като входния файл.

Съхраняване на SQLite Booleans:

SQLite няма отделен клас за съхранение BOOLEAN. Стойностите на BOOLEAN обаче се съхраняват като INTEGERS със стойности 0 (като false) или 1 (като true).

Съхраняване на дати и часове на SQLite:

Можете да декларирате дата или време в SQLite, като използвате един от следните типове данни:

  • ДАТА
  • ВРЕМЕ ЗА СРЕЩА
  • TIMESTAMP
  • ВРЕМЕ

Имайте предвид, че в SQLite няма отделен клас за съхранение на DATE или DATETIME. Вместо това всички стойности, декларирани с един от предишните типове данни, се съхраняват в клас на съхранение в зависимост от формата на датата на вмъкнатата стойност, както следва:

  • ТЕКСТ - ако сте въвели стойността на датата във формата на низа ISO8601 („ГГГГ-ММ-ДД ЧЧ: ММ: SS.SSS“).
  • ИСТИНСКИ - ако сте вмъкнали стойността на датата в числата на джулианските дни, броят дни от обяд в Гринуич на 24 ноември 4714 г. пр. Н. Е. Тогава стойността на датата ще се съхранява като РЕАЛНА.
  • INTEGER като Unix Time, броят на секундите от 1970-01-01 00:00:00 UTC.

Резюме:

SQLite поддържа широк спектър от типове данни. Но в същото време е много гъвкав по отношение на типовете данни. Можете да поставите всеки тип стойност във всеки тип данни. SQLite също така въведе някои нови концепции в типовете данни като афинитет на типа и класове за съхранение, за разлика от други системи за управление на бази данни.