|
Программирование >> Реализация баз данных
f 34 Выборка ш Глава 8 3. Щелкните вкладку Messages панели Results. - Обратите внимание, что запрос вернул 830 строк. Поскольку использовано левое внешнее соединение, возвращаются все строки таблицы Orders, но из таблицы Customers возврашаютсн только те строки, ]де название города совпадает с тем, куда необходимо доставить заказ. 4. Щелкните вкладку Grids панели Residts. 5. Прокрутите содержимое вкладки до строки 108. Обратите внимание, что в столбцах ContactName и City указаны пустые значения. Если взглянуть на данные то можно заметить, что столбцы ContactName и City содержат значения. Несмотря на го, что одно из условий соединения теперь выполняется = в помещаются пустые значения. При использовании внутреннего соединения этот запрос 817 строк. Из обеих таблиц возвращаются только те строки, которые соответствуют условию соединения ► Получение данных с помощью вого внешнего соединения Введите на панели Editor в окне следующий код USENortnwird SELECT n.nrdp-ТП. о Cii<5tomerI[, с.ContactName, с,City FROM Orders о RIGHT JOIN Custcmers с ON и, LLSLumeiu = с. CustomerlD ANDo.SliipCity = c,City ORDER BY 0.OrderlD Здесь используется такой атор SELECT, как и в предыдущей процедуре, только на этот раз задано право- нес соединение. 2. Исполните оператор Transact-SQL. Результирующий набор выводите;! на вкладке Grids панели Results. 3. Щелкните вкладку Messages панели Results. Обратите внимание, что запрос строк. Поскольку использовано правое внещнее соединение, возвращаютс;; все строки таблицы Customers, но из таблицы Orders возвращаются только те строки, указан город, котором живут покупатели. 4. Щелкните вкладку Grids панели Results. Обратите внимание, что первые три строки результирующего набора содержат пустые значения в столбцам eilU Jtiej ID. Эти строки етствуюг условию для таблицы Orders. Получение данных с полного внешнего соединения Воспользуйтесь тем же оператором SELECT, что и в двух предыдущих толь- ко замените соединение wiuo: внешнее. 2. Исполните оператор Transact-SQL и просмотрите содержимое вкладки Messages на панели Results. Обратите внимание, что запрос вернул 833 Поскольку используется полное внешнее все строки из обеих таблиц. 3. Щелкните вкладку Grids панели Results. Обратите внимание, что в первых трех строках в столбцах OrderlD и CustomerlD снова указаны пустые значения. 4. Прокрутите вкладку до строки 111. Обратите внимание, что столбцы и City снова содержат пустые значения. Занятие 2 Выборка данных сложненных методик \ 35 Использование в подзапросе ключевого слова IN 1. Введите на панели Editor в окне Query следующий код Transact-SQL: USE Northwind SELECT iVderlD, ErnployeelD AS EmpID FROM Orders WHERE EmployeelD IN SELECT EmployeelD FROM Employees WHERE City Seattle ) ORDER BY OrderlD В этом операторе для определения идентификаторов живущих в Сиэтле, применяется подзапрос. которые он возвращает, затем используются в кон- струкции WHERE внешнего оператора SELECT для ограничения результирующего набора заказами, которые обработаны сотрудниками из Сиэтла. 2. Исполните оператор Transact-SQL. Результирующий набор выводится на вкладке Grids панели Results. ► Применение подзапроса с операторами сравнения и ключевым словом ALL 1. Введите на панели Editor в окне Query следующий код Transact-SQL: USE Northwind SELECT OrderlD, UnitPrice FROM [Order Details] WHERE UnitPrice > ALL SELECT UnitPrice FROM [Order Details] JOIN Orders ON [Order Details].OrderlD = Orders.OrderlD AND Orders. EmployeelD = 5 ORDER BY Price. OrderlD Этот оператор посредством подзапроса определяет максимальную цену заказов, обработанных сотрудником, которому присвоен номер 5. Далее найденная цена используется в конструкции WHERE внешнего оператора SELECT для ограничения результирующего набора теми заказами, цена которых превышает сумму, определенную с помощью подзапроса. 2, Исполните оператор Transact-SQL. Результирующий набор выводится на вкладке Grids панели Results. ► Применение подзапроса с ключевым словом EXISTS 1. Введите на панели Editor в окне Query следующий код Transact-SQL: USE Northwind SELECT OrderlD, CustornerlD FROM Orders WHERE EXISTS 136 Выборка ция данных Глава 6 SELECT FROM Customers .. : WHERE CusioniGrb. CustotnerlO - Orders, CustOfnerlO ., AND City = London , ORDER BYOrderlD Этот оператор тыо подзапроса определяет покупателей из Лондона, для которых возврашается TRUE. Найденные строки далее используются укцией WHERE внешнего оператора SELECT для определения заказов покупателей из Лондона. 2. Исполните оператор Transacl-SO набор выводится на вкладке Grids панели Results. ► Создание сводн1х данных посредством оператора ROLLUP 1. Введите на панели Editor в окне Query следующий код Transact-SQL: USE Northwind SELECT ProductID, UnitPrice, E;UM(Quantity) A3 Sum FROM [Order Details] GROUP ProductlD, UnitPrice WITH ROLLUP ORDER BY ProductID Здесь оператор SELECT суммирует число проданных товаров на основе тора товара и единичной иены. 2. Исполните оператор Transact-SQL. набор выводится на вкладке Grids панели Results. 3. Изучите результирующий набор на вкладке Grids. Обратите внимание, что в первой строке результирующего набора в полях ProductlD и UnitPrice находятся пустые Значение поля Sum представляет суммарное чис- ло всех результирующего набора. Остальные строки сначала группируются по товару, а затем строки внутри каждой группы по товару объединяются в подгруппы на основе иены. Далее, в группе для продукта присутствует строка, которая со- держит пустое значение поле UnitPrice. Значение поля Sum в этой строке равно суммарному числу продуктов этого Например, продано 174 продукта 1 по цене $14.40 за единицу и 654 единицы по цене за Всего продано 828 единип продукта с идентификатором (значением ProductlD) L 4. Прокрутите результирующий набор для просмотра итоговых значений для остальных продуктов. 5. Закройте SQL Query Analyzer.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |