Главная / Базы данных /
Введение в Oracle SQL / Тест 7
Введение в Oracle SQL - тест 7
Упражнение 1:
Номер 1
Даны таблицы:
TOOLS| NAME | PRICE | TYPE |
|---|
| drill | 155 | A |
| sawzall | 192 | N |
| mitre saw | 292 | M |
| router | 86 | I |
| RAD | 145 | M |
| jigsaw | 128 | I |
| screwdriver | 77 | P |
TOOL_TYPES| TYPE | USAGE |
|---|
| A | Always |
| I | Often |
| M | Sometimes |
| N | Rarely |
| P | Never |
Запрос SQL:
SELECT t.type, SUM(t.price)
FROM tools t
GROUP BY t.type
HAVING SUM(t.price) >= (SELECT AVG(price)
FROM tools
WHERE type IN (SELECT type
FROM tool_types
WHERE usage = 'Often'));
Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
 (6) выполнение запроса вызовет ошибку 
Номер 2
Даны таблицы:
TOOLS| NAME | PRICE | TYPE |
|---|
| drill | 155 | A |
| sawzall | 192 | N |
| mitre saw | 292 | M |
| router | 86 | I |
| RAD | 145 | M |
| jigsaw | 128 | I |
| screwdriver | 77 | P |
TOOL_TYPES| TYPE | USAGE |
|---|
| A | Always |
| I | Often |
| M | Sometimes |
| N | Rarely |
| P | Never |
Запрос SQL:
SELECT t.type, SUM(t.price)
FROM tools t
GROUP BY t.type
HAVING SUM(t.price) <= (SELECT AVG(price)
FROM tools
WHERE type IN (SELECT type
FROM tool_types
WHERE usage = 'Often'));
Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
 (6) выполнение запроса вызовет ошибку 
Номер 3
Даны таблицы:
TOOLS| NAME | PRICE | TYPE |
|---|
| drill | 155 | A |
| sawzall | 192 | N |
| mitre saw | 292 | M |
| router | 86 | I |
| RAD | 145 | M |
| jigsaw | 128 | I |
| screwdriver | 77 | P |
TOOL_TYPES| TYPE | USAGE |
|---|
| A | Always |
| I | Often |
| M | Sometimes |
| N | Rarely |
| P | Never |
Запрос SQL:
SELECT t.type, SUM(t.price)
FROM tools t
GROUP BY t.type
HAVING SUM(t.price) <= (SELECT AVG(price)
FROM tools
WHERE type IN (SELECT type
FROM tool_types
WHERE usage = 'Sometimes'));
Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
 (6) выполнение запроса вызовет ошибку 
Упражнение 2:
Номер 1
Оператор SQL, который позволяет объединить результаты нескольких предложений SELECT в одно множество:
Ответ:
 (1) UNION 
 (2) ALL 
 (3) INTEGRATE 
 (4) AGGREGATE 
 (5) INNER JOIN 
Номер 2
Предложения GROUP BY и HAVING НЕ используются для ...
Ответ:
 (1) объединения всех строк таблицы в одну группу 
 (2) группировки данных, основанной на известном критерии 
 (3) расположения данных в порядке возрастания 
 (4) исключения данных из результата запроса, основанного на известном критерии 
 (5) включения данных в результат запроса, основанного на неизвестном критерии 
Номер 3
Запрос SQL: SELECT type, AVG(price), MIN(price)
FROM product
GROUP BY category; Определить, что является неправильным в данном запросе SQL.
Ответ:
 (1) cкалярные значения и аггрегированные данные нельзя одновременно указывать в списке SELECT 
 (2) в список SELECT нельзя включать несколько групповых функций 
 (3) отсутствует условие WHERE 
 (4) столбец "type» должен быть включен в предложение GROUP BY 
 (5) ничего 
Упражнение 3:
Номер 1
Запросы SQL, возвращающие список фамилий (столбец FIO), упорядоченных по убыванию:
Ответ:
 (1) Select FIO from STUDENT group by FIO; 
 (2) Select FIO from STUDENT order by FIO ASC; 
 (3) Select FIO from STUDENT order by FIO DESС; 
 (4) Select FIO from STUDENT order by FIO; 
Номер 2
Запрос SQL:1 SELECT city, state, COUNT(*)
2 FROM customers
3 GROUP BY city, state
4 UNION ALL
5 SELECT city, state, COUNT(*)
6 FROM employees
7 GROUP BY city, state;
Необходимо отсортировать результат выборки, возвращаемой запросом. Для выполнения поставленной задачи следует разместить предложение ORDER BY ...
Ответ:
 (1) между строками 1 и 2, и между строками 5 и 6 
 (2) между строками 3 и 4, и после строки 7 
 (3) после предложения UNION ALL 
 (4) после строки 7 
 (5) предложение ORDER BY не может быть включено в запрос, содержащий UNION ALL 
Номер 3
Верными предложениями относительно сортировки результатов выборки в SQL являются:
Ответ:
 (1) при указании в предложении ORDER BY столбцов, содержащих пустые значения, эти значения будут отображаться последними 
 (2) допускается смешивание в предложении ORDER BY имен столбцов и их порядковых номеров в списке SELECT (например, ORDER BY product, 2, price, 4) 
 (3) ключевое слово ASC, которое является необязательным при сортировке по символьным столбцам, обязательно должно указываться после имени числового столбца (например, ORDER BY salary ASC) 
 (4) предложение ORDER BY должно быть расположено после предложения GROUP BY (если оно имеется в команде SELECT), но перед предложением HAVING (если оно имеется в команде SELECT) 
Упражнение 4:
Номер 1
Запрос SQL:SELECT dept_no, AVG(MONTHS_BETWEEN(SYSDATE, hiredate))
FROM emp
WHERE AVG(MONTHS_BETWEEN(SYSDATE, hiredate)) > 60
GROUP BY dept_no
ORDER BY AVG(MONTHS_BETWEEN(SYSDATE, hiredate));
Причина, вследствие которой запрос SQL вызывает ошибку:
Ответ:
 (1) групповые функции нельзя использовать в списке выборки команды SELECT 
 (2) групповые функции нельзя использовать в предложении WHERE  
 (3) групповые функции нельзя использовать в предложении ORDER BY 
 (4) групповые функции не могут содержать вложенные однострочные функции 
Номер 2
Дана таблица:
PRODUCT (Товары)| COLUMN NAME | DATATYPE | COMMENT |
|---|
| ID | NUMBER(7) | PRIMARY KEY |
| SALE_PRICE | NUMBER(7,2) | Сумма продажи |
Запросы SQL:
SELECT MAX(sale_price), MIN(sale_price), AVG(sale_price)
FROM product;SELECT ROUND(MAX(sale_price),2), ROUND(MIN(sale_price),2), ROUND(AVG(sale_price),2)
FROM product
GROUP BY sale_price;
Разница между результатами выполнения команд заключается в следующем:
Ответ:
 (1) выполнение одной из команд SQL вызовет ошибку 
 (2) запрос 2 возвратит одну строку, запрос 1 возвратит более одной строки 
 (3) запрос 1 возвратит 3 значения, запрос 2 возвратит по 3 значения для каждой суммы продажи 
 (4) запрос 1 возвратит результат для каждой суммы продажи, запрос 2 возвратит результат для каждого товара 
Номер 3
Дана таблица:
PART (Детали)| COLUMN NAME | DATATYPE | COMMENT |
|---|
| ID | NUMBER(7) | PRIMARY KEY |
| COST | NUMBER(7,2) | Цена |
| PRODUCT_ID | NUMBER(7) | Номер товара |
Запросы SQL:
SELECT ROUND(MAX(cost),2), ROUND(MIN(cost),2),
ROUND(SUM(cost),2), ROUND(AVG(cost),2)
FROM part;SELECT product_id, ROUND(MAX(cost),2), ROUND(MIN(cost),2),
ROUND(SUM(cost),2), ROUND(AVG(cost),2)
FROM part
GROUP BY product_id;
Разница между результатами выполнения команд заключается в следующем:
Ответ:
 (1) запрос 1 возвратит 1 строку, запрос 2 может возвратить несколько строк 
 (2) полученные выборки будут одинаковыми, но по-разному отображены 
 (3) запрос 1 возвратит результат для каждой детали, запрос 2 возвратит результат для каждого товара
 
 (4) выполнение одного из запросов вызовет ошибку
 
Упражнение 5:
Номер 1
Запрос SQL: SELECT flavor, SUM(ice_cream_sales)
FROM sales_detail
GROUP BY flavor
ORDER BY 2 DESC;
Определить, какое количество строк возвратит запрос, учитывая, что таблица "sales_detail» состоит из 10 строк с различными значениями в столбце "flavor» (2 значения 'vanilla', 3 значения 'chocolate', 4 значения 'strawberry' и 1 пустое значение).
Ответ:
 (1) 0 
 (2) 1 
 (3) 3 
 (4) 4 
 (5) 10 
Номер 2
Дана таблица:
LOCATIONS| ID | DESCRIPTION | CLIMATE | COST_RANK |
|---|
| 1 | Northwest | mild | 1 |
| 2 | West Coast | warm | 1 |
| 3 | Northeast | mild | 2 |
| 4 | Midwest | extremes | 3 |
| 5 | Southeast | hot | 3 |
| 6 | Southwest | hot | 3 |
Запрос SQL:
SELECT COUNT(*)
FROM locations
GROUP BY climate, cost_rank;Количество строк, возвращенных запросом, =...
Ответ:
 (1) 0 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
Номер 3
Дана таблица:
CUSTOMERS| ID | GENDER | DEPARTMENT | PURCHASES |
|---|
| 1 | female | housewares | 27.75 |
| 2 | male | garden | 42.20 |
| 3 | female | home improvement | 97.50 |
| 4 | female | kitchen/bathroom | 28.60 |
| 5 | male | furniture | 225.75 |
| 6 | female | garden | 34.40 |
| 7 | male | hardware | 16.50 |
Запрос SQL:
SELECT department, COUNT(*)
FROM customers
WHERE gender LIKE '%male' AND purchases > 30.00
GROUP BY department
ORDER BY 1;Количество строк, возвращенных запросом, =...
Ответ:
 (1) 0 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
Упражнение 6:
Номер 1
Порядок сортировки символьных строк в Oracle 11g определяется системным параметром ...
Ответ:
 (1) NLS_LANG 
 (2) NLS_ORDER 
 (3) NLS_CHARACTERSET 
 (4) NLS_COMP 
 (5) NLS_SORT 
Номер 2
Для сортировки символьных строк в соответствии с правилами русского языка необходимо установить значение параметра NLS_SORT равным ...
Ответ:
 (1) CYRILLIC 
 (2) BINARY 
 (3) LINGUISTIC 
 (4) RUSSIAN 
 (5) RUS 
Номер 3
Команда SQL, которая позволяет установить значение параметра сортировки символьных строк для сеанса работы с сервером Oracle:
Ответ:
 (1) ALTER USER 
 (2) ALTER TABLE 
 (3) ALTER SESSION 
 (4) ALTER DATABASE 
 (5) ALTER COLUMN 
Упражнение 7:
Номер 1
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
| ID | Номер сотрудника | PRIMARY KEY |
| LAST_NAME | Фамилия | NOT NULL |
| TITLE | Должность | NOT NULL |
| MANAGER_ID | Номер начальника | |
| SALARY | Зарплата | NOT NULL |
| START_DATE | Дата начала работы | NOT NULL |
Запрос SQL:
SELECT RPAD(last_name, LEVEL,'_')
FROM s_emp
CONNECT BY PRIOR id = manager_id
START WITH manager_id IS NULL;Команда выполняет построение ...
Ответ:
 (1) древовидной структуры подчиненности сотрудников компании 
 (2) списка сотрудников, сгруппированного по номеру начальника 
 (3) списка сотрудников, не имеющих начальника 
 (4) псевдостолбца LEVEL, содержащего номер сотрудника и номер начальника 
Номер 2
Полный перечень узлов в структуре древовидной иерархии возвращает системная функция:
Ответ:
 (1) CONNECT_BY_ISLEAF 
 (2) CONNECT_BY_ROOT 
 (3) SYS_CONNECT_BY_PATH 
 (4) CONNECT_BY_ISCYCLE 
Номер 3
Запрос SQL:SELECT RPAD(last_name, LEVEL,'_') "Level of subordination"
FROM s_emp
CONNECT BY PRIOR id = manager_id
START WITH manager_id IS NULL;Упорядочить "ветви" дерева в пределах одного уровня позволит предложение:
Ответ:
 (1) ORDER BY "Level of subordination" ASC 
 (2) ORDER SIBLINGS BY last_name 
 (3) ORDER BY NLSSORT(last_name, 'BINARY') 
Упражнение 8:
Номер 1
Команды выполнения операций над множествами строк, возвращаемых запросами:
Ответ:
 (1) UNION ALL 
 (2) UNION 
 (3) INTERSECT 
 (4) JOIN 
 (5) CROSS JOIN 
 (6) MINUS 
Номер 2
Запрос SQL: SELECT id, name FROM s_emp
UNION
SELECT id, last_name FROM s_dept; возвращает ...
Ответ:
 (1) сообщение об ошибке 
 (2) список столбцов таблиц S_EMP и S_DEPT  
 (3) объединение множеств результатов запросов 
 (4) пересечение множеств результатов запросов 
 (5) объединение множеств результатов запросов с включением дубликатов 
Номер 3
Верными высказываниями относительно выполнения операций над множествами в SQL являются:
Ответ:
 (1) количество столбцов в запросах должно совпадать 
 (2) идентичные строки исключаются из результата, за исключением случая применения оператора UNION ALL 
 (3) последовательности типов данных в списках выборки запросов должны совпадать 
 (4) названия столбцов итоговой выборки соответствуют названиям столбцов последнего запроса 
 (5) пустые значения считаются равными 
Упражнение 9:
Номер 1
Дана команда: ALTER SESSION SET NLS_SORT = RUSSIAN_CI;Действие, выполняемое командой - установка порядка сортировки символьных строк ...
Ответ:
 (1) на основе двоичных кодов символов, для сеанса работы с сервером Oracle 
 (2) в соответствии с правилами русского языка, для результатов конкретного запроса 
 (3) в соответствии с правилами русского языка с игнорированием регистра символов, для сеанса работы с сервером Oracle 
 (4) в соответствии с правилами русского языка с учетом регистра символов, для сеанса работы с сервером Oracle 
Номер 2
Дана команда: SELECT last_name FROM s_emp
ORDER BY NLSSORT(last_name, 'NLS_SORT = BINARY');Действие, выполняемое командой - установка порядка сортировки символьных строк ...
Ответ:
 (1) на основе двоичных кодов символов, для сеанса работы с сервером Oracle 
 (2) на основе двоичных кодов символов, для результатов конкретного запроса 
 (3) на основе двоичных кодов символов, с игнорированием регистра символов, для сеанса работы с сервером Oracle 
 (4) в соответствии с порядком латинского алфавита, результатов конкретного запроса 
Номер 3
Верными высказываниями относительно сортировки в SQL Oracle 11g являются:
Ответ:
 (1) значения NULL указываются первыми при сортировке по возрастанию 
 (2) значения NULL указываются первыми при сортировке по убыванию 
 (3) предложение NULLS_FIRST позволяет разместить пустые значения первыми 
 (4) предложение NULLS_LAST позволяет исключить пустые значения из результирующей выборки 
Упражнение 10:
Номер 1
Функциональность OLAP в SQL Oracle 11g позволяют имитировать конструкции:
Ответ:
 (1) GROUP BY ROLLUP 
 (2) GROUP BY OLAP 
 (3) GROUP BY GROUPING SETS 
 (4) GROUP BY CUBE 
Номер 2
Функции SQL, обрабатывающие пустые значения в строках с аггрегированными данными, при использовании конструкций ROLLUP и CUBE:
Ответ:
 (1) GROUPING_ID 
 (2) GROUPING 
 (3) GROUP_ID 
 (4) GROUPING SETS 
Номер 3
Запрос SQL:SELECT a, b, c, SUM(d), GROUP_ID
FROM vtable
GROUP BY GROUPING SETS (a, ROLLUP(b,c));Степень повторения строк с агрегированными данными возвращает функция:
Ответ:
 (1) SUM(d) 
 (2) GROUP_ID() 
 (3) GROUPING SETS 
 (4) ROLLUP(b,c) 
Упражнение 11:
Номер 1
Запрос SQL:SELECT a, b, SUM(c)
FROM vtable
GROUP BY ROLLUP(a,b);Выборку, эквивалентную результату запроса, возвращает команда:
Ответ:
 (1) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (2) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (3) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b; 
 (4) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b;
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
Номер 2
Запрос SQL:SELECT a, b, SUM(c)
FROM vtable
GROUP BY CUBE(a,b));Выборку, эквивалентную результату запроса, возвращает команда:
Ответ:
 (1) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (2) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (3) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b; 
 (4) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b;
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
Номер 3
Запрос SQL:SELECT a, b, SUM(c)
FROM vtable
GROUP BY (a,b);Выборку, эквивалентную результату запроса, возвращает команда:
Ответ:
 (1) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (2) SELECT a, b, SUM(c) FROM vtable GROUP BY a, b
UNION ALL
SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
 (3) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b; 
 (4) SELECT a, NULL, SUM(c) FROM vtable GROUP BY a
UNION ALL
SELECT NULL, b, SUM(c) FROM vtable GROUP BY b;
UNION ALL
SELECT NULL, NULL, SUM(c) FROM vtable; 
Упражнение 12:
Номер 1
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
| ID | Номер сотрудника | PRIMARY KEY |
| LAST_NAME | Фамилия | NOT NULL |
| TITLE | Должность | NOT NULL |
| MANAGER_ID | Номер начальника | |
| SALARY | Зарплата | NOT NULL |
| START_DATE | Дата начала работы | NOT NULL |
Запрос построения иерархии подчиненности:
SELECT LEVEL, RPAD(last_name, LEVEL,'_') "Level of subordination"
FROM s_emp
CONNECT BY PRIOR id = manager_id
START WITH manager_id IS NULL
ORDER SIBLINGS BY last_name;Номер уровня подчиненности сотрудника определяет предложение:
Ответ:
 (1) SELECT LEVEL 
 (2) CONNECT BY PRIOR id = manager_id 
 (3) START WITH manager_id IS NULL 
 (4) "Level of subordination" 
Номер 2
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
| ID | Номер сотрудника | PRIMARY KEY |
| LAST_NAME | Фамилия | NOT NULL |
| TITLE | Должность | NOT NULL |
| MANAGER_ID | Номер начальника | |
| SALARY | Зарплата | NOT NULL |
| START_DATE | Дата начала работы | NOT NULL |
Запрос построения иерархии подчиненности:
SELECT LEVEL, RPAD(last_name, LEVEL,'_') "Level of subordination"
FROM s_emp
CONNECT BY PRIOR id = manager_id
START WITH manager_id IS NULL
ORDER SIBLINGS BY last_name;Корневое значение древовидной иерархии определяет предложение:
Ответ:
 (1) RPAD(last_name, LEVEL,'_') 
 (2) CONNECT BY PRIOR id = manager_id 
 (3) START WITH manager_id IS NULL 
 (4) ORDER SIBLINGS BY last_name 
Номер 3
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
| ID | Номер сотрудника | PRIMARY KEY |
| LAST_NAME | Фамилия | NOT NULL |
| TITLE | Должность | NOT NULL |
| MANAGER_ID | Номер начальника | |
| SALARY | Зарплата | NOT NULL |
| START_DATE | Дата начала работы | NOT NULL |
Запрос построения иерархии подчиненности:
SELECT LEVEL, RPAD(last_name, LEVEL,'_') "Level of subordination"
FROM s_emp
CONNECT BY PRIOR id = manager_id
START WITH manager_id IS NULL
ORDER SIBLINGS BY last_name;Критерий зависимости между узлами древовидной иерархии определяет предложение:
Ответ:
 (1) RPAD(last_name, LEVEL,'_') 
 (2) CONNECT BY PRIOR id = manager_id 
 (3) START WITH manager_id IS NULL 
 (4) SELECT LEVEL