Типы данных в 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 определяет родство столбца по объявленному типу данных:
- Сходство 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.
- ИНТ2, ИНТ4, ИНТ8.
- ТИНИИНТ, МАЛЕНЬКИЙ, СРЕДНИЙ ИНТ.
Сходство типа INTEGER в SQLite может содержать любое назначенное целое число (положительное или отрицательное) от 1 байта до максимум 8 байтов.
Сохранение чисел с помощью SQLite REAL:
REAL числа - это числа с двойной точностью с плавающей запятой. SQLite хранит действительные числа в виде массива из 8 байтов. Вот список типов данных в SQLite, которые вы можете использовать для хранения РЕАЛЬНЫХ чисел:
- НАСТОЯЩИЙ.
- ДВОЙНОЙ.
- ДВОЙНАЯ ТОЧНОСТЬ.
- ПЛАВАТЬ.
Хранение больших данных с помощью SQLite BLOB:
Есть только один способ хранить большие файлы в базе данных SQLite - использовать тип данных BLOB. Этот тип данных используется для хранения больших файлов, таких как изображения, файлы (любого типа) и т. Д. Файл конвертируется в массив байтов и затем сохраняется в том же размере, что и входной файл.
Хранение логических значений SQLite:
SQLite не имеет отдельного класса хранения BOOLEAN. Однако значения BOOLEAN хранятся как INTEGERS со значениями 0 (как ложь) или 1 (как истина).
Сохранение даты и времени SQLite:
Вы можете объявить дату или время в SQLite, используя один из следующих типов данных:
- ДАТА
- ДАТА ВРЕМЯ
- TIMESTAMP
- ВРЕМЯ
Обратите внимание, что в SQLite нет отдельного класса хранения DATE или DATETIME. Вместо этого любые значения, объявленные с одним из предыдущих типов данных, сохраняются в классе хранения в зависимости от формата даты вставленного значения следующим образом:
- ТЕКСТ - если вы вставили значение даты в формате строки ISO8601 («ГГГГ-ММ-ДД ЧЧ: ММ: SS.SSS»).
- REAL - если вы вставили значение даты в числа юлианских дней, количество дней, прошедших с полудня по Гринвичу 24 ноября 4714 г. до н.э., тогда значение даты будет сохранено как REAL.
- INTEGER как время Unix, количество секунд с 1970-01-01 00:00:00 UTC.
Резюме:
SQLite поддерживает широкий спектр типов данных. Но в то же время он очень гибок в отношении типов данных. Вы можете поместить любой тип значения в любой тип данных. В отличие от других систем управления базами данных, SQLite также представил некоторые новые концепции в типах данных, таких как сродство типов и классы хранения.