Упорядочивание выходных полей

Данные, выводимые в результате выполнения запроса, могут быть упорядочены с помощью конструкции ORDER BY. Конструкция ORDER BY позволяет упорядочивать выводимые записи в соответствии со значениями одного или нескольких выбранных полей. При этом можно задать возрастающую (ASC) или убывающую (DESC) последовательность сортировки для каждого из полей. По умолчанию принята возрастающая последовательность сортировки.

Пример 18

SELECT *

FROM Покупка

ORDER BY Дата;

В результате выполнения этого запроса мы получим таблицу Покупка, отсортированную по полю Дата по возрастанию.

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

Пример 19

SELECT *

FROM Покупка

ORDER BY Дата DESC;

Можно произвести сортировку по двум полям: по датам, а внутри по фамилиям покупателей.

Пример 20

SELECT *

FROM Покупка

ORDER BY Дата, Фамилия;

Сравните, что получится, если поля поменять местами.

Пример 21

SELECT *

FROM Покупка

ORDER BY Фамилия, Дата;

В примере 21 в результате сортировки сначала по датам потом по фамилиям информация таблицы Покупка представлена таким образом, что мы видим, как производились продажи по дням. В примере 22 в результате сортировки сначала по фамилиям затем по датам информация таблицы Покупка представлена таким образом, что мы видим, как совершались покупки каждым из покупателей по датам.

Пример 22

SELECT *

FROM Покупка

ORDER BY Дата DESC, Фамилия;

В этом примере таблица Покупки сначала отсортирована по датам по убыванию, затем в рамках каждой даты по фамилиям по алфавиту.

При сортировке таблицы по возрастанию или по убыванию некоторого поля может быть использована конструкция TOP n, которая позволяет вывести определённое число записей, находящихся в начале или в конце диапазона, описанного с помощью конструкции ORDER BY.

Пример 23

SELECT TOP 10 Фамилия, Имя, Дата, КодТовара, Количество

FROM Покупка

ORDER BY Дата;

Этот запрос позволяет определить покупателей первых 10-ти покупок.

Пример 24

SELECT TOP 20 PERCENT Дата, Фамилия, Имя, Отчество, КодТовара, Количество

FROM Покупка

ORDER BY Дата DESC;

Этот запрос отбирает покупателей 20% последних совершённых покупок.

Замечание. Конструкция ORDER BY может быть использована с конструкцией GROUP BY для упорядочивания групп записей. При этом конструкция ORDER BY в запросе всегда должна быть последней.

Пример 25

SELECT Дата, Фамилия, SUM (Баллы*Количество) AS [Суммы баллов каждого покупателя по датам]

FROM Покупка INNER JOIN Продукция ON Покупка.КодТовара=Продукция.КодТовара

GROUP BY Дата, Фамилия

ORDER BY Дата DESC ;

В этом запросе подсчитывается по датам количество баллов, набранных каждым из покупателей. Информация в выводимой таблице представлена по убыванию дат.

Задание. Все запросы, представленные на семинаре, выполните на компьютере.

Домашнее задание 2.1

(по базе данных «Косметическая фирма»)

1. Для клиента Петрова, посчитайте стоимость каждой покупки с 30%-ой скидкой.

2. Выведите в одной колонке фамилию, имя, отчество клиента и название продукта, а в другой стоимость его покупки.

3. Найдите минимальную стоимость покупки.

4. Найдите максимальную стоимость покупки.

5. Посчитайте суммарную стоимость всех покупок по каждому покупателю.

6. Для таблицы Продукция проведите группировку по типам продукции, а затем по начисляемым баллам. Отсортируйте по алфавиту по типам продукции.

7. Для таблицы Продукция проведите сортировку сначала по типам продукции, затем по цене, и наоборот, сначала по цене, потом по типам продукции.

Домашнее задание 2.2

(по базе данных «Борей»)

1. По таблице Заказано для заказа с номером 10260 посчитайте стоимость заказа по каждому товару со скидкой.

2. По таблице Заказывыведите в одной колонке номер заказа, а во второй – получателя, страну, индекс, город и адрес получателя.

3. Для таблицы Товары найдите минимальную цену товара.

4. Для таблицы Заказано посчитайте стоимость каждого заказа, учитывая скидки по каждому из товаров.

5. Таблицу Товары отсортируйте по алфавиту по марке, а затем по цене по возрастанию.

6. Для таблицы Товары проведите группировку по типам и по поставщикам. Отсортируйте группы по типам по алфавиту.

7. По таблицам Заказы и Заказанопосчитайте стоимость каждого заказа с доставкой.

ПЕРЕХОД НА Оглавление

Семинар №12

Инструкции создания таблиц, вставки новых записей, изменения записей, удаления записей, удаления таблиц. Создание новой таблицы на основе уже существующей таблицы. Копирование информации из одной таблицы в другую

Прежде чем начать изучение материала этого семинара, нужно снять запрет на изменение базы данных, как мы это делали в семинаре №6, воспользовавшись меню

Файл → Параметры → Центр управления безопасностью →клавишаПараметры центра управления безопасностью… → Параметры макросов → Включить все макросы (не рекомендуется, возможен запуск опасной программы) → OK→ OK

Создание новой таблицы

Таблицы базы данных создаются с помощью команды CREATE TABLE. Эта команда создаёт пустую таблицу, т.е. таблицу, не имеющую строк.

Инструкция CREATE TABLE определяет имя таблицы и множество полей в указанном порядке. Для каждого поля должен быть определён его тип и размер. Каждая создаваемая таблица должна иметь, по крайней мере, одно поле.

Инструкция создания таблицы имеет вид:

CREATE TABLE <Имя таблицы>

(<Поле 1> <Тип данных> [<Размер>],

<Поле 2> <Тип данных> [<Размер>],

<Поле n> <Тип данных> [<Размер>]);

Для примера создадим таблицу Сегодня, состоящую из полей: Номер, Фамилия, Имя, Отчество, Дата, КодТовара, Количество. Эта таблица понадобится нам в дальнейшем для того, чтобы в неё скопировать информацию о продажах, совершённых за текущий день.

Пример 1

CREATE TABLE Сегодня

(Номер INTEGER PRIMARY KEY,

Наши рекомендации