Типы данных 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).