Лекция 17. Язык баз данных SQL: средства манипулирования данными
Тесты
Заключение
Если вернуться к синтаксическим определениям разд. 13.3 Лекции 13, то можно убедиться, что в последних четырех лекциях мы рассмотрели все варианты организации оператора SELECT языка SQL (за исключением конструкций collection_derived_table и ONLY (table_or_query_name), относящихся к объектным расширениям языка SQL).
Для общего понимания языка на модельном уровне более важными являются предыдущие три лекции. Данная лекция включена в курс, скорее, с целью общего ознакомления читателей с новыми возможностями оператора выборки, чем с целью их подробного описания. С большой вероятностью средства формулировки аналитических и рекурсивных запросов языка SQL будут пересматриваться при подготовке следующих вариантов стандарта языка.
Пусть тело таблицы EMP имеет следующий вид (в таблице содержится дополнительный столбец EMP_BONUS, как он был определен в разд. 12.2 Лекции 12):
EMP
EMP_NO | DEPT_NO | EMP_BDATE | EMP_SAL | EMP_BONUS |
15000.00 | 13000.00 | |||
16000.00 | 14000.00 | |||
14000.00 | NULL | |||
16000.00 | 13000.00 | |||
NULL | 15000.00 | 14000.00 | ||
NULL | 17000.00 | NULL | ||
17000.00 | 16000.00 | |||
16000.00 | 15000.00 | |||
17000.00 | 16000.00 | |||
20000.00 | NULL | |||
18000.00 | 17000.00 | |||
18000.00 | 17000.00 | |||
22000.00 | 20000.00 | |||
22000.00 | 20000.00 | |||
NULL | 13000.00 | 12000.00 | ||
NULL | 14000.00 | NULL | ||
NULL | NULL | 19000.00 | 18000.00 |
1 (1) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_SAL, EMP_BONUS, DEPT_NO, MAX(EMP_BDATE) AS MAX_BDATE,
GROUPING (EMP_BONUS) AS GBON, GROUPING (DEPT_NO) AS GDN
FROM EMP
GROUP BY ROLLUP (EMP_SAL, EMP_BONUS, DEPT_NO);?
(а) -
EMP_SAL | EMP_BONUS | DEPT_NO | MAX_BDATE | GBON | GDN |
NULL | NULL | NULL | |||
13000.00 | NULL | NULL | |||
14000.00 | NULL | NULL | |||
15000.00 | NULL | NULL | NULL | ||
16000.00 | NULL | NULL | |||
17000.00 | NULL | NULL | NULL | ||
18000.00 | NULL | NULL | |||
19000.00 | NULL | NULL | NULL | ||
20000.00 | NULL | NULL | |||
22000.00 | NULL | NULL | |||
13000.00 | 12000.00 | NULL | |||
15000.00 | 13000.00 | NULL | |||
15000.00 | 14000.00 | NULL | NULL | ||
16000.00 | 14000.00 | NULL | |||
16000.00 | 13000.00 | NULL | |||
16000.00 | 15000.00 | NULL | |||
17000.00 | 16000.00 | NULL | |||
18000.00 | 17000.00 | NULL | |||
19000.00 | 18000.00 | NULL | NULL | ||
22000.00 | 20000.00 | NULL | |||
13000.00 | 12000.00 | ||||
14000.00 | NULL | ||||
15000.00 | 13000.00 | ||||
15000.00 | 14000.00 | NULL | |||
16000.00 | 14000.00 | ||||
16000.00 | 13000.00 | ||||
16000.00 | 15000.00 | ||||
17000.00 | NULL | NULL | |||
17000.00 | 16000.00 | ||||
18000.00 | 17000.00 | ||||
20000.00 | NULL | ||||
22000.00 | 20000.00 |
(б) +
EMP_SAL | EMP_BONUS | DEPT_NO | MAX_BDATE | GBON | GDN |
NULL | NULL | NULL | |||
13000.00 | NULL | NULL | |||
14000.00 | NULL | NULL | |||
15000.00 | NULL | NULL | NULL | ||
16000.00 | NULL | NULL | |||
17000.00 | NULL | NULL | NULL | ||
18000.00 | NULL | NULL | |||
19000.00 | NULL | NULL | NULL | ||
20000.00 | NULL | NULL | |||
22000.00 | NULL | NULL | |||
13000.00 | 12000.00 | NULL | |||
14000.00 | NULL | NULL | |||
15000.00 | 13000.00 | NULL | |||
15000.00 | 14000.00 | NULL | NULL | ||
16000.00 | 14000.00 | NULL | |||
16000.00 | 13000.00 | NULL | |||
16000.00 | 15000.00 | NULL | |||
17000.00 | NULL | NULL | NULL | ||
17000.00 | 16000.00 | NULL | |||
18000.00 | 17000.00 | NULL | |||
19000.00 | 18000.00 | NULL | NULL | ||
20000.00 | NULL | NULL | |||
22000.00 | 20000.00 | NULL | |||
13000.00 | 12000.00 | ||||
14000.00 | NULL | ||||
14000.00 | NULL | NULL | |||
15000.00 | 13000.00 | ||||
15000.00 | 14000.00 | NULL | |||
16000.00 | 14000.00 | ||||
16000.00 | 13000.00 | ||||
16000.00 | 15000.00 | ||||
17000.00 | NULL | NULL | |||
17000.00 | 16000.00 | ||||
18000.00 | 17000.00 | ||||
19000.00 | 18000.00 | NULL | NULL | ||
20000.00 | NULL | ||||
22000.00 | 20000.00 |
(в) -
EMP_SAL | EMP_BONUS | DEPT_NO | MAX_BDATE | GBON | GDN |
NULL | NULL | NULL | |||
13000.00 | NULL | NULL | |||
14000.00 | NULL | NULL | |||
15000.00 | NULL | NULL | NULL | ||
16000.00 | NULL | NULL | |||
17000.00 | NULL | NULL | NULL | ||
18000.00 | NULL | NULL | |||
19000.00 | NULL | NULL | NULL | ||
20000.00 | NULL | NULL | |||
22000.00 | NULL | NULL | |||
13000.00 | 12000.00 | NULL | |||
14000.00 | NULL | NULL | |||
15000.00 | 13000.00 | NULL | |||
16000.00 | 14000.00 | NULL | |||
17000.00 | NULL | NULL | NULL | ||
18000.00 | 17000.00 | NULL | |||
19000.00 | 18000.00 | NULL | NULL | ||
20000.00 | NULL | NULL | |||
22000.00 | 20000.00 | NULL | |||
13000.00 | 12000.00 | ||||
14000.00 | NULL | ||||
15000.00 | 13000.00 | ||||
16000.00 | 14000.00 | ||||
17000.00 | NULL | NULL | |||
18000.00 | 17000.00 | ||||
19000.00 | 18000.00 | NULL | NULL | ||
20000.00 | NULL | ||||
22000.00 | 20000.00 |
1 (2) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_BDATE, EMP_BONUS, MIN (EMP_SAL) AS MIN_SAL,
GROUPING (EMP_BDATE) AS GBD, GROUPING (EMP_BONUS) AS GBON
FROM EMP
GROUP BY ROLLUP (EMP_BDATE, EMP_BONUS);?
(а) –
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
NULL | NULL | 15000.00 | ||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
16000.00 | 17000.00 | |||
NULL | 14000.00 | 15000.00 | ||
NULL | 18000.00 | 19000.00 |
(б) –
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
16000.00 | 17000.00 |
(в) +
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
NULL | NULL | 15000.00 | ||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
NULL | 14000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
NULL | 14000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
NULL | 14000.00 | |||
16000.00 | 17000.00 | |||
NULL | 14000.00 | 15000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | NULL | 17000.00 |
1 (3) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_BONUS, EMP_DEPT, MIN (EMP_BDATE) AS MIN_BDATE,
GROUPING (EMP_BONUS) AS GBON, GROUPING (EMP_DEPT) AS GDN
FROM EMP
GROUP BY ROLLUP (EMP_BONUS, EMP_DEPT);?
(а) +
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
NULL | NULL | NULL | ||
13000.00 | ||||
14000.00 | NULL | |||
14000.00 | NULL | |||
15000.00 | ||||
16000.00 | ||||
17000.00 | ||||
18000.00 | NULL | NULL | ||
20000.00 | ||||
NULL | NULL | |||
NULL | ||||
NULL | NULL |
(б) -
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
13000.00 | ||||
14000.00 | NULL | |||
14000.00 | NULL | |||
15000.00 | ||||
16000.00 | ||||
17000.00 | ||||
20000.00 | ||||
NULL | NULL | |||
NULL | ||||
NULL | NULL |
(в) -
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
NULL | NULL | NULL | ||
13000.00 | ||||
14000.00 | NULL | |||
14000.00 | NULL | |||
14000.00 | NULL | |||
15000.00 | ||||
15000.00 | NULL | |||
16000.00 | ||||
17000.00 | ||||
18000.00 | ||||
18000.00 | NULL | NULL | ||
20000.00 | ||||
NULL | NULL | |||
NULL | ||||
NULL | NULL |
2 (1) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_BDATE, EMP_BONUS, MIN (EMP_SAL) AS MIN_SAL,
GROUPING (EMP_BDATE) AS GBD, GROUPING (EMP_BONUS) AS GBON
FROM EMP
GROUP BY CUBE (EMP_SAL, EMP_BONUS, DEPT_NO);?
(а) -
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
NULL | 14000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
NULL | 14000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
NULL | 14000.00 | |||
16000.00 | 17000.00 | |||
NULL | 14000.00 | 15000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | 13000.00 | 15000.00 | ||
NULL | 14000.00 | 15000.00 | ||
NULL | 15000.00 | 16000.00 | ||
NULL | 16000.00 | 17000.00 | ||
NULL | 17000.00 | 18000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | 20000.00 | 22000.00 |
(б) +
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
NULL | NULL | 15000.00 | ||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
NULL | 14000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
NULL | 14000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
NULL | 14000.00 | |||
16000.00 | 17000.00 | |||
NULL | 14000.00 | 15000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | NULL | 17000.00 | ||
NULL | 13000.00 | 15000.00 | ||
NULL | 14000.00 | 15000.00 | ||
NULL | 15000.00 | 16000.00 | ||
NULL | 16000.00 | 17000.00 | ||
NULL | 17000.00 | 18000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | 20000.00 | 22000.00 | ||
NULL | NULL | 14000.00 |
в) -
EMP_BDATE | EMP_BONUS | MIN_SAL | GBD | GBON |
NULL | NULL | 13000.00 | ||
NULL | 13000.00 | |||
NULL | 16000.00 | |||
NULL | 14000.00 | |||
NULL | 17000.00 | |||
13000.00 | 15000.00 | |||
15000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
12000.00 | 13000.00 | |||
14000.00 | 16000.00 | |||
17000.00 | 18000.00 | |||
13000.00 | 16000.00 | |||
20000.00 | 22000.00 | |||
16000.00 | 17000.00 | |||
NULL | 14000.00 | 15000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | 13000.00 | 15000.00 | ||
NULL | 14000.00 | 15000.00 | ||
NULL | 15000.00 | 16000.00 | ||
NULL | 16000.00 | 17000.00 | ||
NULL | 17000.00 | 18000.00 | ||
NULL | 18000.00 | 19000.00 | ||
NULL | 20000.00 | 22000.00 |
2 (2) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_BONUS, EMP_DEPT, MIN (EMP_BDATE) AS MIN_BDATE,
GROUPING (EMP_BONUS) AS GBON, GROUPING (EMP_DEPT) AS GDN
FROM EMP
GROUP BY CUBE (EMP_BONUS, EMP_DEPT);?
(а) +
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
NULL | NULL | NULL | ||
13000.00 | ||||
14000.00 | NULL | |||
14000.00 | NULL | |||
15000.00 | ||||
16000.00 | ||||
17000.00 | ||||
18000.00 | NULL | NULL | ||
20000.00 | ||||
NULL | NULL | |||
NULL | ||||
NULL | NULL | |||
NULL | NULL | |||
NULL | ||||
NULL | ||||
NULL | NULL | NULL |
(б) -
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
13000.00 | ||||
14000.00 | NULL | |||
14000.00 | NULL | |||
15000.00 | ||||
16000.00 | ||||
17000.00 | ||||
20000.00 | ||||
NULL | NULL | |||
NULL | ||||
NULL | NULL | |||
NULL | ||||
NULL |
(в) -
EMP_BONUS | EMP_DEPT | MIN_DDATE | GBON | GDN |
NULL | NULL | NULL | ||
13000.00 | NULL | |||
14000.00 | NULL | NULL | ||
15000.00 | NULL | |||
16000.00 | NULL | |||
17000.00 | NULL | |||
18000.00 | NULL | NULL | ||
20000.00 | NULL | |||
13000.00 | ||||
14000.00 | NULL | |||
15000.00 | ||||
16000.00 | ||||
17000.00 | ||||
20000.00 | ||||
NULL | ||||
NULL | ||||
NULL |
2 (3) Какая из показанных ниже таблиц является результатом запроса
SELECT EMP_SAL, EMP_BONUS, MAX(EMP_BDATE) AS MAX_BDATE,
GROUPING (EMP_BONUS) AS GBON)
FROM EMP
GROUP BY ROLLUP (EMP_SAL, EMP_BONUS);?
(а) -
EMP_SAL | EMP_BONUS | MAX_BDATE | GBON |
NULL | NULL | NULL | |
13000.00 | NULL | ||
14000.00 | NULL | ||
15000.00 | NULL | NULL | |
16000.00 | NULL | ||
17000.00 | NULL | NULL | |
18000.00 | NULL | ||
19000.00 | NULL | NULL | |
20000.00 | NULL | ||
22000.00 | NULL | ||
NULL | 13000.00 | ||
NULL | 14000.00 | NULL | |
NULL | 15000.00 | ||
NULL | 16000.00 | ||
NULL | 17000.00 | ||
NULL | 18000.00 | NULL | |
NULL | 20000.00 | ||
13000.00 | 12000.00 | ||
15000.00 | 13000.00 | ||
15000.00 | 14000.00 | NULL | |
16000.00 | 14000.00 | ||
16000.00 | 13000.00 | ||
16000.00 | 15000.00 | ||
17000.00 | 16000.00 | ||
18000.00 | 17000.00 | ||
19000.00 | 18000.00 | NULL | |
22000.00 | 20000.00 |
(б) -
EMP_SAL | EMP_BONUS | MAX_BDATE | GBON |
NULL | NULL | NULL | |
13000.00 | NULL | ||
14000.00 | NULL | ||
15000.00 | NULL | NULL | |
16000.00 | NULL | ||
17000.00 | NULL | NULL | |
18000.00 | NULL | ||
19000.00 | NULL | NULL | |
20000.00 | NULL | ||
22000.00 | NULL | ||
NULL | 13000.00 | ||
NULL | 15000.00 | ||
NULL | 16000.00 | ||
NULL | 17000.00 | ||
NULL | 20000.00 | ||
13000.00 | 12000.00 | ||
15000.00 | 13000.00 | ||
16000.00 | 14000.00 | ||
16000.00 | 13000.00 | ||
16000.00 | 15000.00 | ||
17000.00 | 16000.00 | ||
18000.00 | 17000.00 | ||
22000.00 | 20000.00 |
(в) +
EMP_SAL | EMP_BONUS | MAX_BDATE | GBON |
NULL | NULL | NULL | |
13000.00 | NULL | ||
14000.00 | NULL | ||
15000.00 | NULL | NULL | |
16000.00 | NULL | ||
17000.00 | NULL | NULL | |
18000.00 | NULL | ||
19000.00 | NULL | NULL | |
20000.00 | NULL | ||
22000.00 | NULL | ||
NULL | 13000.00 | ||
NULL | 14000.00 | NULL | |
NULL | 15000.00 | ||
NULL | 16000.00 | ||
NULL | 17000.00 | ||
NULL | 18000.00 | NULL | |
NULL | 20000.00 | ||
13000.00 | 12000.00 | ||
14000.00 | NULL | ||
15000.00 | 13000.00 | ||
15000.00 | 14000.00 | NULL | |
16000.00 | 14000.00 | ||
16000.00 | 13000.00 | ||
16000.00 | 15000.00 | ||
17000.00 | NULL | NULL | |
17000.00 | 16000.00 | ||
18000.00 | 17000.00 | ||
19000.00 | 18000.00 | NULL | |
22000.00 | 20000.00 |
3 (1) Пусть имеется следующее дерево:
![]() |
Какой из следующих обходов этого дерева является обходом в ширину?
(а) +
КОРЕНЬ-ПОТОМОК1-ПОТОМОК2-ПОТОМОК3-П1.1-П2.1-П3.1-П3.2-П3.3-П1.1.1-П1.1.2-П2.1.1-П2.1.1.1
(б) –
КОРЕНЬ-ПОТОМОК1-ПОТОМОК2-ПОТОМОК3-П1.1-П1.1.1-П1.1.2-П2.1-П2.1.1-П2.1.1.1-П3.1-П3.2-П3.3
(в) –
КОРЕНЬ-ПОТОМОК1- П1.1-П1.1.1-П1.1.2- ПОТОМОК2- П2.1-П2.1.1-П2.1.1.1- ПОТОМОК3- П3.1-П3.2-П3.3
3 (2) Пусть имеется следующее дерево:
![]() |
Какой из следующих обходов этого дерева является обходом в ширину?
(а) +
КОРЕНЬ-ПОТОМОК1-П1.1-П1.1.1-П1.1.2-ПОТОМОК2-П2.1-П2.1.1-П2.1.1.1-П2.1.1.2-ПОТОМОК3-П3.1-П3.2-П3.3
(б) -
КОРЕНЬ- ПОТОМОК2-П2.1-П2.1.1-П2.1.1.1-П2.1.1.2- КОРЕНЬ-ПОТОМОК1-П1.1-П1.1.1-П1.1.2- ПОТОМОК3-П3.1-П3.2-П3.3
(в) -
КОРЕНЬ-ПОТОМОК1- ПОТОМОК2- ПОТОМОК3- П1.1- П2.1- П3.1-П3.2-П3.3- П1.1.1-П1.1.2- П2.1.1-П2.1.1.1-П2.1.1.2
3 (3) Какая из следующих последовательностей является монотонной (n = {1, 2, …, m, …})?
(a) Последовательность k, где k = 2-n
(б) Последовательность k, где k = (-1)n
(в) Последовательность k, где k = (n+2)/(n+1)
Пусть имеется таблица PARTS следующего вида:
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P4 | |
P2 | P3 | |
P2 | P5 | |
P3 | P5 | |
P3 | P6 | |
P4 | P3 | |
P4 | P6 | |
P7 | P8 | |
P7 | P9 |
Каждая строка таблицы PARTS соответствует детали, идентификационный номер которой содержится в столбце Major. Если строка о детали с идентификационным номером k содержится в теле таблицы PARTS, то столбец Minor содержит идентификационный номер другой детали p, которая входит в состав детали k в числе экземпляров, задаваемом значением столбца Qty данной строки.
4 (1) Какая из приведенных ниже таблиц является результатом рекурсивного запроса
WITH RECURSIVE PX (Major, Minor, Qty) AS
((SELECT Major, Minor, Qty
FROM PARTS
WHERE PARTS.Major = ‘P1’)
UNION ALL
(SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty
FROM PX, PARTS
where pp.Major = px.Minor))
SELECT Major, Minor, Qty FROM PX;?
(а) +
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P4 | |
P1 | P3 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 | |
P1 | P3 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 |
(б) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 |
(в) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P6 |
4 (2) Какая из приведенных ниже таблиц является результатом рекурсивного запроса
WITH RECURSIVE PX (Major, Minor, Qty) AS
((SELECT Major, Minor, Qty
FROM PARTS
WHERE PARTS.Major = ‘P1’)
UNION ALL
(SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty
FROM PX, PARTS
where pp.Major = px.Minor))
SEARCH BREADTH
FIRST BY Major, Minor SET ORDER_COLUMN
SELECT Major, Minor, Qty FROM PX
ORDER BY ORDER_COLUMN;?
(а) +
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P3 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 |
(б) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P3 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 |
(в) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P4 | |
P1 | P3 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 | |
P1 | P3 | |
P1 | P6 | |
P1 | P5 | |
P1 | P6 |
4 (3) Какая из приведенных ниже таблиц является результатом рекурсивного запроса
WITH RECURSIVE PX (Major, Minor, Qty) AS
((SELECT Major, Minor, Qty
FROM PARTS
WHERE PARTS.Major = ‘P1’)
UNION ALL
(SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty
FROM PX, PARTS
where pp.Major = px.Minor))
SEARCH DEPTH FIRST BY Major, Minor SET ORDER_COLUMN
SELECT Major, Minor, Qty FROM PX
ORDER BY ORDER_COLUMN;?
(а) +
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P3 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 |
(б) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P3 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 |
(в) -
Major | Minor | Qty |
P1 | P2 | |
P1 | P3 | |
P1 | P3 | |
P1 | P3 | |
P1 | P4 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P5 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 | |
P1 | P6 |
Название этой лекции не совсем правильно отражает ее реальное содержание. Собственно средствам языка SQL, предназначенным для обновления базы данных, посвящается только один из трех основных разделов. Однако и следующие два раздела непосредственно примыкают к этой теме. В разд. 17.3 обсуждаются возможности выполнения операций обновления базы данных через представляемые таблицы. Обсуждается проблема в целом, подход к ее решению, применявшийся в ранних вариантах стандарта SQL, и решение, принятое в стандарте SQL:1999. Последний основной раздел лекции посвящается механизму триггеров, специфицированному в стандарте SQL:1999. Здесь тоже имеется явная связь с основной темой лекции, потому что основным условием срабатывания триггера является выполнение некоторой операции обновления базы данных, и действия, выполняемые в триггерной процедуре, как правило, тоже связаны с обновлением базы данных.