Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Язык sql

SQL, или язык структурированных запросов, — на сегодняшний день наиболее важный из языков манипулирования реляционными данными. Он рекомендован Американским национальным институтом стандартов (ANSI) в качестве стан­дартного языка манипулирования реляционными базами данных и используется как язык доступа к данным многими коммерческими СУБД, включая DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase for Windows, Paradox, Microsoft Access и многие другие. Благодаря своей популярности SQL стал стан­дартным языком для обмена информацией между компьютерами. Поскольку существует версия SQL, которая может работать почти на любом компьютере и операционной системе, компьютерные системы способны обмениваться данны­ми, передавая друг другу запросы и ответы на языке SQL.

Разработка SQL начиналась в середине 70-х годов в исследовательском цен­тре IBM в Сан-Хосе, и изначально язык носил название SEQUEL. Было выпу­щено несколько версий SEQUEL, и в 1980 г. продукт был переименован в SQL. С тех пор, помимо IBM, многие производители присоединились к разработке программных продуктов для SQL. Институт ANSI взял на себя работу по под­держке SQL и периодически публикует обновленные версии стандарта SQL. В этой главе обсуждается ядро SQL в том виде, как оно описано в стандарте ANSI 1992 г., который часто обозначают как SQL9213. Последняя версия стандар­та, SQL3, содержит расширения языка для объектно-ориентированного програм­мирования. Эта версия обсуждается в главе 18.

Конструкции и выражения в конкретной реализации SQL (например, в Oracle или SQL Server) могут немного отличаться от ANSI-стандарта. Частично это обусловлено тем, что многие коммерческие СУБД были разработаны до того, как появилось соглашение о стандарте, а также тем, что производители заклады­вали в свои продукты дополнительные возможности с целью получить преиму­щество в конкурентной борьбе. Исходя из рыночной перспективы, одной лишь поддержки стандарта ANSI порою считалось недостаточно для обеспечения при­влекательности продукта.

Команды языка SQL могут использоваться интерактивно как язык запросов, а также могут быть встроены в прикладные программы. Таким образом, SQL не является языком программирования (как, например, COBOL); он скорее пред­ставляет собой подъязык данных (data sublanguage) или язык доступа к данным (data access language), встраиваемый в другие языки.

В этой главе представлены интерактивные операторы SQL, которые, будучи встроенными в прикладные программы, требуют настройки и модификации. Здесь рассматриваются только операторы манипулирования данными.

SQL — это язык, ориентированный на преобразования, который принимает на входе одно или несколько отношений и выдает на выходе одно отношение. Результат каждого SQL-запроса представляет собой отношение; даже если ре­зультатом является отдельное число, это число считается отношением, у которо­го одна строка и один столбец. Таким образом, подобно реляционной алгебре, язык SQL является замкнутым.

Запрос одиночной таблицы

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

Мы будем пользоваться теми же самыми шестью отношениями, на примере которых мы иллюстрировали реляционную алгебру в главе 8. Структура этих от­ношений изображена на рис. 9.1, а данные для примера приведены на рис. 9.2.

Рис.9.2. Данные для примеров применения SQL: а – отношение СТУДЕНТ, б – отношение ЗАПИСЬ, в – отношение ЗАНЯТИЯ