Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы и банки данных.doc
Скачиваний:
10
Добавлен:
12.11.2019
Размер:
745.98 Кб
Скачать

1. Форматирование выходных данных запросов.

Во многих СУБД, которые используют SQL, имеется специальное средство, позволяющее оформить результат запросов. Эти средства позволяют получить пользователю нечто большее, чем значение полей и функций агрегирования.

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

Пример:

Osnum

001

недобрано баллов

0

002

-\\-

1

003

-\\-

2

SELECT osnum, ”Недобрано баллов =”,

5 – ocen From оценка;

По стандарту SQL столбцы с константами и выражениями не имеют имени. Microsoft Access позволяет поименовать столбцы с помощью ключевого слова AS имя_столбца

Для нашего примера:

SELECT osnum, ”Недобрано баллов =”,

5 – ocen AS ”Баллы до 5” From ocenka;

Результаты выполнения запроса могут быть упорядочены по значению одного или нескольких столбцов, путем указания предложения ORDER BY

ORDER BY поле[ASC/DESC],…[ASC/DESC]

Где ASC – сортировка по возрастанию

DESC – сортировка по убыванию.

Пример: упорядочить данные из таблицы «студенты» по возрастанию кода студента и убыванию полученных оценок.

osnum

odate

ocen

001

10/01/01

5

001

15/01/01

5

002

11/01/01

4

003

17/01/01

4

003

11/01/01

3

003

16/01/01

2

SELECT osnum, odate, ocen

FROM оценка

ORDER BY osnum, ocen DESC;

Предложение ORDER BY может совместно использоваться с GROUP BY.

При этом операция сортировки всегда реализуется по концу выполнения запросов над уже построенной таблицей.

osnum

AVG(ocen)

001

5

002

4

003

3

Пример:

SELECT osnum, AVG(ocen)

FROM оценка

GROUP BY osnum

ORDER BY osnum

osnum

AVG(ocen)

003

3

002

4

001

5

Может потребоваться отсортировать таблицу по значениям вычисляемого столбца не имеющего имени. В таком случае, запрос будет иметь вид:

SELECT osnum, AVG(ocen)

FROM оценки

GROUP BY osnum

ORDER BY AVG(ocen);

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

ORDER BY 2;

Номер столбца можно указывать и для столбца с именем, но нужно помнить, что номер столбца это всегда номер столбца в запросе, а не в таблице, по которой строится запрос. Если поле, которое используется для упорядочения данных существует NULL- значение, т.е. значение не задано, то они располагаются всегда в начале или конце таблицы. Конкретный вариант стандарта не оговаривается и вопрос решается индивидуально для каждой СУБД.