Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Частичный вывод запрошенных данных




Операции соединения подзапросов

Операции соединения подзапросов языка SQL – это реализация операторов реляционной алгебры объединения, пересечения и вычитания. Для выполнения этих операторов требуется, чтобы элементы обоих множеств были взаимно однородными, то есть содержали элементы одинаковой природы, или, если выражаться в терминах баз данных, строки, состоящие из атрибутов одинаковых типов. Сами множества строк создаются при помощи подзапросов.

Существует четыре операции соединения подзапросов:

UNION – объединение строк из обоих подзапросов; в результате остаются строки из обоих подзапросов, причем полностью повторяющиеся строки удаляются;

UNION ALL – объединение строк из обоих подзапросов; в результате остаются строки из обоих подзапросов, причем полностью повторяющиеся строки остаются;

INTERSECT – пересечение строк из обоих подзапросов; в результате остаются строки, присутствующие в обоих подзапросах;

MINUS – вычитание результатов одного подзапроса из результатов второго подзапроса.

Пример:

-- получение списка студентов(их номера зачеток),не имеющих хобби

SELECT N_z FROM Students

MINUS

SELECT N_z FROM St_Hobby;

Частичный вывод запрошенных данных

Необходимость частичного вывода запрошенных данных часто обусловлена либо предполагаемым большим объемом данных, когда нужно предварительно проверить адекватность запроса и полученных данных, либо требованиями к реализации конкретной задачи (например, постраничный вывод данных). Например, при помощи использования функции агрегирования MAX, можно получить информацию о том, кто является самым «активным» студентом, но невозможно вывести информацию о двух самых активных, трех и т.д.

СУБД ORACLE динамически присваивает порядковый номер каждой записи, возвращаемой в результате выполнения любого запроса, по умолчанию скрывая его от пользователя. Первая (или единственная) возвращенная запись получит номер 1 независимо от своего положения в таблице. На эти номера можно ссылаться в параметре WHERE. Если в операторе SELECT заданы параметры сортировки результатов запроса, то можно добиться того, что СУБД покажет 5, 50 или 500 наиболее важных записей.

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

 

SELECT имя_столбца_1 [, имя_столбца_2 …]

FROM имя_таблицы

WHERE (ROWNUM >= нижняя_граница)

AND (ROWNUM <= верхняя_граница)

ORDER BY столбец_сортировки;

 

При необходимости можно указывать либо нижнюю границу, либо верхнюю, либо обе. Например, для того чтобы вывести двух лидеров (самых “активных” студентов) на основе количества их хобби, можно выполнить следующий запрос:

 

SELECT N_z, COUNT(N_z)

FROM Students

WHERE ROWNUM<=2

GROUP BY N_z

ORDER BY COUNT(N_z)DESC;

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 409 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

2442 - | 2196 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.