Программирование >>  Реализация баз данных 

1 ... 57 58 59 [ 60 ] 61 62 63 ... 162


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. . .



1 ... 57 58 59 [ 60 ] 61 62 63 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика