игра брюс 2048
Главная / Базы данных / Введение в Oracle SQL / Тест 14

Введение в Oracle SQL - тест 14

Упражнение 1:
Номер 1
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
 
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Выборку трех сотрудников, которые приняты на работу последними, выполняет запрос:

Ответ:

 (1) SELECT * FROM s_emp WHERE ROWNUM <= 3 ORDER BY start_date DESC; 

 (2) SELECT * FROM (SELECT * FROM s_emp ORDER BY start_date DESC) WHERE ROWNUM <= 3; 

 (3) WITH emp_1 AS (SELECT * FROM s_emp ORDER BY start_date DESC) SELECT * FROM emp_1 WHERE ROWNUM <= 3; 

 (4) SELECT * FROM (SELECT * FROM s_emp ORDER BY start_date) WHERE ROWNUM <= 3; 


Номер 2
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
 
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Выборку 10 самых низкооплачиваемых сотрудников выполняет запрос:

Ответ:

 (1) SELECT * FROM s_emp WHERE ROWNUM <= 10 ORDER BY salary; 

 (2) SELECT * FROM (SELECT * FROM s_emp ORDER BY salary DESC) WHERE ROWNUM <= 10; 

 (3) WITH emp_1 AS (SELECT * FROM s_emp ORDER BY salary DESC) SELECT * FROM emp_1 WHERE ROWNUM <= 10; 

 (4) SELECT * FROM (SELECT * FROM s_emp ORDER BY salary) WHERE ROWNUM <= 10; 


Номер 3
Запрос SQL:SELECT * FROM (SELECT a.*, ROWNUM rn
     FROM (SELECT * FROM s_emp ORDER BY TRUNC(SYSDATE - start_date) DESC) a)
WHERE rn = 5;Результат действия запроса - выбор ...

Ответ:

 (1) пяти сотрудников с наибольшим стажем работы 

 (2) пяти сотрудников с наименьшим стажем работы 

 (3) информации о сотруднике, чей стаж работы является пятым в порядке убывания 

 (4) информации о сотруднике, чей стаж работы является пятым в порядке возрастания 


Упражнение 2:
Номер 1
В базе данных существуют таблицы S_EMP и S_DEPT:filesЗапрос SQL: SELECT * FROM s_dept
WHERE id NOT IN (SELECT dept_id FROM s_emp);В случае наличия пустого значения в столбце DEPT_ID, результат выполнения запроса - ...

Ответ:

 (1) список отделов, в которых не работают сотрудники 

 (2) список сотрудников, которые не работают в отделах 

 (3) сообщение об ошибке 

 (4) пустое множество 


Номер 2
В базе данных существуют таблицы S_EMP и S_DEPT:filesЗапрос SQL: SELECT * FROM s_dept
WHERE id NOT IN (SELECT dept_id FROM s_emp);Избежать появления пустого множества в качестве результата запроса позволит ...

Ответ:

 (1) добавление предложения WHERE dept_id IS NOT NULL в подзапрос 

 (2) добавление предложения WHERE dept_id IS NOT NULL в основной запрос 

 (3) изменение оператора NOT IN на NOT EXISTS 

 (4) изменение оператора NOT IN на <> ANY 


Номер 3
В базе данных существуют таблицы S_REGION и S_DEPT:filesКорректным запросом получения списка регионов, в которых нет отделов с названием 'Sales', является вариант:

Ответ:

 (1) SELECT region_id FROM s_dept WHERE name <> 'Sales'; 

 (2) SELECT id FROM s_region WHERE id NOT IN (SELECT region_id FROM s_dept WHERE name = 'Sales'); 

 (3) SELECT id FROM s_region WHERE NOT EXISTS (SELECT region_id FROM s_dept WHERE name = 'Sales'); 

 (4) SELECT id FROM s_region MINUS SELECT region_id FROM s_dept WHERE name = 'Sales'; 


Упражнение 3:
Номер 1
Декартово произведение таблиц в базе данных возникает в случае ...

Ответ:

 (1) отсутствия условия соединения 

 (2) применения оператора CROSS JOIN 

 (3) применения оператора множеств UNION 

 (4) применения операторов-кванторов EXISTS и ANY 


Номер 2
Избежать нежелательного декартова произведения возможно с использованием условия соединения в предложениях:

Ответ:

 (1) WHERE 

 (2) HAVING 

 (3) RIGHT OUTER JOIN 

 (4) NATURAL INNER JOIN 

 (5) CROSS JOIN 


Номер 3
Декартово произведение таблиц представляет собой ...

Ответ:

 (1) табличное пространство, содержащее все строки всех таблиц 

 (2) виртуальную таблицу со всеми строками и столбцами таблиц 

 (3) выборку, которая содержит комбинации всех строк таблиц друг с другом 

 (4) пустое множество 


Упражнение 4:
Номер 1
Таблицы базы данных:filesЗапрос SQL: SELECT * FROM s_region, s_dept, s_emp, s_customer;Данные о количестве строк и столбцов таблиц:
Имя таблицыЧисло столбцовЧисло строк
S_REGION25
S_DEPT310
S_EMP1325
S_CUSTOMER1210
Выборка, возвращенная запросом, будет включать в себя ...

Ответ:

 (1) 30 столбцов и 55 строк 

 (2) 30 столбцов и 12500 строк 

 (3) 28 столбцов и 2500 строк 

 (4) 936 столбцов и 12500 строк 


Номер 2
Таблицы базы данных:filesЗапрос SQL: SELECT * FROM s_dept, s_emp, s_customer;Данные о количестве строк и столбцов таблиц:
Имя таблицыЧисло столбцовЧисло строк
S_REGION25
S_DEPT310
S_EMP1325
S_CUSTOMER1210
Выборка, возвращенная запросом, будет включать в себя ...

Ответ:

 (1) 30 столбцов и 55 строк 

 (2) 30 столбцов и 12500 строк 

 (3) 28 столбцов и 2500 строк 

 (4) 936 столбцов и 12500 строк 


Номер 3
Таблицы базы данных:filesЗапрос SQL: SELECT * FROM s_dept, s_emp, s_region;Данные о количестве строк и столбцов таблиц:
Имя таблицыЧисло столбцовЧисло строк
S_REGION25
S_DEPT310
S_EMP1325
S_CUSTOMER1210
Выборка, возвращенная запросом, будет включать в себя ...

Ответ:

 (1) 18 столбцов и 1250 строк 

 (2) 30 столбцов и 12500 строк 

 (3) 28 столбцов и 2500 строк 

 (4) 936 столбцов и 12500 строк 


Упражнение 5:
Номер 1
Дана таблица:filesЗапросы SQL:
  • SELECT last_name, title FROM s_emp WHERE id NOT IN (SELECT manager_id FROM s_emp);
  • SELECT last_name, title FROM s_emp WHERE id NOT IN (SELECT manager_id FROM s_emp WHERE manager_id IS NOT NULL);
  • Различие в результатах действия запросов:

    Ответ:

     (1) отсутствует 

     (2) "Запрос 1" возвращает список сотрудников, не являющихся начальниками, "Запрос 2" возвращает список сотрудников, являющихся начальниками 

     (3) "Запрос 1" возвращает список сотрудников, являющихся начальниками, "Запрос 2" возвращает список сотрудников, не являющихся начальниками 

     (4) "Запрос 1" может возвратить пустое множество, "Запрос 2" всегда возвращает непустое множество в случае наличия значений в столбце MANAGER_ID 


    Номер 2
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Запросы SQL:
  • SELECT title, AVG(salary) avg_sal FROM s_emp GROUP BY title;
  • SELECT last_name, title, AVG(salary) OVER (PARTITION BY title) avg_sal FROM s_emp;
  • Различие в результатах действия запросов:

    Ответ:

     (1) отсутствует 

     (2) выполнение "Запроса 1" вызовет ошибку, "Запрос 2" будет выполнен безошибочно 

     (3) "Запрос 1" возвращает число строк, равное числу должностей, "Запрос 2" возвращает число строк, равное числу сотрудников 

     (4) "Запрос 1" будет выполнен безошибочно, выполнение "Запроса 2" вызовет ошибку 


    Номер 3
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Запрос SQL:SELECT last_name, SUM(salary) OVER() sum_sal FROM s_emp;Во избежание ошибки выполнения запроса для получения списка фамилий сотрудников и общей суммы зарплаты, в команду следует добавить:

    Ответ:

     (1) ничего 

     (2) предложение GROUP BY last_name 

     (3) предложение PARTITION BY last_name 

     (4) предложение PARTITION BY salary 


    Упражнение 6:
    Номер 1
    Верные высказывания относительно аналитических функций на примере: SELECT SUM(...) OVER () FROM ...;

    Ответ:

     (1) функция возвращает одну строку и один аггрегированный результат 

     (2) функция возвращает все строки таблицы и один аггрегированный результат для каждой строки 

     (3) группой строк считаются все строки таблицы 

     (4) разбиение множества строк таблицы на подгруппы невозможно 


    Номер 2
    Верные высказывания относительно функций аггрегирования на примере: SELECT SUM(...) FROM ...;

    Ответ:

     (1) функция возвращает одну строку и один аггрегированный результат 

     (2) функция возвращает все строки таблицы и один аггрегированный результат для каждой строки 

     (3) группой строк считаются все строки таблицы 

     (4) разбиение множества строк таблицы на подгруппы выполняется предложением PARTITION BY ... 


    Номер 3
    Верные высказывания относительно аналитических функций на примере: SELECT SUM(...) OVER (PARTITION BY ...) 
    FROM ...;

    Ответ:

     (1) функция возвращает одну строку и один аггрегированный результат 

     (2) функция возвращает все строки таблицы и один аггрегированный результат для каждой строки 

     (3) группой строк считаются все строки таблицы 

     (4) множество строк таблицы разделено на подгруппы предложением PARTITION BY ... 


    Упражнение 7:
    Номер 1
    Верные высказывания относительно опций аналитических функций на примере: SELECT SUM(...) OVER () FROM ...;

    Ответ:

     (1) разбиение множества строк таблицы на подгруппы выполняется предложением GROUP BY 

     (2) порядок строк в подгруппах задается предложением ORDER BY 

     (3) вывод пустых значений последними определяется предложением NULLS FIRST 

     (4) отбор результирующих групп, удовлетворяющих условию, выполняется предложением HAVING 


    Номер 2
    Опции PRECEDING и FOLLOWING аналитических функций определяют ...

    Ответ:

     (1) группы аггрегирования 

     (2) границы аггрегирования 

     (3) порядок вывода пустых значений 

     (4) порядок сортировки значений в группах 


    Номер 3
    Первое и последнее значения интервалов агрегирования позволяют получать функции:

    Ответ:

     (1) NULLS FIRST и NULLS LAST 

     (2) UNBOUNDED и CURRENT ROW 

     (3) FIRST_VALUE и LAST_VALUE 

     (4) ASCENDING и DESCENDING 


    Упражнение 8:
    Номер 1
    В запросе с аналитической функцией, определение интервала аггрегирования "от начала группы до обрабатываемой строки" задается параметрами: 

    Ответ:

     (1) PRECEDING и FOLLOWING 

     (2) ASCENDING и DESCENDING 

     (3) UNBOUNDED и CURRENT ROW 

     (4) FIRST_VALUE и LAST_VALUE 


    Номер 2
    Дано выражение: INTERVAL '12' MONTH Эквивалентное значение имеют выражения:

    Ответ:

     (1) NUMTOYMINTERVAL (1, 'YEAR') 

     (2) NUMTODSINTERVAL (1, 'YEAR') 

     (3) NUMTODSINTERVAL (12, 'MONTH') 

     (4) NUMTODSINTERVAL (12, 'DAY') 


    Номер 3
    Корректными параметрами выражения INTERVAL 'n' ... являются ... 

    Ответ:

     (1) YEAR 

     (2) QUARTAL 

     (3) MONTH 

     (4) WEEK 

     (5) DAY 

     (6) SECOND 


    Упражнение 9:
    Номер 1
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Запрос SQL:SELECT last_name, title, start_date, AVG(salary) OVER (ORDER BY start_date RANGE BETWEEN INTERVAL '3' MONTH PRECEDING AND CURRENT ROW) avg_sal FROM s_emp;Результат действия запроса - вывод фамилии, должности, даты начала работы ...

    Ответ:

     (1) и зарплаты сотрудников, чей стаж составляет не более трех месяцев 

     (2) с указанием средней зарплаты сотрудников в данной должности (для каждой строки) 

     (3) и среднего значения зарплаты, которое вычисляется среди сотрудников, разница в стаже с которыми не более трех месяцев (для обрабатываемой строки) 

     (4) с указанием средней зарплаты в компании для каждой строки 


    Номер 2
    Запрос SQL:SELECT last_name, title, start_date,
    AVG(salary) OVER (ORDER BY start_date 
    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) avg_sal 
    FROM s_emp;Команда иллюстрирует формирование интервалов аггрегирования по ...

    Ответ:

     (1) строкам 

     (2) значениям 

     (3) условию 

     (4) группе 


    Номер 3
    Запрос SQL:SELECT last_name, title, start_date,
    AVG(salary) OVER (ORDER BY start_date 
    RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) avg_sal 
    FROM s_emp;Команда иллюстрирует формирование интервалов аггрегирования по ...

    Ответ:

     (1) строкам 

     (2) значениям 

     (3) условию 

     (4) группе 


    Упражнение 10:
    Номер 1
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    DEPT_IDНомер отдела
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Необходимо получить фамилию, номер отдела, должность сотрудника с указанием суммарной зарплаты для каждой должности нарастающим итогом. Решением поставленной задачи является вариант:

    Ответ:

     (1) SELECT last_name, title, dept_id, SUM(salary) sum_sal FROM s_emp GROUP BY last_name, title, dept_id; 

     (2) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title) sum_sal FROM s_emp; 

     (3) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY dept_id) sum_sal FROM s_emp; 

     (4) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title,dept_id) sum_sal FROM s_emp; 


    Номер 2
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    DEPT_IDНомер отдела
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Необходимо получить фамилию, номер отдела, должность сотрудника с указанием суммарной зарплаты для каждого отдела нарастающим итогом. Решением поставленной задачи является вариант:

    Ответ:

     (1) SELECT last_name, title, dept_id, SUM(salary) sum_sal FROM s_emp GROUP BY last_name, title, dept_id; 

     (2) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title) sum_sal FROM s_emp; 

     (3) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY dept_id) sum_sal FROM s_emp; 

     (4) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title,dept_id) sum_sal FROM s_emp; 


    Номер 3
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
     
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Необходимо получить фамилию, номер отдела, должность сотрудника с указанием суммарной зарплаты для каждой должности в каждом отделе нарастающим итогом. Решением поставленной задачи является вариант:

    Ответ:

     (1) SELECT last_name, title, dept_id, SUM(salary) sum_sal FROM s_emp GROUP BY last_name, title, dept_id; 

     (2) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title) sum_sal FROM s_emp; 

     (3) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY dept_id) sum_sal FROM s_emp; 

     (4) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title, dept_id) sum_sal FROM s_emp; 


    Упражнение 11:
    Номер 1
    Запрос SQL:SELECT last_name, title, dept_id,
    SUM(salary) OVER (PARTITION BY title) sum_sal 
    FROM s_emp;Группами в данном запросе являются ...

    Ответ:

     (1) все строки таблицы 

     (2) множества строк с одинаковыми значениями в столбце TITLE 

     (3) множества строк с одинаковыми значениями в столбце SALARY 

     (4) множества строк с одинаковыми значениями в столбце DEPT_ID 


    Номер 2
    Запрос SQL:SELECT last_name, title, dept_id,
    SUM(salary) OVER (PARTITION BY title, dept_id) sum_sal 
    FROM s_emp;Группами в данном запросе являются ...

    Ответ:

     (1) все строки таблицы 

     (2) множества строк с одинаковыми значениями в столбце TITLE 

     (3) множества строк с одинаковыми значениями в столбце DEPT_ID 

     (4) множества строк с одинаковыми комбинациями значений в столбцах TITLE и DEPT_ID 


    Номер 3
    Запрос SQL:SELECT manager_id, MIN(salary) min_sal, COUNT(id) emp_count
    FROM s_emp
    WHERE manager_id IS NOT NULL
    GROUP BY manager_id
    HAVING min_sal > 1000;Группами в данном запросе являются ...

    Ответ:

     (1) все строки таблицы 

     (2) множества строк с одинаковыми значениями в столбце SALARY 

     (3) множества строк с одинаковыми значениями в столбце MANAGER_ID 

     (4) множества строк с одинаковыми значениями в столбце ID 


    Упражнение 12:
    Номер 1
    Запросы со скалярными функциями аггрегирования:

    Ответ:

     (1) SELECT manager_id, MIN(salary) min_sal, COUNT(id) emp_count FROM s_emp WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING min_sal > 1000; 

     (2) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title) sum_sal FROM s_emp; 

     (3) SELECT last_name, title, start_date, AVG(salary) OVER (ORDER BY start_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) avg_sal FROM s_emp; 

     (4) SELECT id, last_name, salary + NVL(commission_pct,0) FROM s_emp WHERE dept_id BETWEEN 31 AND 35 ORDER BY last_name;  


    Номер 2
    Запросы с аналитическими функциями аггрегирования:

    Ответ:

     (1) SELECT manager_id, MIN(salary) min_sal, COUNT(id) emp_count FROM s_emp WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING min_sal > 1000; 

     (2) SELECT last_name, title, dept_id, SUM(salary) OVER (PARTITION BY title) sum_sal FROM s_emp; 

     (3) SELECT last_name, title, start_date, AVG(salary) OVER (ORDER BY start_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) avg_sal FROM s_emp; 

     (4) SELECT id, last_name, salary + NVL(commission_pct,0) FROM s_emp WHERE dept_id BETWEEN 31 AND 35 ORDER BY last_name;  


    Номер 3
    Верными  относительно сравнения скалярных и аналитических функций аггрегирования являются следующие высказывания:

    Ответ:

     (1) скалярные функции аггрегирования, в отличие от аналитических, не допускают разбиения множества строк таблицы на подгруппы 

     (2) аналитические функции, в отличие от скалярных, возвращают аггрегированный результат для каждой строки таблицы 

     (3) при отсутствии предложений группировки, для скалярных и аналитических функций группой строк являются все строки таблицы 

     (4) скалярные функции аггрегирования, в отличие от аналитических, возвращают аггрегированный результат для каждой строки таблицы 




    Главная / Базы данных / Введение в Oracle SQL / Тест 14