ВУЗ:
Составители:
Рубрика:
- 31 -
DNAME JOB SUM(SAL) COUNT(*) АVG(SL)
RESEARCH ANALYST 6,000.00 2 3,000.00
RESEARCH CLERC 1,900.00 2 950.00
SALES SALESMAN 5,600.00 4 1,400.00
Условие поиска в клаузе HAVING исключает из результата запроса
группы, содержащих менее двух работников - COUNT(*)>=2.
Контрольные вопросы
1. Что такое групповые запросы к БД?
2. Каков формат SQL-запроса с клаузами GROUP BY и HAVING?
3. Напишите (на языке уровня Pascal или C) программы, функционально ана-
логичные вышеприведенным SQL-запросам (**) и (***).
2.11.Подзапросы
Одна
из причин, по которым SQL столь мощен и универсален, состоит в
том, что всегда можно построить сложные запросы из нескольких про-
стых. Клауза WHERE из одного запроса может содержать другой запрос,
который называется подзапросом. Можно использовать подзапросы для
динамического построения условий поиска для требуемого главного запроса.
Предположим, что нужно составить список
всех работников с такой же
работой как у работника JONES:
SELECT ENAME,JOB --- главный запрос
FROM EMP
WHERE JOB =
(SELECT JOB --- подзапрос
FROM EMP
WHERE ENAME = ‘JONES’);
ENAME JOB
JONES MАNАGER
BLAKE MАNАGER
CLARK MАNАGER
Исполняющая система обрабатывает подзапрос перед обработкой
главного запроса, поскольку его результат нужен для определения резуль-
тата главного запроса. Вторая команда SELECT в данном примере (а это
именно подзапрос) возвращает значение MANAGER, как легко убедиться,
если взглянуть на должность работника JONES в таблице EMP.
Исполняющая система использует это значение для динамического по-
- 31 - DNAME JOB SUM(SAL) COUNT(*) АVG(SL) RESEARCH ANALYST 6,000.00 2 3,000.00 RESEARCH CLERC 1,900.00 2 950.00 SALES SALESMAN 5,600.00 4 1,400.00 Условие поиска в клаузе HAVING исключает из результата запроса группы, содержащих менее двух работников - COUNT(*)>=2. Контрольные вопросы 1. Что такое групповые запросы к БД? 2. Каков формат SQL-запроса с клаузами GROUP BY и HAVING? 3. Напишите (на языке уровня Pascal или C) программы, функционально ана- логичные вышеприведенным SQL-запросам (**) и (***). 2.11.Подзапросы Одна из причин, по которым SQL столь мощен и универсален, состоит в том, что всегда можно построить сложные запросы из нескольких про- стых. Клауза WHERE из одного запроса может содержать другой запрос, который называется подзапросом. Можно использовать подзапросы для динамического построения условий поиска для требуемого главного запроса. Предположим, что нужно составить список всех работников с такой же работой как у работника JONES: SELECT ENAME,JOB --- главный запрос FROM EMP WHERE JOB = (SELECT JOB --- подзапрос FROM EMP WHERE ENAME = ‘JONES’); ENAME JOB JONES MАNАGER BLAKE MАNАGER CLARK MАNАGER Исполняющая система обрабатывает подзапрос перед обработкой главного запроса, поскольку его результат нужен для определения резуль- тата главного запроса. Вторая команда SELECT в данном примере (а это именно подзапрос) возвращает значение MANAGER, как легко убедиться, если взглянуть на должность работника JONES в таблице EMP. Исполняющая система использует это значение для динамического по-
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »