SQLite, в отличие от большинства других СУБД, использует систему динамических типов. Это означает, что любой из пяти классов хранения SQLite может присутствовать в любом столбце, несмотря на то, что столбец принадлежит одному типу. Но очевидно, что не рекомендуется смешивать типы в одном столбце. Например, смешивание числовых и символьных данных в одном столбце является плохой практикой, как это было бы в любой базе данных. Пять реальных классов хранения в SQLite:
- NULL
- INTEGER
- РЕАЛЬНЫЙ
- TEXT
- BLOB
Класс хранения REAL
используется для числовых данных с десятичным компонентом. Поплавки будут вписываться в эту категорию. Другие числа без десятичной составляющей будут присвоены классу хранения INTEGER
.
SQLite ввел концепцию, известную как тип "сходство". Они были введены для того, чтобы максимизировать совместимость между SQLite и другими базами данных. Из документации видно, что сходство NUMERIC
связано со следующими типами:
- NUMERIC
- DECIMAL (10,5)
- БУЛЕВЫ
- ДАТА
- DATETIME
Итак, если вы намереваетесь хранить точные данные DECIMAL(10,5)
, тогда имеет смысл сходство NUMERIC
. С другой стороны, сходство REAL
связано с десятичными данными с плавающей запятой (не точными). Опять же, вы можете хранить любой тип в любом столбце, но с точки зрения совместимости вы можете следовать правилам соответствия.