SQLite Типове данни с пример: Int, Text, Numeric, Real, Blob

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

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

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

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

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

Следват класовете за съхранение, налични в SQLite:

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

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

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

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

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

  • ТЕКСТ.
  • ЧИСЛО.
  • ЦЯЛО ЧИСЛО.
  • ИСТИНСКИ.
  • BLOB.

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

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

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

SQLite Тип афинитет
Картографиране между SQLite типове данни и афинитети

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

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

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

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

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

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

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

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

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

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

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

Съхранение SQLite Booleans

SQLite няма отделен клас за съхранение BOOLEAN. ЛОГИЧЕСКИТЕ стойности обаче се съхраняват като ЦЕЛИ ЧИСЛА със стойности 0 (като невярно) или 1 (като истина).

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

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

  • ДАННИ
  • ВРЕМЕ ЗА СРЕЩА
  • КЛАПОТО ЗА ЧАС
  • ВРЕМЕ

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

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

Oбобщение

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