Типы данных SQL
Данные, хранящиеся в столбцах таблиц SQL-ориентированной базы данных, являются типизированными, т.е. представляют собой значения одного из типов данных, предопределенных в языке SQL или определяемых пользователями путем использования соответствующих средств языка. Для этого при определении таблицы каждому ее столбцу предписывается некоторый тип данных (или домен), и в дальнейшем СУБД должна следить, чтобы в каждом столбце каждой строки каждой таблицы присутствовали только допустимые значения. В этом разделе мы обсудим систему типов языка SQL.
Все допустимые в SQL типы данных, которые можно использовать при определении столбцов, разбиваются на следующие категории:
· точные числовые типы (exact numerics);
· приближенные числовые типы (approximate numerics);
· типы символьных строк (character strings);
· типы битовых строк (bit strings)**;
· типы даты и времени (datetimes);
· типы временных интервалов (intervals);
· булевский тип (Booleans);
· типы коллекций (collection types);
· анонимные строчные типы (anonymous row types);
· типы, определяемые пользователем (user-defined types);
· ссылочные типы (reference types).
В столбцах таблиц, определенных на любых типах данных, наряду со значениями этих типов, допускается сохранение неопределенного значения, которое обозначается ключевым словом NULL. В языке определено, что результатом выражений вида x a_op NULL, NULL a_op x, NULL a_op NULL является NULL для всех арифметических операций a_op (“+”, “-“ и т.д.), допустимых для типа данных выражения x (выражение NULL a_op NULL является допустимым для любой арифметической операции a_op). Также по определению полагается, что значением выражений x comp_op NULL, NULL comp_op x, NULL comp_op NULL для всех операций сравнения (“=”, “¹”, “>”, “<” и т.д.), определенных для типа выражения x, является третье логическое значение unknown* (выражение NULL comp_op NULL является допустимым для любой операции сравнения comp_op).