Продемонстрируем это на примере:
Для эксперимента создадим таблицу, состоящую из двух полей. Одно поле (k) - это ключ, тип поля - текст. Второе поле (v) - значение, для хранения данных целого типа.
sqlite> CREATE TABLE kv (k TEXT PRIMARY KEY, v INTEGER NOT NULL);Занесем несколько значений:
sqlite> INSERT INTO "kv" VALUES('key1',1);
sqlite> INSERT INTO "kv" VALUES('key2',2);
sqlite> select * from kv;
key1|1
key2|2Как видно из примера, ничего не обычного не произошло. Данные занесены как значения целого типа. Теперь посмотрим, что произойдет, если мы попытаемся занести в таблицу kv значения v отличные от типа INTEGER, например текст.sqlite> INSERT INTO "kv" VALUES('key3','text1');
sqlite> INSERT INTO "kv" VALUES('key4','text2');
sqlite> select * from kv;
key1|1
key2|2
key3|text1
key4|text2на примере видно, что SQLite не видал никаких ошибок, и успешно внес текстовые данные в таблицу. Более детальной информацию о специфике типов данных можно получить на сайте SQLite
Что это нам дает? С одной стороны это накладывает необходимость проверки данных перед тем, как заносить их в SQLite, если наше приложение зависит от типа данных. С другой стороны это возможность хранить различные типы данных в одной таблице. Примером может служить хранение конфигурационных данных, где типы данных могут отличаться.



0 комментариев:
Отправить комментарий