1. Какой оператор SET показывает следующий рисунок?
- UNION
 - СОЮЗ ВСЕХ
 - ПЕРЕСЕЧЕНИЕ
 - МИНУС
 
Ответ: A. Операторы множеств используются для объединения результатов двух (или более) операторов SELECT. Допустимыми операторами множеств в Oracle 11g являются UNION, UNION ALL, INTERSECT и MINUS. При использовании с двумя операторами SELECT оператор set UNION возвращает результаты обоих запросов. Однако, если есть какие-либо дубликаты, они удаляются, и дублирующаяся запись перечисляется только один раз. Чтобы включить дубликаты в результаты, используйте UNION ALL set operator.INTERSECT перечисляет только записи, которые возвращаются обоими запросами; оператор множества MINUS удаляет результаты второго запроса из выходных данных, если они также найдены в результатах первого запроса. Операции INTERSECT и MINUS set дают дублированные результаты.
2. Какой оператор SET показывает следующий рисунок?
- UNION
 - СОЮЗ ВСЕХ
 - ПЕРЕСЕЧЕНИЕ
 - МИНУС
 
Ответ: B. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.
sql_certificate
3. Какой оператор SET показывает следующий рисунок?
- UNION
 - СОЮЗ ВСЕХ
 - ПЕРЕСЕЧЕНИЕ
 - МИНУС
 
Ответ: C. INTERSECT Возвращает только те строки, которые встречаются в наборах результатов обоих запросов, сортируя их и удаляя дубликаты.
4. Какой оператор SET показывает следующий рисунок?
- UNION
 - СОЮЗ ВСЕХ
 - ПЕРЕСЕЧЕНИЕ
 - МИНУС
 
Ответ: D. MINUS Возвращает только те строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.
5.Что касается операторов SET?
- Они меняют значения строк
 - Они объединяют результаты только двух компонентных запросов в один результат
 - Они объединяют результаты 10 компонентных запросов в два набора результатов.
 - Они объединяют результаты двух или более запросов компонентов в один результат
 
Ответ: D. Операторы Set используются для объединения результатов двух (или более) операторов SELECT. В Oracle 11g допустимы следующие операторы множеств: UNION, UNION ALL, INTERSECT и MINUS.
6. Как называются запросы, содержащие операторы SET?
- Суб-запросы
 - Совместные подзапросы
 - Запросы GROUP BY
 - Сложные запросы
 
Ответ: Д.
7.Что касается оператора UNION?
- Возвращает строки из комбинированных запросов вместе со значениями NULL
 - Возвращает строки для комбинированных запросов после устранения дубликатов
 - Возвращает строки для комбинированных запросов вместе с дублирующимися значениями
 - Возвращает строки для комбинированных запросов, игнорируя значения NULL
 
Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.
8.Что касается оператора UNION ALL?
- Возвращает строки из комбинированных запросов вместе со значениями NULL
 - Возвращает строки для комбинированных запросов после устранения дубликатов
 - Возвращает строки для комбинированных запросов вместе с дублирующимися значениями
 - Возвращает строки для комбинированных запросов, игнорируя значения NULL
 
Ответ: C. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.
9.Что касается оператора INTERSECT?
- Возвращает строки из комбинированных запросов вместе со значениями NULL
 - Возвращает строки для комбинированных запросов после устранения дубликатов
 - Возвращает общие строки из комбинированных запросов
 - Ни один из вышеперечисленных
 
Ответ: C. INTERSECT Возвращает только те строки, которые встречаются в наборах результатов обоих запросов, сортируя их и удаляя дубликаты.
10.Что касается оператора МИНУС?
- Возвращает строки из первого запроса, но не из второго запроса
 - Возвращает строки для второго запроса, но не из первого запроса
 - Возвращает повторяющиеся строки для объединенных запросов
 - Возвращает строки для комбинированных запросов, игнорируя значения NULL
 
Ответ: A. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.
11. Какой приоритет имеют операторы множества UNION, UNION ALL, INTERSECT и MINUS?
- СОЮЗ, СОЮЗ ВСЕХ, ИНТЕРСЕКТ И МИНУС
 - МИНУС, СОЮЗ, СОЮЗ ВСЕХ и ИНТЕРСЕКТ
 - ИНТЕРСЕКТ, МИНУС, СОЮЗ ВСЕ, СОЮЗ
 - Равный приоритет
 
Ответ: операторы D. SET имеют равный приоритет.
12. Каков порядок оценки операторов набора?
- Слева направо
 - Справа налево
 - Случайная оценка
 - Сверху вниз
 
Ответ: A, D. Предполагая, что нет группировки запросов с использованием скобок, операторы SET будут оцениваться сверху вниз и слева направо по горизонтали.
13. В каком из следующих случаев должна быть указана скобка?
- Когда INTERSECT используется с другими операторами множества
 - Когда UNION используется с UNION ALL
 - Когда МИНУС используется для запросов
 - Ни один из вышеперечисленных
 
Ответ: A. Использование круглых скобок явно изменит порядок вычисления, когда INTERSECT используется с другими операторами.
14.Что верно в отношении предложения SELECT, когда используются операторы SET?
- На выбранные столбцы нет ограничений
 - Столбцы, выражения, используемые в предложении SELECT, должны совпадать по числу в комбинированных запросах.
 - Столбцы, выражения, используемые в предложении SELECT, должны быть N в первом запросе и N-1 в последующих комбинированных запросах.
 - Как B, так и C
 
Ответ: Б. Все вместе должны иметь одинаковые нет. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.
15.Что касается операторов SET?
- Предложение SELECT должно иметь одинаковое количество столбцов, типы данных могут быть разными
 - Операторы SET могут использоваться только для объединения двух запросов.
 - Тип данных каждого столбца во втором запросе должен соответствовать типу данных соответствующего столбца в первом запросе.
 - Ни один из вышеперечисленных
 
Ответ: C. Все объединенное должно иметь одинаковый номер. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.
16.Где можно использовать предложение ORDER BY в случае использования операторов SET?
- В каждом совмещаемом запросе
 - Только в первом запросе
 - В самом конце составного запроса
 - Ни один из вышеперечисленных
 
Ответ: C. Если предложение ORDER BY используется между любыми запросами, объединенными с помощью операторов SET, это вызовет ошибку ORA.
17.Что верно в отношении запросов, которые имеют операторы SET в своем предложении WHERE?
- Эти запросы должны иметь одинаковый номер. и тип данных столбцов в их предложении SELECT.
 - Нет. столбцов, используемых в запросе предложения WHERE, и основной SELECT может отличаться
 - Нет. столбцов, используемых в предложении WHERE, должно быть одинаковым, тип данных может отличаться
 - Ни один из вышеперечисленных
 
Ответ: А. Все вместе должно иметь одинаковое нет. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.
18.Что верно для столбцов во втором запросе относительно столбцов в первом запросе?
- Столбец во втором запросе должен находиться в той же группе типов данных, что и соответствующий столбец в первом запросе.
 - Если столбец в 1-м запросе является NUMBER, соответствующий столбец во 2-м запросе должен быть VARCHAR2
 - Если столбец в 1-м запросе является NUMBER, соответствующий столбец во 2-м запросе также должен быть NUMBER.
 - Ни один из вышеперечисленных
 
Ответ: А, С.
19. Что из перечисленного относится к операторам SET?
- Операторы SET не могут использоваться в подзапросах
 - Операторы SET могут использоваться только в предложении WHERE
 - ORDER BY может использоваться для всех запросов, объединенных оператором SET
 - Операторы SET могут использоваться в подзапросах
 
Ответ: Д.
20. Каков наилучший способ изменить приоритет операторов SET, учитывая тот факт, что они имеют одинаковый приоритет?
- Порядок использования операторов SET может быть изменен, чтобы изменить приоритет
 - Равный приоритет не может быть изменен
 - Скобки могут быть использованы для изменения приоритета
 - Ни один из вышеперечисленных
 
Ответ: C. Скобки можно использовать для группировки конкретных запросов с целью явного изменения приоритета. Скобки предпочтительнее других операторов SET во время выполнения.
21.Что можно сказать о повторяющихся значениях и операторах SET?
- Нет оператора SET не отображает повторяющиеся значения
 - Все операторы SET могут отображать повторяющиеся значения
 - Только оператор UNION ALL отображает повторяющиеся значения
 - Ни один из вышеперечисленных
 
Ответ: C. UNION, INTERSECT и MINUS автоматически удаляют повторяющиеся значения
Изучите структуру таблиц СОТРУДНИКИ и ОТДЕЛЕНИЯ, рассмотрите следующий запрос и ответьте на вопросы 22 и 23.
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> DESC departments Name Null? Type ----------------------- -------- ---------------- DEPARTMENT_ID NOT NULL NUMBER(4) DEPARTMENT_NAME NOT NULL VARCHAR2(30) MANAGER_ID NUMBER(6) LOCATION_ID NUMBER(4)
SELECT department_id 
FROM employees e
UNION 
SELECT department_id 
FROM departments
22. Что будет отображаться в результате этого запроса?
- Он будет отображать различные идентификаторы отделов, содержащиеся в таблице СОТРУДНИКИ и ОТДЕЛЫ
 - Это выдаст ошибку ORA
 - Строки не выбраны
 - Ни один из вышеперечисленных
 
Ответ: A. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.
23.Что касается запроса, приведенного выше?
- Этот запрос возвращает ошибку ORA
 - Выполняется успешно, но не дает результатов
 - Запросы из разных таблиц нельзя использовать с операторами SET
 - Запрос выполняется успешно и дает ожидаемые результаты
 
Ответ: D. Составной запрос — это один запрос, составленный из нескольких запросов с использованием разных таблиц.
24. Каков порядок сортировки результатов по умолчанию, когда используется оператор UNION ALL?
- нисходящий
 - по возрастанию
 - Либо А, либо Б
 - Все вышеперечисленное
 
Ответ: B. По умолчанию составной запрос возвращает строки, отсортированные по всем столбцам слева направо в порядке возрастания. Единственное исключение — UNION ALL, где строки не будут отсортированы. Единственное место, где разрешено предложение ORDER BY, находится в конце составного запроса.
25. Каковы будут результаты составного запроса, в котором столбцы в SELECT имеют CHAR и равную длину?
- Выход будет иметь тип данных VARCHAR2 равной длины
 - Вывод будет иметь тип данных CHAR равной длины
 - Вывод будет иметь тип данных CHAR различной длины
 - Вывод будет иметь тип данных NUMBER равной длины
 
Ответ: B. Столбцы в запросах, составляющих составной запрос, могут иметь разные имена, но в выходном наборе результатов будут использоваться имена столбцов в первом запросе. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.
26. Каковы будут результаты составного запроса, в котором столбцы в SELECT имеют CHAR и различную длину?
- Выход будет иметь тип данных VARCHAR2 равной длины
 - Вывод будет иметь тип данных CHAR равной длины
 - Вывод будет иметь тип данных CHAR различной длины
 - Выход будет иметь тип данных VARCHAR2 с длиной большего значения CHAR
 
Ответ: D. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.
27. Что будет выводом составного запроса, если один или оба запроса выберут значения VARCHAR2?
- Выход будет иметь тип данных VARCHAR2.
 - Вывод будет иметь тип данных CHAR равной длины
 - Вывод будет иметь тип данных CHAR различной длины
 - Выход будет иметь тип данных VARCHAR2 с длиной большего значения CHAR
 
Ответ: A. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.
28.Что верно, если составные запросы выбирают числовые данные?
- Там будет одинаковый приоритет числовых значений операторов
 - Возвращаемые значения будут определены числовым приоритетом
 - Возвращаемые значения будут иметь тип данных NUMBER
 - Ни один из вышеперечисленных
 
Ответ: B, C. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.
29. Что произойдет, если список SELECT составных запросов возвращает результат типа данных VARCHAR2 и NUMBER?
- Oracle преобразует их неявно и возвращает результат типа данных VARCHAR2
 - Oracle преобразует их неявно и возвращает результат типа данных NUMBER
 - Ошибка ORA выброшена
 - Ни один из вышеперечисленных
 
Ответ: C. Oracle не конвертирует типы данных неявно.
30.Что касается оператора UNION?
- Это устраняет повторяющиеся значения, игнорируя значения NULL
 - Возвращает повторяющиеся значения, игнорируя значения NULL
 - Возвращает повторяющиеся значения, включая значения NULL
 - Устраняет повторяющиеся значения и не игнорирует значения NULL
 
Ответ: D. Значения NULL не игнорируются при использовании оператора UNION
31. Что можно сказать об именах и столбцах SQL-запроса, в котором используется оператор UNION?
- Названия столбцов должны быть идентичны
 - Имена и тип данных столбцов должны быть идентичны
 - Имена столбцов не должны быть идентичными
 - Ни один из вышеперечисленных
 
Ответ: C. Столбцы в запросах, которые составляют составной запрос, могут иметь разные имена, но в выходном наборе результатов будут использоваться имена столбцов в первом запросе.
Рассмотрим следующий экспонат таблицы JOB_HISTORY и следующий запрос. Ответьте на вопросы 32 и 33 ниже запроса.
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id , first_name, last_name, job_id FROM employees E UNION SELECT employee_id , first_name, last_name, job_id From job_history;
32. Сколько раз каждый сотрудник будет отображаться по вышеуказанному запросу?
- 0
 - 1
 - 2
 - 4
 
Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.
33. Каков будет результат вышеупомянутого запроса?
- Отображает текущие и предыдущие данные о работе сотрудников дважды
 - Отображает текущие и предыдущие сведения о работе сотрудников только один раз
 - Либо А, либо Б
 - Ни один из вышеперечисленных
 
Ответ: Б.
Изучите данные структуры таблиц, рассмотрите следующий запрос и ответьте на следующие вопросы с 34 по 37:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id , job_id, department_id FROM employees UNION SELECT employee_id , job_id, department_id From job_history;
34. Предполагая, что сотрудник с идентификатором 121 имел 2 идентификатора работы за время своего пребывания в компании. Учитывая вышеупомянутый запрос, сколько раз его записи будут отображаться в результатах?
- однажды
 - Дважды
 - трижды
 - Ни один из вышеперечисленных
 
Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты. Двуличность измеряется комбинацией столбцов, а не отдельных столбцов в отдельности.
35. Предполагая, что сотрудник с ID 121 занимал две должности в двух разных отделах — 10 и 20 в компании. Он работал как SA_REP в обоих отделах 10 и 20. Каков будет результат вышеупомянутого запроса?
- 2 ряда
 - 3 ряда
 - Нет строк
 - Ошибка ORA
 
Ответ: Б.
36. Какое из утверждений лучше всего описывает вывод, сделанный из вопросов 34 и 35?
- Есть дубликаты значений для кодов работ
 - Запрос выполняется, но полученные результаты являются неожиданными
 - Для отделов нет повторяющихся значений
 - Ни один из вышеперечисленных
 
Ответ: C. Поскольку комбинация кодов работ и отделов уникальна, дубликатов не получено.
37. Какова будет сортировка в наборе результатов, полученных запросом?
- По убыванию ID сотрудника
 - По убыванию на работу ID
 - По возрастанию по идентификатору сотрудника
 - По возрастанию по идентификатору отдела
 
Ответ: C. Сортировка по умолчанию будет возрастать на основе первого столбца, т. Е. В этом случае: идентификатора сотрудника. Однако это поведение можно изменить, поместив одно предложение ORDER BY в конце.
38. Какой из следующих операторов будет использоваться для получения дубликатов записей из запросов компонентов?
- UNION
 - СОЮЗ ВСЕХ
 - МИНУС
 - Ни один из вышеперечисленных
 
Ответ: B. UNION ALL не устраняет повторяющиеся значения.
39.В чем разница между операторами UNION и UNION ALL?
- Нет никакой разницы
 - UNION ALL также отображает повторяющиеся значения
 - Вывод в случае UNION ALL не сортируется по умолчанию
 - Ни один из вышеперечисленных
 
Ответ: B, C. При использовании с двумя операторами SELECT оператор set UNION возвращает результаты обоих запросов. Однако, если есть какие-либо дубликаты, они удаляются, и дублирующаяся запись указывается только один раз. Чтобы включить дубликаты в результаты, используйте оператор множеств UNION ALL
40.Что касается оператора INTERSECT?
- Количество столбцов и типы данных столбцов в запросах компонентов должны быть одинаковыми
 - Имена столбцов и типы данных столбцов в запросах компонентов должны совпадать
 - Оба а и Б
 - Ни один из вышеперечисленных
 
Ответ: A. Это особенность критериев общего свойства операторов SET.
41. Что можно сказать о наборе результатов, если порядок пересекающихся таблиц изменяется при использовании INTERSECT?
- Результат изменен
 - Результат остается прежним
 - Сортировка изменений по переделке
 - Ни один из вышеперечисленных
 
Ответ: Б.
42. Что из перечисленного относится к оператору INTERSECT?
- Игнорирует значения NULL
 - Он не игнорирует значения NULL
 - Возвращает все строки из первого запроса компонента
 - Ни один из вышеперечисленных
 
Ответ: Б.
Ответьте на соответствующие вопросы 43 и 44, приведенные ниже.
43. Вам необходимо отобразить имена и идентификаторы должностей тех сотрудников, которые в настоящее время имеют должность, совпадающую с предыдущей. Какой из следующих запросов будет работать? (Рассмотрим структуру таблицы как дано)
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
- 
SELECT employee_id , job_id, first_name, last_name FROM employees UNION SELECT employee_id , job_id, first_name, last_name FROM job_history;
 - 
SELECT employee_id , job_id, first_name, last_name FROM employees INTERSECT SELECT employee_id , job_id, first_name, last_name FROM job_history;
 - 
SELECT employee_id , job_id, first_name, last_name FROM employees UNION ALL SELECT employee_id , job_id, first_name, last_name FROM job_history;
 - Ни один из вышеперечисленных
 
Ответ: Б.
44. Учитывая вышеупомянутый запрос, т.е. вариант B в вопросе 43, каков будет результат, если идентификатор отдела также будет включен в предложение SELECT?
- Результат будет таким же
 - Результат будет другим
 - Результат будет таким же, но порядок будет другим
 - Ни один из вышеперечисленных
 
Ответ: A. Результат можно интерпретировать как — сотрудников, которые работали с одинаковыми должностями в одном отделе.
45.Что касается оператора МИНУС?
- Возвращает все строки из всех запросов компонентов
 - Он возвращает только общие строки из всех запросов компонентов
 - Он возвращает все строки из первого запроса, а не из последующих запросов
 - Возвращает все отдельные строки, выбранные первым запросом, но не присутствующие в последующих запросах.
 
Ответ: D. Оператор множества MINUS удаляет результаты второго запроса из выходных данных, если они также найдены в результатах первого запроса.
46. Что можно сказать относительно количества столбцов и типов данных запросов компонента, когда используется оператор MINUS?
- Они должны быть одинаковыми, тип данных может отличаться, но они должны принадлежать к одной группе типов данных.
 - Они должны совпадать с названиями столбцов
 - Оба а и Б
 - Ни один из вышеперечисленных
 
Ответ: А. Общая особенность операторов SET.
47. Вам необходимо отобразить идентификаторы сотрудников, которые не меняли работу ни разу за время пребывания в компании. Какой из следующих запросов будет правильным в этом случае? (Рассмотрим структуру таблицы как дано)
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
- 
SELECT employee_id FROM employees UNION SELECT employee_id FROM job_history;
 - 
SELECT employee_id FROM employees INTERSECT Select employee_id FROM job_history;
 - 
SELECT employee_id FROM employees MINUS Select employee_id FROM job_history;
 - 
SELECT employee_id FROM employees UNION ALL SELECT employee_id FROM job_history;
 
Ответ: C.
Изучите данные структуры таблиц и рассмотрите следующий запрос, ответьте на следующие вопросы 48 и 49:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id , first_name, job_id FROM employees UNION SELECT employee_id , NULL "first_name", job_id FROM job_history;
48.Что верно в отношении вышеуказанного запроса?
- Выдает ошибку, поскольку TO_CHAR (NULL) не может быть использован
 - Он успешно выполняется и выдает значения для идентификатора сотрудника, имени и текущей должности, включая повторяющиеся строки
 - Он успешно выполняется и выдает значения для идентификатора сотрудника, имени и всех заданий, выполняемых сотрудниками, за исключением повторяющихся строк
 - Ни один из вышеперечисленных
 
Ответ: C. Каждый запрос должен содержать одинаковое количество столбцов, которые сравниваются позиционно. NULL может быть заменен вместо столбца, который отсутствует в другом запросе в том же составном запросе.
49. Учитывая приведенный выше запрос, если оператор UNION заменяется оператором MINUS, что будет означать результат?
- Результат показывает тех сотрудников, у которых есть запись в таблице JOB_HISTORY
 - Результат показывает тех сотрудников, у которых нет записи в JOB_HISTORY, но они присутствуют в таблице EMPLOYEES
 - Либо из А или В
 - Ни один из вышеперечисленных
 
Ответ: B. MINUS дает уникальные результаты, которые присутствуют в первом запросе, но не во втором запросе.
Рассмотрите экспонат, приведенный ниже, и ответьте на следующие вопросы 50 и 51:
50. Каков будет результат следующего запроса?
SELECT AU_DETAILS FROM AUDIT UNION SELECT AU_DETAILS FROM AUDIT_YEARLY;
- Он успешно выполняется, давая правильные результаты, включая повторяющиеся значения
 - Он успешно выполняется, давая правильные результаты, исключая повторяющиеся значения
 - Выдает ошибку ORA
 - Ни один из вышеперечисленных
 
Ответ: C. Использование столбцов CLOB или LONG в предложении SELECT невозможно при использовании операторов множеств UNION.
51. Каков будет результат запроса, если UNION будет заменен на UNION ALL?
- Он будет успешно выполнен, давая правильные результаты, включая повторяющиеся значения
 - Выдает ошибку ORA
 - Он будет успешно выполнен, давая правильные результаты, исключая повторяющиеся значения
 - Он выполняется успешно, но дает неверные результаты.
 
Ответ: операторы B. .UNION, UNION ALL, INTERSECT и MINUS при использовании со столбцами LONG или CLOB выдают ошибку.
52. Предположим, что есть 4 компонентных запроса. Сколько операторов SET можно использовать для объединения их в один составной запрос?
- 1
 - 2
 - 4
 - 3
 
Ответ: D. Оператор SET, который будет использоваться, будет N-1, где N — количество запросов компонентов.
53. Как называются операторы SET, связанные с тем, что при использовании операторов SET используются два или более SELECT на основе столбцов, а не строк?
- Горизонтальные соединения
 - Декартовы соединения
 - Вертикальные соединения
 - Внешние соединения
 
Ответ: C.
54. В чем разница между операторами UNION и INTERSECT? (Выберите только лучшую разницу)
- UNION объединяет результаты двухкомпонентных запросов в один набор результатов с дублирующимися значениями
 - INTERSECT возвращает только те строки, которые возвращаются каждым из двух компонентных запросов
 - UNION дает отличные значения от запросов компонента, INTERSECT дает общие значения от запросов компонента
 - Как B, так и C
 
Ответ: C.
Изучите структуру таблицы EMPLOYEES и рассмотрите следующий запрос. Ответьте на вопросы с 55 по 60, которые следуют.
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
Запрос 1
SELECT * FROM EMPLOYEES where department_id = 10
Запрос 2
SELECT * FROM EMPLOYEES E where E.job_id IN (select first_name from EMPLOYEES E1 where E1.job_id = 'CLERK' and E.job_id = E1.job_id )
55. Вам нужно извлечь отчет, в котором отображаются результаты обоих запросов. Какой из следующих операторов следует использовать для получения требуемых результатов?
- UNION
 - СОЮЗ ВСЕХ
 - ПЕРЕСЕЧЕНИЕ
 - Ни один из вышеперечисленных
 
Ответ: B. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.
56. Вам необходимо отобразить все повторяющиеся значения вместе со всеми значениями, существующими в наборе результатов обоих запросов. Какой из следующих операторов SET вы можете использовать в приведенных выше запросах?
- ПЕРЕСЕЧЕНИЕ
 - UNION
 - МИНУС
 - Ни один из вышеперечисленных
 
Ответ: D. UNION ALL выдаст несортированные результаты с дубликатами.
57. В чем разница между наборами результатов при использовании операторов множеств UNION и UNION ALL?
- Набор результатов из UNION ALL фильтруется, включая повторяющиеся значения
 - Набор результатов из UNION фильтруется и сортируется, включая повторяющиеся значения
 - Набор результатов из UNION ALL не отсортирован и имеет повторяющиеся значения
 - Набор результатов из UNION фильтруется и сортируется без повторяющихся значений
 
Ответ: C, D.
58. Оператор UNION имеет больше издержек на базу данных, чем UNION ALL. Что не так в этом утверждении?
- Утверждение верно
 - Оператор UNION ALL имеет больше накладных расходов на базе данных, чем оператор UNION
 - UNION должен сортировать и удалять дубликаты, что приводит к дополнительным накладным расходам
 - Ни один из вышеперечисленных
 
Ответ: A, C. UNION должен выполнять больше задач, чем UNION ALL, потому что он сортирует и дедуплицирует наборы результатов. Следовательно, рекомендуется, чтобы, если не требовались отдельные строки, использовался UNION ALL.
59. Каков будет результат, если два приведенных выше запроса будут объединены с использованием оператора INTERSECT?
- На нем будут отображаться только те сотрудники, которые являются клерками в отделе 10
 - На нем будут отображаться все те сотрудники, которые находятся в отделе 10
 - Это покажет всех клерков.
 - Ни один из вышеперечисленных
 
Ответ: A. INTERSECT возвращает те записи, которые присутствуют в запросе 1 И запросе 2.
60. В чем разница между операторами INTERSECT и UNION?
- INTERSECT следует булевой логике «И», UNION следует булевой логике «ИЛИ»
 - UNION следует булевой логике «ИЛИ», тогда как INTERSECT следует логике «И»
 - Либо из А или В
 - Ни один из вышеперечисленных
 
Ответ: А.
61. В каком из следующих операторов SET изменение порядка запросов компонентов изменит набор результатов?
- UNION
 - СОЮЗ ВСЕХ
 - МИНУС
 - ПЕРЕСЕЧЕНИЕ
 
Ответ: C. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.
Рассмотрите следующий запрос и ответьте на следующие вопросы с 62 по 66:
SELECT 4 from dual INTERSECT SELECT 1 from dual;
62. Каким будет результат данного запроса?
- Нет строк
 - 4
 - 1
 - НОЛЬ
 
Ответ: A. Не будет выбрано ни одной строки, так как оператор INTERSECT не получит общих результатов от обоих запросов — операторы INTERSECT дают общие результаты, присутствующие в запросе 1 И запросе 2.
63. Каков будет результат запроса, если оператор INTERSECT будет заменен оператором MINUS?
- 3
 - 4
 - 0
 - 1
 
Ответ: B. MINUS дает результаты, которые присутствуют в первом запросе и отсутствуют во втором запросе.
64. Каков будет результат вышеуказанного запроса, если оператор INTERSECT будет заменен оператором UNION?
-   1
4
 -   4
1
 - НОЛЬ
 - 0
 
4
1
Ответ: A. UNION будет производить отдельные строки в наборе результатов в порядке возрастания.
65. Каков будет результат вышеупомянутого запроса, если оператор INTERSECT будет заменен оператором UNION ALL?
-   4
1
 - 0
 - НОЛЬ
 -   1
4
 
1
4
Ответ: A. UNION ALL отображает результаты в том виде, в каком они расположены в запросе, без сортировки.
66. Каков будет результат, если вышеуказанный запрос будет изменен, как показано ниже?
SELECT 1 from dual UNION ALL SELECT 4 from dual;
-   1
4
 -   4
1
 - НОЛЬ
 - Ни один из вышеперечисленных
 
4
1
Ответ: А.
Изучите структуру таблицы JOB_HISTORY_ARCHIVE. Это резервная таблица для таблицы JOB_HISTORY без дополнительного столбца. Предполагая, что обе таблицы имеют разные данные, рассмотрите запрос, приведенный ниже, и ответьте на вопросы с 67 по 70, которые следуют:
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
(SELECT * FROM job_history; MINUS SELECT * FROM job_history_archive) UNION ALL (SELECT * FROM job_history_archive MINUS SELECT * FROM job_history;);
67. Каков будет результат запроса, приведенного выше? (Выбрать лучший ответ)
- Он вернет те строки, которые отличаются в двух таблицах
 - Он вернет общие строки в двух таблицах
 - Он вернет все строки из двух таблиц
 - Ни один из вышеперечисленных
 
Ответ: А.
68.Что можно сделать, если приведенный выше запрос дает строки только из таблицы JOB_HISTORY?
- Это показывает, что JOB_HISTORY содержит две строки, отличные от таблицы JOB_HISTORY_ARCHIVE
 - Это показывает, что две строки одинаковы в таблицах JOB_HISTORY и JOB_HISTORY_ARCHIVE
 - Это показывает, что JOB_HISTORY_ARCHIVE содержит две строки, отличные от таблицы JOB_HISTORY
 - Ни один из вышеперечисленных
 
Ответ: А.
69. Что можно сказать, если приведенный выше запрос не дает результатов?
- Это показывает, что две таблицы имеют одинаковые данные
 - Это показывает, что компонентные запросы размещены неправильно
 - Это показывает, что операторы SET неправильно используются в составном запросе
 - Ни один из вышеперечисленных
 
Ответ: А.
70.Что касается запроса, приведенного выше, если в двух таблицах существуют повторяющиеся записи, то какие из следующих изменений следует внести в данный запрос?
- COUNT (*)
 - COUNT (*) и GROUP BY employee_id
 - COUNT (*) и ORDER BY employee_id
 - Ни один из вышеперечисленных
 
Ответ: B. COUNT (*) можно использовать, чтобы увидеть разницу между таблицами.
Рассмотрим следующий запрос:
SELECT 1 NUM, 'employee' TEXT FROM dual UNION SELECT TO_CHAR(NULL) NUM, 'departments' TEXT FROM dual;
71. Каков будет результат запроса, приведенного выше?
- 
NUM TEXT ---------- ----------- 1 employee departments
 - 
NUM TEXT ---------- ----------- 1 employee NULL departments
 - Ошибка ORA
 - 
NUM TEXT ---------- ----------- departments 1 employee
 
Ответ: C. Здесь числовое значение 1 сравнивается с символом NULL, который выдает ошибку «ORA-01790: выражение должно иметь тот же тип данных, что и соответствующее выражение».
Рассмотрите следующий запрос и ответьте на следующие вопросы 72 и 73:
SELECT months_between (sysdate, to_date('21-MAY-2013','DD-MON-YYYY')) FROM dual UNION SELECT TO_date(NULL) NUM FROM dual;
72. Каков будет результат запроса, приведенного выше? (Предположим, что SYSDATE 1 июля 2013 г.)
- Он успешно выполняется с правильными результатами
 - Выполняется успешно, но безрезультатно
 - Выдает ошибку ORA
 - Ни один из вышеперечисленных
 
Ответ. C. NUMBER и DATE не принадлежат одному типу данных. Здесь число, полученное с помощью MONTHS_BETWEEN, сравнивается с датой и, следовательно, с ошибкой.
73. Предположим, что оператор SELECT во 2-м запросе изменен, как показано ниже:
SELECT to_number (NULL) NUM FROM dual;
Каким будет результат из-за этого изменения?
- Он успешно выполняется с правильными результатами
 - Выполняется успешно, но безрезультатно
 - Выдает ошибку ORA
 - Ни один из вышеперечисленных
 
Ответ: А.
74. Изучите структуры таблиц и рассмотрите следующий запрос:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id "Employee ID" FROM employees UNION SELECT employee_id "EMP ID" FROM job_history;
Какие из приведенных ниже заголовков столбцов будут отображаться в наборе результатов?
- EMP ID
 - ID сотрудника
 - EMPLOYEE_ID
 - Ошибка ORA, поскольку имена столбцов должны быть одинаковыми в запросах компонентов.
 
Ответ: B. Столбцы в запросах, составляющих составной запрос, могут иметь разные имена, но в выходном наборе результатов будут использоваться имена столбцов в первом запросе.
Изучите две приведенные структуры таблиц, рассмотрите следующий запрос и ответьте на следующие вопросы 75 и 76:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id FROM employees e UNION SELECT employee_id FROM job_history j ORDER BY j.employee_id ;
75. Каков будет результат запроса, приведенного выше?
- Результаты будут упорядочены по идентификатору сотрудника из таблицы JOB_HISTORY.
 - Результаты будут упорядочены по идентификатору сотрудника из таблицы EMPLOYEES.
 - Там не будет упорядочения результатов
 - Ошибка ORA
 
Ответ: D. ORDER BY должен быть сделан на основе имен столбцов из первого запроса, а не из столбцов второго запроса.
76.Какое из следующих предложений ORDER BY может заменить ошибочный ORDER BY в приведенном выше запросе?
- ORDER BY e.employee_id
 - ЗАКАЗАТЬ ПО J.2
 - ЗАКАЗАТЬ НА 1
 - Ничего из вышеперечисленного, ORDER BY не допускается в запросе
 
Ответ: C. Это более общая спецификация, и Oracle упорядочит ее по первому столбцу первого запроса.
77. Рассмотрите следующую выставку и ответьте на вопрос ниже:
SELECT au_doc From audit UNION SELECT au_doc From audit_yearly;
Каков будет результат указанного выше запроса?
- Он дает документы аудита между двумя таблицами
 - Выдает ошибку ORA при исполнении
 - Предоставляет Аудит документов из таблицы АУДИТ
 - Ни один из вышеперечисленных
 
Ответ: B. Длинные столбцы нельзя использовать с операторами SET.
78.Рассмотрим запрос, приведенный ниже:
SELECT col_1 From TABLE (package1.proc1) UNION SELECT col_1 From TABLE (package2.proc2);
Каков будет результат запроса, приведенного выше?
- Он успешно выполняется с дубликатами
 - Выполняется успешно без дубликатов
 - Выдает ошибку ORA
 - Ни один из вышеперечисленных
 
Ответ. Выражения C. TABLE нельзя использовать с операторами SET.
Изучите две приведенные структуры таблиц и рассмотрите следующий запрос. Ответьте на следующие вопросы 79 и 80:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT employee_id , job_id FROM employees E UNION SELECT employee_id , job_id FROM job_history J FOR UPDATE OF job_id;
79. Что происходит при выполнении запроса?
- Ошибка ORA
 - Employee_id и job_id
 - eMPLOYEE_ID
 - Ни один из вышеперечисленных
 
Ответ: A. Предложение FOR UPDATE нельзя использовать с запросом, объединенным с использованием операторов SET.
80. Каков будет результат следующего запроса?
SELECT * from employees UNION SELECT job_id FROM job_history;;
- Это даст все столбцы из таблиц сотрудников и только столбец job_id из таблицы job_history
 - Это выдаст ошибку, так как количество столбцов должно совпадать в запросах компонента.
 - Ни B, ни C
 - Ни один из вышеперечисленных
 
Ответ: Б.
81.Если UNION, UNION ALL, INTERSECT используются в одном операторе SQL, что из следующего верно в отношении оператора SQL?
- UNION, UNION ALL будут выполняться в первую очередь, а затем набор результатов перейдет к оператору INTERSECT.
 - Выполнение INTERSECT будет предшествовать выполнению UNION и UNION ALL.
 - Выполнение будет выполняться справа налево с учетом всех операторов одновременно.
 - Выполнение будет выполняться слева направо с учетом всех операторов одновременно.
 
Ответ: Д.
82.Рассмотрите вопрос, приведенный ниже, и ответьте на следующий вопрос:
SELECT '3' FROM dual INTERSECT SELECT 3f FROM dual;
Что верно в отношении выполнения запроса, указанного выше?
- Это выполняется успешно.
 - Выдает ошибку
 - Это дает результат 3.
 - Это дает результат 3f
 
Ответ: B. Символьные литералы должны быть заключены в одинарные кавычки.
83. Что из следующего является ложным для операторов множеств, используемых в запросах SQL?
- Операторы set действительны при использовании в столбцах с типом данных LONG.
 - Операторы набора недопустимы для столбцов типа BLOB, CLOB, BFILE, VARRAY или вложенной таблицы.
 - Для запроса на выборку, содержащего выражение, должен быть предоставлен псевдоним столбца для ссылки на order_by_clause.
 - Вы не можете использовать эти операторы в инструкциях SELECT, содержащих выражения коллекции TABLE.
 
Ответ: A. Операторы SET не поддерживаются для типов данных LONG, CLOB и BLOB.
84. Изучите данную структуру таблицы и оцените следующую инструкцию SQL:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SELECT employee_id , last_name "Last Name" FROM employees WHERE department_id = 100 UNION SELECT employee_id EMPLOYEE_NO, last_name FROM employees WHERE department_id = 101;
Какие предложения ORDER BY действительны для вышеуказанного запроса? (Выберите все подходящие варианты.)
- ЗАКАЗАТЬ НА 2,1
 - ЗАКАЗАТЬ EMPLOYEE_NO
 - ЗАКАЗАТЬ НА 2, employee_id
 - ЗАКАЗАТЬ «EMPLOYEE_NO»
 
Ответ: A, C. Предложение ORDER BY должно ссылаться на столбец по его позиции или по имени, указанному в первом запросе.
85. Какой из следующих пунктов вы бы использовали, чтобы исключить столбец из второго запроса из двух запросов, объединенных с помощью операторов SET?
- ГРУППА ПО
 - СОРТИРОВАТЬ ПО
 - МИНУС
 - UNION
 
Ответ: C.
86. Изучите данную структуру таблицы как заданную. Каков будет результат нижеуказанного запроса?
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SELECT distinct department_id FROM employees WHERE salary > ANY (SELECT AVG (salary) FROM employees GROUP BY department_id ) UNION SELECT * FROM employees WHERE salary > ANY (SELECT MAX (salary) FROM employees GROUP BY department_id );
- В нем будут отображаться все идентификаторы отделов, в которых есть средняя и максимальная зарплаты.
 - Это выдаст ошибку ORA как нет. столбцов, выбранных в обоих запросах отличается
 - В нем будут отображаться все идентификаторы отделов со средней зарплатой.
 - Он будет отображать все идентификаторы отделов, которые имеют максимальную зарплату
 
Ответ: Б. Нет. столбцы должны быть одинаковыми.
87. Что из перечисленного относится к оператору UNION?
- UNION работает только с первым столбцом в списке SELECT
 - UNION работает над первыми столбцами списков SELECT в запросах компонентов
 - UNION работает над всеми выбранными столбцами.
 - Ни один из вышеперечисленных
 
Ответ: C. UNION работает со всеми столбцами в списке SELECT и не игнорирует никакие столбцы.
88.Вы должны отобразить отделы, в которых работают сотрудники с идентификаторами работ «SA_REP» или «БУХГАЛТЕР». Какой из следующих запросов принесет вам требуемые результаты? (Рассмотрим данную структуру таблицы)
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
- 
SELECT department_id FROM employees E Where job_id = 'SA_RE' UNION SELECT department_id FROM employees E Where job_id = 'ACCOUNTANT';
 - 
SELECT department_id FROM employees E Where job_id = 'SA_REP' UNION ALL Select department_id FROM employees E Where job_id = 'ACCOUNTANT';
 - 
SELECT department_id FROM employees E Where job_id = 'SA_REP' INTERSECT Select department_id FROM employees E Where job_id = 'ACCOUNTANT';
 - 
SELECT department_id FROM employees E Where job_id = 'SA_REP' MINUS Select department_id FROM employees E Where job_id = 'ACCOUNTANT';
 
Ответ: А.
89.Какое из следующих утверждений верно в отношении порядка строк в запросе, в котором используется оператор SET?
- Невозможно использовать ORDER BY в отдельных запросах, которые составляют составной запрос.
 - Предложение ORDER BY может быть добавлено в конец составного запроса.
 - Строки, возвращаемые UNION ALL, будут в том порядке, в котором они встречаются в двух исходных запросах.
 - Строки, возвращаемые UNION, будут отсортированы по всем их столбцам справа налево.
 
Ответ: A, B, C.
90. Оператор UNION использовался для выполнения какой из следующих функций до появления синтаксиса ANSI SQL?
- ПРАВО НАРУЖНОЕ СОЕДИНЕНИЕ
 - ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
 - EQUI-JOIN
 - ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
 
Ответ: Д.
Ответьте на соответствующие вопросы 91 и 92, приведенные ниже. Рассмотрим структуры таблиц, приведенные здесь:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
91. Вам нужно найти идентификаторы заданий, для которых не было зарегистрировано ни одной истории заданий. Какой из следующих запросов будет работать? (Рассмотрим данные структуры таблиц)
- 
SELECT job_id FROM employees UNION ALL SELECT job_id FROM job_history;;
 - 
SELECT job_id FROM employees MINUS Select job_id FROM job_history;;
 - 
SELECT job_id FROM employees UNION SELECT job_id FROM job_history;;
 - Ни один из вышеперечисленных
 
Ответ: Б.
92.Рассмотрим следующий запрос:
SELECT distinct job_id FROM employees NATURAL JOIN job_history ;
Какие из следующих запросов идентичны вышеуказанному запросу?
- 
SELECT job_id FROM employees UNION SELECT job_id FROM job_history;;
 - 
SELECT job_id FROM employees UNION ALL SELECT job_id FROM job_history;;
 - 
SELECT job_id FROM employees MINUS Select job_id FROM job_history;;
 - 
SELECT job_id FROM employees INTERSECT SELECT job_id FROM job_history;;
 
Ответ: А.
Изучите приведенные здесь структуры таблиц. Рассмотрите вопрос, приведенный ниже, и ответьте на соответствующие вопросы 93–97, которые следуют:
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
SQL> desc job_history Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4)
SELECT job_id FROM employees UNION ALL SELECT job_id FROM job_history;;
93.Если таблица EMPLOYEES содержит 5 записей, а JOB_HISTORY содержит 3 записи, сколько записей будет получено из приведенного ниже запроса?
- 4
 - 3
 - 0
 - 8
 
Ответ: D. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.
94. Если оператор UNION ALL будет заменен оператором UNION, сколько записей будет получено? (Предположим, есть 6 различных значений в обеих таблицах)
- 5
 - 3
 - 2
 - 6
 
Ответ: D. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.
95. Если оператор UNION ALL заменяется оператором MINUS, сколько записей будет получено? (Предположим, есть 3 различных значения в СОТРУДНИКАХ и 2 в JOB_HISTORY)
- 3
 - 2
 - 1
 - 0
 
Ответ: C. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.
96. Если оператор UNION ALL будет заменен оператором INTERSECT, сколько записей будет получено? (Предположим, что между двумя таблицами есть три общих значения)
- 8
 - 6
 - 3
 - 2
 
Ответ: C. INTERSECT Возвращает только те строки, которые встречаются в наборах результатов обоих запросов, сортируя их и удаляя дубликаты.
97. Рассмотрите следующий запрос:
1.select job_id 2. from employees 3.ORDER BY department_id 4.UNION ALL 5.select job_id 6.FROM job_history; 7.ORDER BY department_id ;
Приведенный выше запрос генерирует ошибку. Какая строка в приведенном выше запросе выдает ошибку?
- 3
 - 7
 - 2
 - Ошибка не получена
 
Ответ: A. ORDER BY должен появляться только в конце составного запроса, а не в запросах компонентов.
98. Какие из следующих функций оператора SET поддерживаются в SQL / Foundation: 2003, но не в Oracle?
- СОЮЗ ВСЕХ
 - МИНУС ВСЕХ
 - ПЕРЕКРЫТЬ ВСЕ
 - Кроме всех
 
Ответ: B, C, D.
99.Вы должны узнать общие идентификаторы JOB (исключая дубликаты) в отделах 100 и 200. Какой запрос вы выполните, чтобы получить требуемые результаты? (Рассмотрим структуру таблицы как дано)
SQL> DESC employees Name Null? Type ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
- 
SELECT job_id from employee WHERE department_id = 100 INTERSECT SELECT job_id from employee WHERE department_id = 200;
 - 
SELECT job_id from employee WHERE department_id = 100 UNION ALL SELECT job_id from employee WHERE department_id = 200;
 - 
SELECT job_id from employee WHERE department_id = 100 MINUS Select job_id from employee WHERE department_id = 200;
 - 
SELECT job_id from employee WHERE department_id = 100 INTERSECT ALL Select job_id from employee WHERE department_id = 200;
 
Ответ: А.
100.Если составной запрос содержит как оператор MINUS, так и оператор INTERSECT, который будет применен первым? (Выбрать лучший ответ.)
- INTERSECT, потому что INTERSECT имеет более высокий приоритет, чем MINUS.
 - МИНУС, потому что МИНУС имеет более высокий приоритет, чем INTERSECT.
 - Приоритет определяется порядком, в котором они указаны.
 - Для составного запроса невозможно включить как MINUS, так и INTERSECT.
 
Ответ: C. Все операторы множеств имеют одинаковый приоритет, поэтому приоритет определяется последовательностью, в которой они встречаются.








