3682SAS / Новая папка / лаба6
.docМинистерство образования и науки РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра промышленной электроники (ПрЭ)
Создание сложных запросов с использованием подзапросов и агрегированных функций
отчет по лабораторной работе №6
по дисциплине «Базы данных»
Выполнил:
студент гр.368-3
Пикулев К.А.______
Проверил:
ст. преподаватель каф. ПрЭ
Муравьев А.И.______
2012
Задание: Выбрать сотрудников, имеющих более 3 детей, один из которых учится в школе.
Запрос:
select * from mai.sotr where nom_sotr in (select nom_sotr from mai.deti group by nom_sotr having count(*)>3) and nom_sotr in (select nom_sotr from mai.deti where school is not null group by nom_sotr having count(*)=1 ) order by nom_sotr
NOM_SOTR |
NOM_OTD |
NAME1 |
NAME2 |
NAME3 |
CITY |
DATE_B |
STREET |
HOUSE |
FLAT |
PHONE |
ZARPL |
21 |
111 |
Еремин |
Александр |
Антонович |
Улан-Удэ |
12.03.1970 |
297 |
105 |
86 |
239032 |
22000 |
39 |
117 |
Щукова |
Светлана |
Игоревна |
С-Петербург |
28.11.1986 |
475 |
162 |
27 |
685761 |
6000 |
150 |
110 |
Лахтина |
Оксана |
Ивановна |
Магадан |
09.04.1969 |
287 |
6 |
7 |
735545 |
11500 |
210 |
114 |
Рахлин |
Вячеслав |
Кириллович |
Орел |
11.02.1977 |
371 |
15 |
66 |
179570 |
11500 |
454 |
114 |
Кириллов |
Алексей |
Вячеславович |
Новосибирск |
20.01.1978 |
381 |
9 |
85 |
274826 |
19000 |
1629 |
115 |
Репников |
Александр |
Яковлевич |
Астрахань |
24.03.1980 |
404 |
17 |
104 |
239224 |
14500 |
1762 |
117 |
Серкова |
Елена |
Антоновна |
Чита |
30.01.1986 |
466 |
8/1 |
0 |
867434 |
17000 |
1920 |
103 |
Аносова |
Марина |
Кирилловна |
Магнитогорск |
25.08.1951 |
99 |
4 |
2 |
850755 |
23500 |
2923 |
107 |
Кравченко |
Владимир |
Антонович |
Владивосток |
04.08.1961 |
205 |
12 |
114 |
289182 |
16500 |
5208 |
108 |
Хаипова |
Ольга |
Станиславовна |
Тюмень |
15.06.1963 |
225 |
112 |
45 |
354232 |
8500 |
5476 |
110 |
Калинина |
Зоя |
Олеговна |
Таганрог |
25.02.1969 |
286 |
6 |
37 |
168648 |
12000 |
5479 |
115 |
Сгибнева |
Дарья |
Антоновна |
Благовещенск |
22.08.1979 |
397 |
41/1 |
14 |
356203 |
9000 |
5495 |
105 |
Иванова |
Ольга |
Антоновна |
Ярославль |
05.03.1956 |
147 |
23 |
10 |
126484 |
26500 |
6061 |
113 |
Заврина |
Мария |
Владимировна |
Рязань |
30.08.1976 |
366 |
11 |
116 |
238011 |
7500 |
6078 |
102 |
Трикилова |
Галина |
Олеговна |
Тюмень |
01.05.1949 |
74 |
5 |
49 |
239356 |
5500 |
6887 |
111 |
Зыкова |
Ангелина |
Кирилловна |
Саранск |
21.01.1970 |
295 |
16 |
32 |
794182 |
29000 |
7181 |
118 |
Дмитриев |
Андрей |
Федорович |
Новосибирск |
08.08.1988 |
493 |
93 |
90 |
365225 |
18000 |
7315 |
116 |
Акулинина |
Ангелина |
Ивановна |
Якутск |
23.10.1982 |
431 |
2 |
45 |
885890 |
13000 |
7924 |
119 |
Гриднева |
Клавдия |
Валерьевна |
Рязань |
28.06.1990 |
513 |
48 |
19 |
799876 |
8500 |
8475 |
102 |
Черногривов |
Иван |
Станиславович |
Хабаровск |
07.11.1947 |
58 |
6 |
117 |
708960 |
26000 |
8814 |
101 |
Довидович |
Александр |
Георгиевич |
Ярославль |
21.02.1945 |
30 |
22 |
17 |
799204 |
13000 |
9165 |
109 |
Гинкель |
Антон |
Никитович |
Рязань |
10.09.1965 |
249 |
16 |
14 |
129781 |
18000 |
9523 |
100 |
Первицкий |
Федор |
Станиславович |
Улан-Удэ |
23.08.1942 |
3 |
48 |
49 |
483317 |
15000 |
9735 |
113 |
Бакционова |
Оксана |
Федоровна |
Пермь |
06.08.1975 |
354 |
17 |
337 |
731840 |
11500 |
24 |
|
|
|
|
|
|
|
|
|
|
|
Ответы на контрольные вопросы:
-
В какой части опции WHERE оператора SELECT должен находиться подзапрос?
В правой части опции WHERE находится подзапрос.
-
В чем преимущество подзапросов?
Первичное число строк при многотабличных выборках может получиться очень большим. Время выборки будет достаточно большим, результат выборки занимает значительную память компьютера. Преимущество подзапросов заключается в том, что он может иметь несколько циклов повторений, что увеличивает быстроту запроса.
-
Какая реляционная операция выполняется при многотабличной выборке?
Декартовое умножение
-
Какая логическая операция используется, если подзапрос возвращает несколько строк?
IN - Логическая операция вхождения во множество.
-
С какими функциями используется опция группировки?
Агрегированные функции:
SUM (поле) – возвращает суммарное значение поля
MIN (поле) – возвращает максимальное значение поля
MAX (поле) – возвращает минимальное значение поля
AVG (поле) – возвращает среднее значение поля
COUNT (поле) – возвращает количество строк с непустыми значениями поля
COUNT (*) – возвращает общее количество строк