Типи даних у 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.
- РЕАЛЬНА спорідненість присвоюється, якщо тип містить один із наступних рядків " DOUB ", " REAL або" FLOAT ".
- 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:
SQLite не має окремого класу зберігання BOOLEAN. Однак значення BOOLEAN зберігаються як INTEGERS зі значеннями 0 (як false) або 1 (як true).
Зберігання дат та часу SQLite:
Ви можете оголосити дату або час у SQLite, використовуючи один із таких типів даних:
- ДАТА
- ДАТА, ЧАС
- ГРАФІК
- ЧАС
Зверніть увагу, що в SQLite немає окремого класу сховища DATE або DATETIME. Натомість будь-які значення, заявлені одним із попередніх типів даних, зберігаються в класі зберігання залежно від формату дати вставленого значення таким чином:
- ТЕКСТ - якщо ви вставили значення дати у форматі рядка ISO8601 ("РРРР-ММ-ДД ЧЧ: ММ: SS.SSS").
- РЕАЛЬНЕ - якщо ви вставили значення дати в числах днів Джуліана, кількість днів з обіду в Грінвічі 24 листопада 4714 р. До н. Е. Тоді значення дати буде зберігатися як РЕАЛЬНЕ.
- INTEGER як час Unix, кількість секунд з 1970-01-01 00:00:00 UTC.
Короткий зміст:
SQLite підтримує широкий спектр типів даних. Але, в той же час, він дуже гнучкий щодо типів даних. Ви можете додати будь-який тип значення до будь-якого типу даних. SQLite також представив деякі нові концепції у типах даних, таких як спорідненість типів та класи зберігання, на відміну від інших систем управління базами даних.