Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Document1.rtf
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.79 Mб
Скачать

50. Возможности языка sql по созданию вложенных и объединенных запросов.

Вложенные запросы - запросы, отделенные круглыми скобками и входящие в состав конструкций HAVING, WHERE, FROM, SELECT и WITH внешнего запроса SELECT или каких-либо других перечисленных запросов, заключающих в себе эти конструкции,.

Вложенные подзапросы могут быть простыми и связанными.

Если результат вложенного запроса не зависит от результата внешнего, то такой вложенный запрос называется простым. К примеру данные из таблиц, перечисленных после ключевого слова FROM внешнего и вложенного запроса, находятся независимо, что не требует вводить полный адрес столбцов.

Если результат вложенного запроса зависит от результата внешнего, то такой вложенный запрос называется связанным вложенным запросом. Иными словами, вложенный запрос является связанным, если в конструкциях WHERE, HAVING указан столбец, фигурирующий во внешнем запросе.

Вложенный запрос может использоваться с предикатом EXISTS (или NOT EXISTS).

Вложенные запросы также применяются при использовании предикатов IN или NOT IN.

Зачастую вложенные запросы используются для выполнения операций сравнения с ключевыми словами ANY или ALL. Объединенные запросы – запросы, выполняющиеся независимо друг от друга, и только вывод результатов объединяется. SQL позволяет получать один результат после выполнения двух независимых запросов путем их комбинации с ключевым словом UNION. По умолчанию повторяющиеся строки удаляются из результирующего множества, однако от этого можно отказаться, если вместо ключевого слова UNION использовать UNION ALL.

Формат использования предложения UNION:

SELECT – Запрос 1

UNION

SELECT – Запрос 2

...

Кроме того, можно отсортировать конечный результат с использованием оператора ORDER BY, который должен следовать после последнего запроса в объединенном запросе.

51.Диалекты языка sql в субд.

Несмотря на наличие международного стандарта ANSI SQL, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Каждая из реализаций языка SQL в конкретной СУБД называется диалектом. Функции, которые добавляются к стандарту языка разработчиками коммерческих реализаций, принято называть расширениями. Например, в стандарте языка SQL определены конкретные типы данных, которые могут храниться в базах данных. Во многих реализациях этот список расширяется за счет разнообразных дополнений.

Выделяют три уровня соответствия стандарту ANSI/ISO — начальный, промежуточный и полный. В настоящее время не существует ни одного диалекта, полностью соответствующего стандарту. Производители СУБД (например, Oracle, Microsoft, Borland, Informix, Sybase) применяют собственные реализации SQL, отвечающие как минимум начальному уровню соответствия стандарту и содержащие некоторые расширения, специфические для данной СУБД. Не существует двух совершенно идентичных диалектов. Более того, поскольку разработчики баз данных вводят в системы все новые функциональные средства, они постоянно расширяют свои диалекты языка SQL, в результате чего отдельные диалекты все больше и больше отличаются друг от друга. Это имеет свои достоинства и недостатки.

Конкретная реализация языка, может включать в себя более широкие возможности по сравнению со стандартом SQL, например, больше типов данных, большее количество команд, больше дополнительных возможностей у имеющихся команд. Такие возможности делают работу с конкретной СУБД более эффективной. Кроме того, такие нестандартные возможности языка проходят практическую апробацию и со временем могут быть включены в стандарт. Недостаток в том, что различия в синтаксисе реализаций SQL затрудняют перенос приложений из одной системы в другую.

В широко распространенных в настоящее время СУБД используются следующие диалекты языка SQL:

PL/SQL – в СУБД Oracle;

Transact-SQL – в СУБД Microsoft SQL;

Informix-SQL – в СУБД Informix;

Jet SQL – Microsoft Access.

Язык Jet SQL почти соответствует стандарту ANSI SQL. Основные различия языков Jet SQL и ANSI SQL состоят в следующем:

 они имеют разные наборы зарезервированных слов и типов данных;

 разные правила применимы к оператору Between, используемому для определения условий выборки записей; подстановочные знаки ANSI и Microsoft Jet, которые используются в операторе Like, различны; язык Jet SQL обычно предоставляет пользователю большую свободу, например, разрешается группировка и сортировка по значению выражения;

 язык Jet SQL позволяет использовать более сложные выражения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]