SQLite Типы данных

Тип данных SQLite — это атрибут, который определяет тип данных для любого объекта. Каждый столбец, переменная и выражение в SQLite имеют связанный тип данных.

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

Классы хранения SQLite

Каждое значение, хранящееся в базе данных SQLite, имеет один из следующих классов хранения:

Класс храненияОписание
NULLЗначение является значением NULL.
INTEGERЗначение является знаковым целым числом, хранящимся в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.
REALЗначение является значением с плавающей запятой, хранящимся как 8-байтовое число с плавающей запятой IEEE.
TEXTЗначение является текстовой строкой, хранящейся с использованием кодировки базы данных (UTF-8, UTF-16BE или UTF-16LE).
BLOBЗначение представляет собой blob-данные, хранящиеся точно так, как они были введены.

Классы хранения SQLite немного более общие, чем типы данных. Например, класс хранения INTEGER включает 6 различных целочисленных типов данных разной длины.

Типы сродства SQLite

SQLite поддерживает понятие сродства типов для столбцов. Любой столбец по-прежнему может хранить любой тип данных; при вставке данных данные поля будут преимущественно использовать тип сродства в качестве способа хранения этого значения. Текущая версия SQLite поддерживает следующие пять типов сродства:

Тип сродстваОписание
TEXTЧисловые данные необходимо преобразовать в текстовый формат перед вставкой, а затем вставить в целевое поле.
NUMERICКогда текстовые данные вставляются в поле со сродством NUMERIC, если операция преобразования не приводит к потере информации о данных и полностью обратима, SQLite преобразует текстовые данные в данные типа INTEGER или REAL. Если преобразование не удается, SQLite все равно сохранит данные как TEXT. Для новых данных типа NULL или BLOB SQLite не выполняет никаких преобразований и сохраняет данные непосредственно как NULL или BLOB. Дополнительно следует отметить, что для константного текста в формате с плавающей запятой, например "30000.0", если значение можно преобразовать в INTEGER без потери числовой информации, SQLite преобразует его для хранения как INTEGER.
INTEGERДля полей со сродством INTEGER правила такие же, как для NUMERIC, с единственным отличием при выполнении выражений CAST.
REALЕго правила в основном такие же, как для NUMERIC, с единственным отличием: текстовые данные, такие как "30000.0", не будут преобразованы для хранения как INTEGER.
NONEПреобразование не выполняется; данные сохраняются непосредственно в своем собственном типе данных.

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

В следующей таблице перечислены различные имена типов данных, которые можно использовать при создании таблиц SQLite3, а также показаны соответствующие типы сродства:

Тип данныхТип сродства
  • INT

  • INTEGER

  • TINYINT

  • SMALLINT

  • MEDIUMINT

  • BIGINT

  • UNSIGNED BIG INT

  • INT2

  • INT8

INTEGER
  • CHARACTER(20)

  • VARCHAR(255)

  • VARYING CHARACTER(255)

  • NCHAR(55)

  • NATIVE CHARACTER(70)

  • NVARCHAR(100)

  • TEXT

  • CLOB

TEXT
  • BLOB

  • Неопределенный тип

BLOB
  • REAL

  • DOUBLE

  • DOUBLE PRECISION

  • FLOAT

REAL
  • NUMERIC

  • DECIMAL(10,5)

  • BOOLEAN

  • DATE

  • DATETIME

NUMERIC

Логический тип данных

SQLite не имеет отдельного класса хранения Boolean. Вместо этого значения Boolean хранятся как целые числа 0 (false) и 1 (true).

Тип данных даты и времени

SQLite не имеет отдельного класса хранения для хранения дат и/или времени, но SQLite может хранить даты и время как значения TEXT, REAL или INTEGER.

Класс храненияФормат даты
TEXTДата в формате "YYYY-MM-DD HH:MM:SS.SSS".
REALКоличество дней с полудня по среднему времени Гринвича 24 ноября 4714 г. до н. э.
INTEGERКоличество секунд с 1970-01-01 00:00:00 UTC.

Вы можете хранить даты и время в любом из вышеперечисленных форматов и использовать встроенные функции даты и времени для свободного преобразования между различными форматами.

Другие расширения