Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
work_2.doc
Скачиваний:
12
Добавлен:
09.11.2019
Размер:
292 Кб
Скачать
☆

Ограничение максимального размера выборки

В PostgreSQL есть специфические конструкции LIMITи OFFSET , с помощью которых можно управлять количеством и порядком вывода записей. LIMIT ограничивает максимальное количества возвращаемых записей, а OFFSET задает номер записи в курсоре (0,1,2, … ), начиная с которой будут выводиться записи. Они имеют следующий синтаксис:

LIMIT { число | ALL } [OFFSET начало]

где число  количество записей, ALL  все записи, начало  номер первой записи. Например, если число = 10 и начало = 3, то запрос вернет 10 записей, начиная с четвертой (номер 3) по порядку.

Использование данных типа timestamp

Данные типа timestamp используются в предложении WHERE для предотвращения одновременного обновления одной и той же строки двумя пользователями. Если при изменении значений данной строки поле типа timestamp также изменяется, то при одновременном редактировании строки двумя пользователями при сохранении одним из них обновленной информации поле timestamp изменится и строка не будет соответствовать прежней копии. Когда другой пользователь попытаетесь сохранить свои изменения, предложение WHERE не даст ему этого сделать, поскольку команда не найдет выбранную ранее строку. Данные типа timestamp  это хорошее средство для поддержания сервером уникальности каждой строки.

    1. Выборка с упорядочением

Простейший вариант использования модификатора ORDER  упорядочение строк результата по значению одного из столбцов с указанием порядка сортировки или без такого указания (по умолчанию строки будут сортироваться в порядке возрастания значений в указанном столбце.). Например, выдать перечень книг из таблицы Книги в алфавитном порядке по фамилиям авторов:

SELECT “Код_книги”, “Автор”, “Название”

FROM “Книги”

ORDER BY “Автор”

или в порядке убывания цены :

SELECT “Код_книги”, “Цена”

FROM “Книги”

ORDER BY “Цена” DESC

При включении в список ORDER BY нескольких столбцов СУБД сортирует строки результата по значениям первого столбца списка пока не появится несколько строк с одинаковыми значениями данных в этом столбце. Такие строки сортируются по значениям следующего столбца из списка ORDER BY и т.д. Например, выдать содержимое таблицы Заказы, отсортировав ее строки по столбцам Код_заказчика и Дата:

SELECT *

FROM “Заказы”

ORDER BY “Код_заказчика”, “Дата”

Кроме того, в список ORDER BY можно включать не только имя столбца, но и его порядковую позицию в перечне SELECT. Номер столбца в списке элементов SELECT отсчитывается слева направо. Благодаря этому возможно упорядочение результатов на основе вычисляемых столбцов, не имеющих имен, например:

SELECT “Код_книги”, ”Цена” * 0.2

FROM “Книги”

ORDER BY 2 DESC

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

SELECT “Код_книги”, ”Автор”, “ Название”, “Издательство”, “Цена”, “Код_книги”

FROM “Книги”

ORDER BY 2, 3

Выдаваемые по этому запросу строки не помещаются полностью на экране, и поэтому при горизонтальной прокрутке первые столбцы выходят за пределы активного окна. Выводимый повторно в конце списка Код_книги облегчит работу с таким списком.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]