|
Программирование >> Реализация баз данных
172 Выборка и модификация дан:чых Глава 8 чения например агрегатные функции (векторные агрегаты), од- ним из параметров которых является имя столбца. Как правило, конструкция HAVING используется с конструкцией GROUP BY, хотя ее разрешается применять и отдельно. Любо жение может стать группирующим, если оно не содержит агрегатных функций. В конструкции GROUP BY необходимо задавать имя столбца таблицы или представления, а не имя столбца набора, присвоенное с конструкции AS. В конструкции GROUP допустимо указать несколько в виде вложенных то есть сгруппировать таблицу посредством любой комбинации столбцов. Обработка конструкций WHERE, GROUP BY и HAVING Понимание верной последовательности, в которой применяются конструкции WHERE, GROUP BY и HAVING, помогает программировать эффективные запросы: конструкция WHERE фильтрует строки, которые являются результатом операций, заданных в конструкции FROM; выходная информация конструкции WHERE группируется с помощью конструкции GROUP BY; строки сгруппированного результата фильтруются средствами конструкции HAVING. Любые условия поиска, которые разрешается применять как до, так и после операции группировки, стоит указывать в конструкции WHERE. Таким образом уменьшают число строк, необходимо В конструкции HAVING следует указывать только те условия которые надо применять после выполнения операции группи- ровки. Конструкция ORDER BY Конструкция ORDER BY сортирует результат запроса по одному или нескольким полям. Сортировка может быть как по возрастанию (ASC), так и по убыванию (DESC). Если не задан ни один из видов сортировки, по умолчанию предполагается ASC. Если в конструкции ORDER BY названо несколько столбцов, выполняется вложенная сортировка. оператор сортирует строки таблицы Titles сначала по названию издательства (по убыванию), затем по типу (по возрастанию, для каждого издательства) и, наконец, по цене (также по возрастанию, поскольку не задан параметр DESC). USE Pubs SELECT Puh id, Type, TitlejO. Price FROM Titles . . ORDER BY Pub id DESC, Tyne, Price , Упражнение. Использование операторов SELECT для выборки данных В этом упражнении вы операторами SELECT для извлечения ин- формации из базы данных Pubs. Каждый последующий оператор SELECT необходимо строить на основе при этом информация, которая входит в результирующий набор, все более конкретизируется. Чтобы выполнить это упражнение, необходимо зарегистрироваться в качестве администратора на ютере под управлением Windows 2000 Server. Занятие 1 Выборка ных из базы данный1 Server 173 ► Извлечение всех данных из таблице! Titles 1. Откройте SQL Query Analyzer и подключитесь к локальному серверу. 2. Введите следующие команды Transact-SQL на панели Editor окна Query: USE Pubs SELECT - FROM Titles Этот оператор определяет базу данных содержится нужная для просмотра таблица. Оператор SELECT извлекает все данные изтаблиш,! Titles в базе данных Pubs. Звездочка ( * ) в списке выбора указывает, что надо выбрать данные из всех столбцов таб-лии[.1. 3. Исполните оператор Transact-SQL. набор выводится на вкладке Grids панели Results. ► Получение данн1х из определенн1х столбцов таблице! Titles 1. Па напели Editor в окне Query введите следующий код Transact-SQL: USE Pubs SELECT 4tle,id, Title, Price, Ytd sales FROM Titles Здесь оператор SELECT извлекает данные из столбцов Jd, Title, Price и \td sales базы данных Pub. 2. Исполните оператор Transact-SQL. Результирующий набор выводится на вкладке Grids панели Results. ► Задание условия, которому должен соответствовать результирующий набор 1. На панели Editor в окне Query введите следующий код Transact-SQL: USE Pubs SELECT Trtle id, Title, Price, Ytd sales FROM Titles WHERE Price > 10 Теперь оператор SELECT извлечет лишь те строки, значение поля Price которых превышает $10. 2. Исполните оператор Transact-SQL. Результирующий набор выводится на вкладке Grids панели Results. Задание в котором выводится результирующий набор 1. Па панели Editor в окне Query введите следующий код Transact-SQL: USE Pubs SELECT т.-;,-> ].-;. Title, Price. Ytd sales FROM Titles WHERE Price > 10 ORDER BY Price DESC, Title Результирующий набор, который вернет этот оператор SELECT, упорядочивается сначала по цене (по убыванию), а затем по заглавию (по возрастанию). 2. Исполните оператор Transact-SQL. Результирующий набор выводится на вкладке Grids панели Results. 1 7 Выборка а Глава € ► Группировка данных в результирующем наборе - .-- 1. На панели Editor в окне Query введите следующий код Transact-SQL: USE Pubs SELECT Type, AVG (Price) AS AvgPrice . FROM Titles . WHERE Price > 10 . .. GROUP BY Type - ORDER AvgPrice DESC В наборе, который вернет этот оператор SELECT, группируются стро- ки с одними и теми же значениями поля Туре. Строки, не соответствующие условиям конструкции WHERE, исключаются до начала любых по группировке. При группировке выполняется усреднение столбца Price, а полученное среднее значение вставляется в результирующий набор в виде столбца AvgPrice. Значения столбца AvgPrice упорядочиваются по убыванию. 2. Исполните оператор ilansact-SQL. Результирующий набор выводится на вкладке Grids панели Results. * Создание иiii.r дл wiueHH:] результирующего набора 1. На панели Editor в окне Query введите следующий код Transact-SQL: USE Pubs SELECT Type, AVG(Price) AS Av.jPrlce INTO TypeAvgPrice FROM Titles - WHERE Price > 10 GROUP BY Type ORDER BY AvgPrice DESC Оператор SELECT создаст новую таблицу под названием TypeAvgPrice. В столбцах Туре и AvgPrice размещаются результирующего набора. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение, где указано число строк, на которое повлияло исполнение оператора. 3. Введите и исполните следующий оператор Transact-SQL: SELECT * FROM TypeAvgPrice Содержимое таблицы TypeAvgPrice выводится на вкладке Grids панели Results. 4. Введите и исполните следующий оператор Transact-SQL: DROP TABLE TypeAvgPrice На вкладке Messages панели выводится об успешном завершении команды. 5. Закройте SQL Query Analyzer. . .
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |