Если вернуться к синтаксическим определениям разд. 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) Пусть имеется следующее дерево:
Какой из следующих обходов этого дерева является обходом в ширину?
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. Здесь тоже имеется явная связь с основной темой лекции, потому что основным условием срабатывания триггера является выполнение некоторой операции обновления базы данных, и действия, выполняемые в триггерной процедуре, как правило, тоже связаны с обновлением базы данных.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление