- •Язык sql Выбор данных (оператор select)
- •Предложение group by (применение агрегатных функций)
- •Предложение having (условия обработки сформированных групп)
- •Порядок обработки предложений where, group by и having
- •Соединение
- •Вывод итоговых значений
- •Вложенные запросы (подзапросы)
- •Операторы манипулирования данными (dml) с подзапросами.
- •Понятие представления. Операции создания представлений.
- •Распределенные запросы
Распределенные запросы
Распределенные запросы используются для доступа к данным из нескольких гетерогенных источников данных. Эти источники данных могут храниться на одном или различных компьютерах. Microsoft SQL Server 2005 поддерживает распределенные запросы с использованием OLE DB.
Пользователи SQL Server могут применять распределенные запросы для доступа к следующим данным:
Распределенные данные, хранящиеся в нескольких экземплярах SQL Server.
Гетерогенные данные, хранящиеся в различных реляционных и нереляционных источниках данных, доступ к которым осуществляется с использованием поставщика OLE DB.
Поставщики OLE DB представляют данные в табличных объектах, именуемых «наборами строк». SQL Server позволяет ссылаться в инструкциях Transact-SQL на наборы строк из поставщиков OLE DB так, как если бы эти наборы строк являлись таблицами SQL Server.
На таблицы и представления внешних источников данных можно ссылаться непосредственно в инструкциях Transact-SQL SELECT, INSERT, UPDATE и DELETE. Поскольку в распределенных запросах в качестве базового интерфейса используется OLE DB, распределенные запросы могут обращаться к традиционным реляционным СУБД, которые располагают обработчиками SQL-запросов, а также могут обращаться к данным, управляемым источниками данных различной функциональности и сложности. Если программы представляют принадлежащие им данные в табличных наборах строк через поставщика OLE DB, эти данные могут быть использованы в распределенных запросах.
На рисунке показаны соединения между клиентским компьютером, экземпляром SQL Server и поставщиком OLE DB.
1 Практика применения ; для завершения инструкции стандартна и в некоторых СУБД является обязательным требованием. В SQL Server лишь некоторых случаях требуется применение ;, но ее можно применять. Это делать рекомендуется (улучшается читаемость и соответствующее сообщение об ошибке не всегда понятно).
2 В стандарте SQL1 при объединении отношений использовались только условия, задаваемые в части WHERE оператора SELECT, и в этом случае в результирующее отношение попадали только сцепленные по заданным условиям кортежи исходных отношений, для которых эти условия были определены и истинны.
Однако в действительности часто необходимо объединять таблицы таким образом, чтобы в результат попали все строки из первой таблицы, а вместо тех строк второй таблицы, для которых не выполнено условие соединения, в результат попадали бы неопределенные значения. Или наоборот, включаются все строки из правой (второй) таблицы, а отсутствующие части строк из первой таблицы дополняются неопределенными значениями. Стандарт SQL2 расширил понятие условного объединения.
Такие объединения были названы внешними в противоположность объединениям, определенным стандартом SQL1, которые стали называться внутренними.