Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
10.05.2015
Размер:
388.61 Кб
Скачать

Сортировка результатов.

В общем случае строки в результирующей таблице SQL-запроса не упорядочены каким либо определенным образом. Для этого используются операторы:

  • ORDER BY,

  • ASC – в порядке возрастания значений,

  • DESC – в порядке убывания значений.

По умолчанию ASC.

Запрос 7. Сортировка по значениям одного столбца.

Текст запроса: Составьте отчет о зарплате всех работников компании, расположив строки в порядке убывания суммы зарплаты.

Используется таблица Staff.

Формулировка запроса:

Select sno, fname, lname, salary ;

From DreamHome! Staff ;

ORDER BY salary DESC;

Запрос 8. Сортировка по нескольким столбцам.

Текст запроса: Подготовьте список сдаваемых в аренду объектов, упорядоченный по их типу и в порядке убывания арендной платы.

Формулировка запроса:

Select pno, type, rooms, rent ;

From DreamHome! Property_for_rent ;

ORDER BY type, rent DESC;

** type - сортируется по возрастанию, а внутри rent по убыванию.

Использование обобщающих функций языка SQL.

Стандарт языка SQL-1 содержит 5 обобщающих функций:

1. COUNT – количество значений в указанном столбце.

2. SUM – сумма значений, указанных в числовом столбце.

3. AVG – среднее значение указанное в числовом столбце.

4. MIN – минимальное значение в указанном столбце.

5. MAX – максимальное значение в указанном столбце.

Все функции оперируют с одним указанным доменом.

Далее приведены тексты запросов, которые реализованы в проекте «Запросы» для Visual FoxPro

Select sno,fname,lname,position,salary/12 as зм;

From Dreamhome!staff;

Where salary>10000;

into table "Запрос1(13.5).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Перечислите весь персонал с размером заработной платы

* больше 10 000 фунтов стерлингов в год

Select bno,street,area,city,pcode;

From Dreamhome!branch;

Where city="London" OR city="Glasgow";

into table "Запрос2(13.6).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Перечислите адреса всех отделений компании в Лондоне и Глазго

Select bno,street,area,city,pcode;

From Dreamhome!branch;

Where city IN ("London","Glasgow");

into table "Запрос3(13.6.1).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

*Перечислите адреса всех отделений компании в Лондоне и Глазго

Select bno,street,area,city,pcode;

From Dreamhome!branch;

Where city NOT IN ("London","Glasgow");

into table "Запрос4(13.6.2).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Перечислите адреса всех отделений компании,

* не находящихся в Лондоне и Глазго

Select sno,fname,lname,position,salary;

From Dreamhome!staff;

Where salary BETWEEN 20000 AND 30000;

into table "Запрос5(13.7).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Перечислите весь персонал с годовой зарплатой

* от 20 000 до 30 000 фунтов стерлингов

Select sno,fname,lname,position,salary;

From Dreamhome!staff;

Where address LIKE "%A%";

into table "Запрос6(13.9).dbf"

browse

USE

****** ТЕКСТ ЗАПРОСА

*Найдите всех работников, проживающих в городе Глазго

Select sno,fname,lname,salary;

From Dreamhome!staff;

order by 4 desc;

into table "Запрос7(13.11).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Составьте отчёт о зарплате всех работников компании,

* расположив строки в порядке убывания суммы зарплаты

Select pno,type,rooms,rent;

From Dreamhome!property_for_rent;

order by type,rent desc;

into table "Запрос8(13.12).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Подготовьте сокращённый список сдаваемых в аренду объектов,

* упорядоченный по их типу и в порядке убывания арендной платы

Select count(Position) as count, sum(salary) as sum ;

From Dreamhome!staff;

wher position = "Manager";

into table "Запрос9(13.14).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Определите общее количество менеджеров компании

* и вычислите сумму их годовой зарплаты

Select min(salary) as min, max(salary) as max,avg(salary) as avg;

From Dreamhome!staff;

wher position="Manager";

into table "Запрос10(13.15).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Вычислите значение минимальной, максимальной

* и средней заработной платы менеджеров фирмы

Select bno,count(sno) as count,sum(salary) as sum;

From Dreamhome!staff;

Where bno LIKE "B%";

group by bno;

order by bno;

into table "Запрос11(13.17).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Определите количество персонала,

* работающего в каждом из отделений компании,

* а также их суммарную зарплату

Select bno,count(sno) as count,sum(salary) as sum;

From Dreamhome!staff;

Where bno LIKE "B%";

group by bno;

having count(sno)>1;

order by bno;

into table "Запрос12(13.18).dbf"

browse

use

****** ТЕКСТ ЗАПРОСА

* Для каждого отделения компании с численностью

* более одного человека определите количество

* работающих и сумму их заработной платы

Соседние файлы в папке Лекции по Базам данных - версия 9.01.10