
Язык реляционных баз данных 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.