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. Все операторы множеств имеют одинаковый приоритет, поэтому приоритет определяется последовательностью, в которой они встречаются.