
Язык реляционных баз данных SQL. Функции и основные воз-
можности. Язык для взаимодействия с БД
—
SQL (Structered Query
Language) появился в середине 70-х годов, и сейчас распростра-
нена его версия SQL/92. Язык ориентирован главным образом на
удобную и понятную пользователям формулировку запросов к ре-
ляционной БД и содержит, помимо операторов формулирования
запросов и манипулирования БД, средства для определения схе-
мы БД, ограничений целостности, структуры БД физического
уровня, авторизации доступа к отношениям и их полям, позиций
сохранения транзакции и откатов. Двумя фундаментальными язы-
ками запросов к реляционным БД являются языки реляционной
алгебры и реляционного исчисления. Самый общий вид запроса
на языке SQL представляет теоретико-множественное алгебраи-
ческое выражение, составленное из элементарных запросов.
В настоящее время SQL реализован практически во всех ком-
мерческих реляционных СУБД, все фирмы провозглашают соот-
ветствие своей реализации стандарту SQL. И на самом деле реали-
зованные диалекты SQL очень близки. Особенностью большин-
ства современных коммерческих СУБД, затрудняющей анализ су-
ществующих диалектов SQL, является отсутствие полного описа-
ния языка.
В языке SQL поддерживаются следующие типы данных:
CHARACTER, NUMERIC, DECIMAL, INTEGER, SMALLINT,
FLOAT, REAL, DOUBLE PRECISION.
К первому классу относится CHARACTER. Спецификатор типа
имеет вид CHARACTER (length), где length задает длину строк
данного типа. В SQL/89 нет типа строк переменного размера, хотя
во многих реализациях они допускаются. Литеральные строки сим-
волов изображаются в виде последовательности символов (напри-
мер, example).
Представителями второго класса типов являются NUMERIC,
DECIMAL (или DEC), INTEGER (или INT) и SMALLINT. Спе-
цификатор типа NUMERIC имеет вид NUMERIC ([precision],
[scale]). Специфицируются точные числа, представляемые с точ-
ностью precision и масштабом scale. Здесь и далее, если опущен
масштаб, то он полагается равным 0, а если опущена точность,
то ее значение по умолчанию определяется в реализации.
Спецификатор типа DECIMAL (или DEC) имеет вид NUME-
RIC ([precision], [scale]). Специфицируются точные числа, пред-
ставленные с масштабом scale и точностью, равной или большей
значения precision.
INTEGER специфицирует тип данных точных чисел с масшта-
бом 0 и определяемой в реализации точностью. SMALLINT спе-
цифицирует тип данных точных чисел с масштабом 0 и определяе-
мой в реализации точностью, не большей, чем точность чисел
типа INTEGER.