SQLite Типове данни: Int, Text, Number, Real, Blob
⚡ Умно обобщение
SQLite типовете данни работят различно от другите бази данни, защото SQLite използва динамичен typing, съхранявайки всяка стойност във всяка колона. Класовете за съхранение, афинитетът на типа и декларираните имена на типове заедно определят как всяка стойност се запазва физически на диска.

Разделите по-долу обясняват как SQLite обработва типове данни, започвайки с петте класа за съхранение, след това афинитет на типове и правилата за присвояване, и накрая работи с примери за съхранение на цели числа, реални числа, BLOB обекти, булеви стойности и дати.
Типове данни в SQLite се различават от тези в други системи за управление на бази данни. В SQLite, можете да декларирате типове данни по нормален начин, но все пак можете да съхранявате всяка стойност във всеки тип данни.
SQLite е безтипово. Няма фиксирани типове данни; можете да съхранявате всякакъв тип данни, който желаете, във всяка колона. Това се нарича динамичен тип.ping.
В статичните типове, както и в други системи за управление на бази данни, ако декларирате колона с тип данни integer, можете да вмъквате само стойности от тип данни integer. В динамичните типове обаче, както в SQLite, типът на колоната се определя от вмъкнатата стойност и след това SQLite съхранява тази стойност в зависимост от нейния тип.
SQLite Класове за съхранение
In SQLite Има различни методи за съхранение в зависимост от вида на стойността; тези различни методи за съхранение се наричат класове за съхранение в SQLite.
Следват класовете за съхранение, налични в SQLite:
- NULL – този клас за съхранение се използва за съхраняване на всяка NULL стойност.
- ИНТЕГЪР – всяка числова стойност се съхранява като цяло число със знак (може да съдържа както положителни, така и отрицателни целочислени стойности). ЦЕЛОЧИСЛЕНИТЕ стойности в SQLite се съхраняват в 1, 2, 3, 4, 6 или 8 байта за съхранение в зависимост от стойността на числото.
- REAL – този клас за съхранение се използва за съхраняване на стойности с плаваща запетая и те се съхраняват в 8 байта памет.
- ТЕКСТ – съхранява текстови низове. Поддържа и различни кодировки като UTF-8, UTF-16BE или UTF-16LE.
- петна – използва се за съхраняване на големи файлове, като изображения или текстови файлове. Стойността се съхранява като байтов масив, същият като входната стойност.
SQLite Тип афинитет
Афинитетът към типа е препоръчителният тип данни, съхранявани в колона. Въпреки това, все още можете да съхранявате всякакъв тип данни, както желаете; тези типове са препоръчителни, а не задължителни.
Тези видове са въведени през SQLite за да увеличите максимално съвместимостта между SQLite и други система за управление на база данниs.
Всяка колона, декларирана в an SQLite На базата данни се присвоява афинитет към типа в зависимост от декларирания тип данни. Ето списък с афинитети към типа в SQLite:
- ТЕКСТ.
- ЧИСЛО.
- ЦЯЛО ЧИСЛО.
- ИСТИНСКИ.
- BLOB.
Ето как SQLite определя афинитета на колона от нейния деклариран тип данни:
- INTEGER афинитетът се присвоява, ако декларираният тип съдържа низ „Вътрешен“.
- Афинитетът TEXT се присвоява, ако колоната съдържа в своя тип данни един от следните низове: „TEXT“, „CHAR“ или „CLOB“. Например, на типа VARCHAR ще бъде присвоен афинитетът TEXT.
- BLOB афинитет се присвоява, ако колоната няма указан тип или типът данни е BLOB.
- Афинитетът REAL се присвоява, ако типът съдържа един от следните низове: „DOUB“, „REAL“ или „FLOAT“.
- NUMERIC афинитет се присвоява за всеки друг тип данни.
По-долу е показана и таблица, показваща някои примери за картатаping между SQLite типове данни и техните афинитети, определени от тези правила:
Примери за съхраняване на типове данни в SQLite
Съхраняване на номера с SQLite ИНТЕГЪР
Ако някоя колона има тип данни, който съдържа думата „INT“, ще ѝ бъде присвоен афинитет от тип INTEGER. Тя ще бъде съхранена в клас за съхранение INTEGER.
На всички следващи типове данни е присвоен афинитет от тип INTEGER:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- МАЛЪК, ДРЕБЕН, СРЕДЕН.
INTEGER тип афинитет в SQLite може да съхранява всяко присвоено цяло число (положително или отрицателно) от 1 байт до максимум 8 байта.
Съхраняване на номера с SQLite REAL
РЕАЛНИТЕ числа са числа с двойна точност на плаваща запетая. SQLite съхранява реални числа като 8-байтов масив. Ето списъка с типовете данни в SQLite които можете да използвате за съхраняване на РЕАЛНИ числа:
- ИСТИНСКИ.
- ДВОЙНО.
- ДВОЙНА ТОЧНОСТ.
- ПЛАВКА.
Съхраняване на големи данни с SQLite петна
Има само един начин за съхраняване на големи файлове в SQLite база данни, и която използва типа данни BLOB. Този тип данни се използва за съхраняване на големи файлове, като изображения или файлове от всякакъв тип. Файлът се преобразува в байтов масив и след това се съхранява със същия размер като входния файл.
Съхранение SQLite Booleans
SQLite няма отделен клас за съхранение на булеви стойности. Вместо това, булевите стойности се съхраняват като цели числа, където 0 представлява невярно, а 1 представлява истина.
Съхранение SQLite дати и часове
Можете да декларирате дати или дати-часове в SQLite използвайки един от следните типове данни:
- ДАННИ
- ВРЕМЕ ЗА СРЕЩА
- КЛАПОТО ЗА ЧАС
- ВРЕМЕ
Обърнете внимание, че няма отделен клас за съхранение DATE или DATETIME в SQLiteВместо това, всички стойности, декларирани с един от предишните типове данни, се съхраняват в клас за съхранение в зависимост от формата на датата на вмъкнатата стойност, както следва:
- ТЕКСТ – ако въведете стойността на датата във формат на низ по ISO8601 („ГГГГ-ММ-ДД ЧЧ:ММ:СС.ССС“).
- REAL – ако въведете стойността на датата като юлианско число на деня, броят дни от обяд в Гринуич на 24 ноември 4714 г. пр.н.е. Стойността на датата се запазва като REAL.
- ИНТЕГЪР – като Unix Време, броят секунди от 1970-01-01 00:00:00 UTC.

