Скачиваний:
60
Добавлен:
01.04.2014
Размер:
627.71 Кб
Скачать

Глава 8.

Язык SQL

8.1. Введение

Как уже отмечалось ранее, язык SQL весьма далек от полноценной реализации реля­ционной модели. И тем не менее, он является стандартным реляционным языком и в настоящее время поддерживается практически всеми продуктами, представленными на рынке, поэтому каждый специалист по базам данных должен быть знаком с ним. По крайней мере, в пределах этой главы.

Необходимо подчеркнуть, что SQL — очень объемный язык. Документ по его стандарту [8.1] содержит более 600 страниц. Поэтому в книге, такой как наша, невоз­можно дать исчерпывающее описание этого языка; достаточно полно можно описать лишь самые главные его аспекты. Хотелось бы предупредить читателя, что приведен­ное здесь описание языка во многих случаях беглое и поверхностное. В частности, мы не колеблясь опускали материал, не относящийся непосредственно к обсуждае­мой теме и для краткости делали существенные упрощения. Более полное (но также учебное) описание можно найти в [8.5-8.7].

В этой главе затронуты следующие вопросы. Сначала обсуждаются средства оп­ределения данных; затем рассматриваются средства обработки данных (операции выборки и операции обновления). После этого описываются три ключевых конструкции SQL: табличные выражения (включая, в частности, выражения выборки), условные выражения и скалярные выражения. Далее приводятся некоторые соображения по применению "встроенного" языка SQL (т.е. средств для встраивания операторов SQL в программу на базовом языке). И наконец, вкратце подводятся итоги главы.

Замечание. Дополнительные аспекты SQL, касающиеся таких тем, как восстанов­ление, параллельная обработка и т.д., кратко обсуждаются в последующих главах, по­священных этим темам.

Сделаем еще несколько предварительных замечаний. Прежде всего, приведенное обсуждение касается текущего стандарта [8.1], неформально известного как "SQL/92" ("SQL-92" или просто "SQL2"); официальное название стандарта— Международ­ный стандарт языка баз данных SQL (1992) (International Standard Database Language SQL). Наше изложение основано на материалах [8.5], в значительной сте­пени пересмотренных в соответствии с требованиями данной книги. Обратите вни­мание на следующие отличия:

• Символ "#", который мы часто используем в именах доменов и столбцов, на са­мом деле в стандарте SQL/92 не допустим.

• Мы используем символ ";" как признак конца оператора, хотя согласно стандарту SQL/92 этот символ предусмотрен только для встроенного SQL и только для оп­ределенных базовых языков.

• Мы часто используем названия для синтаксических категорий, которые отличают­ся от стандартных названий, потому что терминология стандарта не всегда подхо­дит для наших целей.

Хотя здесь речь идет только об уровне SQL/92, следует отметить, что ни один из коммерческих продуктов к моменту написания книги не поддерживал в полной мере стандарта SQL/92. Те языки, которые обычно поддерживаются продуктами, можно назвать "надмножествами подмножества" языка SQL/92. Другими словами, любой' данный продукт, не поддерживая некоторых аспектов стандарта, в других отношени­ях, возможно, превосходит его. Например, продукт IBM DB2, безусловно, не поддер­живает всех средств SQL/92, касающихся целостности, но он превосходит стандарт в отношении правил, связанных с обновлением представлений.

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

Соседние файлы в папке Дейтл Введ в БД