Типы данных в SQLite отличаются от других систем управления базами данных. В SQLite вы можете объявить типы данных как обычно, но вы все равно можете хранить любое значение в любом типе данных.
В этом уроке вы узнаете
SQLite набирается меньше. Типов данных нет, вы можете хранить любые данные в любом столбце. Это называется динамическими типами.
В статических типах, как и в других системах управления базами данных, если вы объявили столбец с целым числом типа данных, вы можете вставить только значения целого типа данных. Однако в динамических типах, таких как SQLite, тип столбца определяется введенным значением. И затем SQLite сохраняет это значение в зависимости от его типа.
Классы хранения SQLite
В SQLite существуют разные методы хранения в зависимости от типа значения, эти разные методы хранения называются классами хранения в SQLite.
Ниже приведены классы хранения, доступные в SQLite:
- NULL — этот класс хранения используется для хранения любого значения NULL.
- INTEGER — любое числовое значение сохраняется как целочисленное значение со знаком (может содержать как положительные, так и отрицательные целые значения). Значения INTEGER в SQLite хранятся в 1, 2, 3, 4, 6 или 8 байтах памяти в зависимости от значения числа.
- REAL — этот класс хранения используется для хранения значений с плавающей запятой, и они хранятся в 8-байтовом хранилище.
- TEXT — сохраняет текстовые строки. Он также поддерживает различные кодировки, такие как UTF-8, UTF-16 BE или UTF-26LE.
- BLOB — используется для хранения больших файлов, таких как изображения или текстовые файлы. Значение сохраняется как байтовый массив так же, как входное значение.
Тип близости SQLite
Тип соответствия — это рекомендуемый тип данных, хранящихся в столбце. Тем не менее, вы по-прежнему можете хранить любой тип данных по своему усмотрению, эти типы рекомендуется не требуется.
Эти типы были введены в SQLite для обеспечения максимальной совместимости между SQLite и другими системами управления базами данных.
Любому столбцу, объявленному в базе данных SQLite, присваивается сходство типов в зависимости от объявленного им типа данных. Вот лифт сходства типов в SQLite:
- ТЕКСТ.
- NUMERIC.
- INTEGER.
- РЕАЛЬНЫЙ.
- BLOB.
Вот как SQLite определяет сходство столбца с его объявленным типом данных:
- Сходство INTEGER назначается, если объявленный тип содержит строку « INT ».
- Сходство TEXT назначается, если столбец содержит в своем типе данных одну из следующих строк » TEXT «, » CHAR или» CLOB «. Например, типу VARCHAR будет назначено сходство TEXT.
- Сходство с BLOB назначается, если для столбца не указан тип или тип данных BLOB.
- REAL сходство назначается, если тип содержит одну из следующих строк « DOUB », « REAL или« FLOAT ».
- NUMERIC сходство назначается для любого другого типа данных.
На той же странице также есть таблица, показывающая несколько примеров для сопоставления типов данных SQLite и их сходств, определенных этими правилами:
Примеры хранения типов данных в SQLite:
Сохранение номера с целым числом SQLite:
Любой столбец типа данных содержит слово «INT», ему будет присвоено сходство типа INTEGER. Он будет храниться в классе хранения INTEGER.
Все следующие типы данных назначаются как сходство типов INTEGER:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
Сходство с типом INTEGER в SQLite может содержать любое назначенное целое число (положительное или отрицательное) от 1 байта до максимум 8 байтов.
Хранение чисел с помощью SQLite REAL:
РЕАЛЬНЫЕ числа — это числа с двойной точностью с плавающей запятой. SQLite хранит действительные числа в виде 8-байтового массива. Вот список типов данных в SQLite, которые вы можете использовать для хранения РЕАЛЬНЫХ чисел:
- РЕАЛЬНЫЙ.
- DOUBLE.
- ДВОЙНАЯ ТОЧНОСТЬ.
- FLOAT.
Хранение больших данных с помощью SQLite BLOB:
Существует только один способ хранения больших файлов в базе данных SQLite, и он использует тип данных BLOB. Этот тип данных используется для хранения больших файлов, таких как изображения, файлы (из любого типа) и т. Д. Файл преобразуется в байтовый массив и затем сохраняется в том же размере, что и входной файл.
Хранение SQLite Booleans:
SQLite не имеет отдельного класса хранения BOOLEAN. Однако BOOLEAN значения сохраняются как INTEGERS со значениями 0 (как ложь) или 1 (как истина).
Хранение даты и времени SQLite:
Вы можете объявить дату или время в SQLite, используя один из следующих типов данных:
- СВИДАНИЕ
- DATETIME
- TIMESTAMP
- ВРЕМЯ
Обратите внимание, что в SQLite нет отдельного класса хранения DATE или DATETIME. Вместо этого любые значения, объявленные с одним из предыдущих типов данных, сохраняются в классе хранения в зависимости от формата даты вставленного значения следующим образом:
- ТЕКСТ — если вы вставили значение даты в формате строки ISO8601 («ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС»).
- REAL — если вы вставили значение даты в числа юлианских дней, количество дней с полудня в Гринвиче 24 ноября 4714 г. до н.э. Тогда значение даты будет сохранено как REAL.
- INTEGER как Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.
Резюме:
SQLite поддерживает широкий спектр типов данных. Но в то же время он очень гибок в отношении типов данных. Вы можете поместить любой тип значения в любой тип данных. SQLite также ввел некоторые новые концепции в типы данных, такие как сходство типов и классы хранения, в отличие от других систем управления базами данных.