Часть 5.1: Общая информация о типах данных в SQLite3

Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Ранее мы рассмотрели типы данных в языке SQL, теперь давайте посмотрим на типы данных, которые поддерживаются в базах данных SQLite3. SQLite3 особенная СУБД и ее особенность проявляется не только в том, что отсутствует взаимодействие клиент-сервер, но и в типах данных (да и во многом другом, если уж быть откровенным). Ни одна реляционная СУБД, по крайней мере среди тех, с которыми знаком автор, не имеет динамической типизации данных, а вот в SQLite3 типизация данных динамическая.


Принцип строгой типизации данных заключается в том, что тип столбца в таблице определяется заранее и в дальнейшем в этот столбец можно записывать значения только определенного (заранее известного) типа. А вот SQLite3 более лояльна к типам данных значений, которые хранятся в столбцах:

  • SQLite3 позволяет создавать таблицы не указывая типы данных для столбцов;
  • при необходимости SQLite3 будет преобразовывать типы данных из одного в другой;
  • SQLite3 позволяет сравнивать значения с разными типами данных;
  • SQLite3 вообще не имеет понятия о типах данных, здесь оно заменено на класс данных;
  • SQLite3 не имеет ни булевого типа данных, ни типа данных даты и времени;
  • на самом деле у столбцов SQLite3 нет ни типа данных, ни класса данных, вместо этого разработчики ввели понятие аффинированного класса данных;
  • если у других СУБД сравнение (коллэйшен) является атрибутом столбца, значением которого является кодировка, то SQLite имеет совсем другие значения для этого атрибута.

Вообще у SQLite3 много особенностей, многие из них мы рассмотрим, а с какими-то вы столкнетесь, когда самостоятельно начнете работать с этой особенной СУБД.

Текст комментария: