SQLite Типи даних: цілочислені, текстові, числові, дійсні, блоб-числа
⚡ Розумний підсумок
SQLite типи даних працюють інакше, ніж інші бази даних, оскільки SQLite використовує динамічний typing, зберігаючи будь-яке значення в будь-якому стовпці. Класи сховища, спорідненість типів та оголошені імена типів разом визначають, як кожне значення фізично зберігається на диску.

У розділах нижче пояснюється, як SQLite обробляє типи даних, починаючи з п'яти класів зберігання, потім спорідненість типів та правила присвоєння, і, нарешті, розглянув приклади зберігання цілих чисел, дійсних чисел, BLOB-об'єктів, булевих значень та дат.
Типи даних в SQLite відрізняються від тих, що використовуються в інших системах управління базами даних. У SQLite, ви можете оголошувати типи даних звичайним чином, але ви все ще можете зберігати будь-яке значення в будь-якому типі даних.
SQLite не має типів. Немає фіксованих типів даних; ви можете зберігати будь-який тип даних у будь-якому стовпці. Це називається динамічним типом.ping.
У статичних типах, як і в інших системах керування базами даних, якщо оголошувати стовпець із цілочисельним типом даних, можна вставляти лише значення цілочисельного типу даних. Однак у динамічних типах, як у SQLite, тип стовпця визначається вставленим значенням, а потім SQLite зберігає це значення залежно від його типу.
SQLite Класи зберігання
In SQLite Існують різні методи зберігання залежно від типу значення; ці різні методи зберігання називаються класами зберігання. SQLite.
Нижче наведено класи зберігання, доступні в SQLite:
- NULL – цей клас зберігання використовується для зберігання будь-якого значення NULL.
- INTEGER – будь-яке числове значення зберігається як ціле число зі знаком (воно може містити як додатні, так і від’ємні цілі значення). Цілі значення в SQLite зберігаються в 1, 2, 3, 4, 6 або 8 байтах пам’яті залежно від значення числа.
- НЕРУХОМІСТЬ – цей клас сховища використовується для зберігання значень з плаваючою комою, і вони зберігаються у 8 байтах сховища.
- TEXT – зберігає текстові рядки. Також підтримує різні кодування, такі як UTF-8, UTF-16BE або UTF-16LE.
- ЛИСТОК – використовується для зберігання великих файлів, таких як зображення або текстові файли. Значення зберігається як масив байтів, такий самий, як і вхідне значення.
SQLite Тип спорідненості
Спорідненість типів – це рекомендований тип даних, що зберігаються у стовпці. Однак ви все ще можете зберігати будь-який тип даних на свій розсуд; ці типи є рекомендованими, а не обов'язковими.
Ці види були введені в SQLite щоб максимізувати сумісність між SQLite та інші система управління базами данихs.
Будь-який стовпець, оголошений у an SQLite Базі даних призначається спорідненість до типу залежно від оголошеного типу даних. Ось список спорідненостей до типу в SQLite:
- ТЕКСТ.
- NUMERIC.
- ЦІЛЕ ЧИСЛО.
- РЕАЛЬНИЙ.
- BLOB.
Ось як SQLite визначає спорідненість стовпця на основі його оголошеного типу даних:
- Спорідненість INTEGER призначається, якщо оголошений тип містить рядок «ВНУТРІШНЄ».
- Спорідненість TEXT призначається, якщо стовпець містить у своєму типі даних один із наступних рядків: «TEXT», «CHAR» або «CLOB». Наприклад, типу VARCHAR буде призначено спорідненість TEXT.
- Спорідненість BLOB призначається, якщо стовпець не має вказаного типу або тип даних є BLOB.
- Спорідненість REAL призначається, якщо тип містить один із наступних рядків: «DOUB», «REAL» або «FLOAT».
- NUMERIC спорідненість призначається для будь-якого іншого типу даних.
Також нижче наведено таблицю з деякими прикладами картиping між SQLite типи даних та їх спорідненість визначаються цими правилами:
Приклади зберігання типів даних у SQLite
Зберігання чисел с SQLite INTEGER
Якщо будь-який стовпець має тип даних, що містить слово «INT», йому буде призначено спорідненість типу INTEGER. Він буде збережений у класі сховища INTEGER.
Усім наступним типам даних присвоюється спорідненість типу INTEGER:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- ТРИНІТНИЙ, ДРОБНИЙ, СЕРЕДНІЙ.
Спорідненість типу INTEGER в SQLite може містити будь-яке призначене ціле число (додатне чи від'ємне) від 1 байта до максимум 8 байтів.
Зберігання чисел с SQLite НЕРУХОМІСТЬ
ДІЙСНІ числа – це числа з подвійною точністю до числа з плаваючою комою. SQLite зберігає дійсні числа як 8-байтовий масив. Ось список типів даних у SQLite які ви можете використовувати для зберігання РЕАЛЬНИХ чисел:
- РЕАЛЬНИЙ.
- ДВОЙНИЙ.
- ПОДВІЙНА ТОЧНІСТЬ.
- ПЛАВАТИ.
Зберігання великих даних за допомогою SQLite ЛИСТОК
Існує лише один спосіб зберігання великих файлів у SQLite база даних, яка використовує тип даних BLOB. Цей тип даних використовується для зберігання великих файлів, таких як зображення або файли будь-якого типу. Файл перетворюється на байтовий масив, а потім зберігається того ж розміру, що й вхідний файл.
Зберігання SQLite Булеви
SQLite не має окремого класу зберігання BOOLEAN. Натомість значення BOOLEAN зберігаються як ЦІЛІ ЧИСЛА, де 0 означає хибність, а 1 — істину.
Зберігання SQLite дати та час
Ви можете оголосити дати або дати-час у SQLite використовуючи один із таких типів даних:
- ДАТА ПРОВЕДЕННЯ
- ДАТА, ЧАС
- ГРАФІК
- ЧАС
Зверніть увагу, що в SQLiteНатомість будь-які значення, оголошені з одним із попередніх типів даних, зберігаються в класі сховища залежно від формату дати вставленого значення, наступним чином:
- TEXT – якщо ви вставляєте значення дати у форматі рядка ISO8601 («РРРР-ММ-ДД ГГ:ХХ:СС.СС»).
- НЕРУХОМІСТЬ – якщо ввести значення дати як числовий показник за юліанським календарем, кількість днів з полудня за Гринвічем 24 листопада 4714 року до нашої ери. Значення дати потім зберігається як REAL.
- INTEGER - як Юнекс Час, кількість секунд з 1970-01-01 00:00:00 UTC.

