Учебники

Использование вопросов об операторах множества

1. Какой оператор SET показывает следующий рисунок?

Стол UNION

  1. UNION
  2. СОЮЗ ВСЕХ
  3. ПЕРЕСЕЧЕНИЕ
  4. МИНУС

Ответ: A. Операторы множеств используются для объединения результатов двух (или более) операторов SELECT. Допустимыми операторами множеств в Oracle 11g являются UNION, UNION ALL, INTERSECT и MINUS. При использовании с двумя операторами SELECT оператор set UNION возвращает результаты обоих запросов. Однако, если есть какие-либо дубликаты, они удаляются, и дублирующаяся запись перечисляется только один раз. Чтобы включить дубликаты в результаты, используйте UNION ALL set operator.INTERSECT перечисляет только записи, которые возвращаются обоими запросами; оператор множества MINUS удаляет результаты второго запроса из выходных данных, если они также найдены в результатах первого запроса. Операции INTERSECT и MINUS set дают дублированные результаты.

2. Какой оператор SET показывает следующий рисунок?

Таблица UNION_ALL

  1. UNION
  2. СОЮЗ ВСЕХ
  3. ПЕРЕСЕЧЕНИЕ
  4. МИНУС

Ответ: B. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.

sql_certificate

3. Какой оператор SET показывает следующий рисунок?

Стол ИНТЕРСЕКТ

  1. UNION
  2. СОЮЗ ВСЕХ
  3. ПЕРЕСЕЧЕНИЕ
  4. МИНУС

Ответ: C. INTERSECT Возвращает только те строки, которые встречаются в наборах результатов обоих запросов, сортируя их и удаляя дубликаты.

4. Какой оператор SET показывает следующий рисунок?

Стол МИНУС

  1. UNION
  2. СОЮЗ ВСЕХ
  3. ПЕРЕСЕЧЕНИЕ
  4. МИНУС

Ответ: D. MINUS Возвращает только те строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.

5.Что касается операторов SET?

  1. Они меняют значения строк
  2. Они объединяют результаты только двух компонентных запросов в один результат
  3. Они объединяют результаты 10 компонентных запросов в два набора результатов.
  4. Они объединяют результаты двух или более запросов компонентов в один результат

Ответ: D. Операторы Set используются для объединения результатов двух (или более) операторов SELECT. В Oracle 11g допустимы следующие операторы множеств: UNION, UNION ALL, INTERSECT и MINUS.

6. Как называются запросы, содержащие операторы SET?

  1. Суб-запросы
  2. Совместные подзапросы
  3. Запросы GROUP BY
  4. Сложные запросы

Ответ: Д.

7.Что касается оператора UNION?

  1. Возвращает строки из комбинированных запросов вместе со значениями NULL
  2. Возвращает строки для комбинированных запросов после устранения дубликатов
  3. Возвращает строки для комбинированных запросов вместе с дублирующимися значениями
  4. Возвращает строки для комбинированных запросов, игнорируя значения NULL

Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.

8.Что касается оператора UNION ALL?

  1. Возвращает строки из комбинированных запросов вместе со значениями NULL
  2. Возвращает строки для комбинированных запросов после устранения дубликатов
  3. Возвращает строки для комбинированных запросов вместе с дублирующимися значениями
  4. Возвращает строки для комбинированных запросов, игнорируя значения NULL

Ответ: C. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.

9.Что касается оператора INTERSECT?

  1. Возвращает строки из комбинированных запросов вместе со значениями NULL
  2. Возвращает строки для комбинированных запросов после устранения дубликатов
  3. Возвращает общие строки из комбинированных запросов
  4. Ни один из вышеперечисленных

Ответ: C. INTERSECT Возвращает только те строки, которые встречаются в наборах результатов обоих запросов, сортируя их и удаляя дубликаты.

10.Что касается оператора МИНУС?

  1. Возвращает строки из первого запроса, но не из второго запроса
  2. Возвращает строки для второго запроса, но не из первого запроса
  3. Возвращает повторяющиеся строки для объединенных запросов
  4. Возвращает строки для комбинированных запросов, игнорируя значения NULL

Ответ: A. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.

11. Какой приоритет имеют операторы множества UNION, UNION ALL, INTERSECT и MINUS?

  1. СОЮЗ, СОЮЗ ВСЕХ, ИНТЕРСЕКТ И МИНУС
  2. МИНУС, СОЮЗ, СОЮЗ ВСЕХ и ИНТЕРСЕКТ
  3. ИНТЕРСЕКТ, МИНУС, СОЮЗ ВСЕ, СОЮЗ
  4. Равный приоритет

Ответ: операторы D. SET имеют равный приоритет.

12. Каков порядок оценки операторов набора?

  1. Слева направо
  2. Справа налево
  3. Случайная оценка
  4. Сверху вниз

Ответ: A, D. Предполагая, что нет группировки запросов с использованием скобок, операторы SET будут оцениваться сверху вниз и слева направо по горизонтали.

13. В каком из следующих случаев должна быть указана скобка?

  1. Когда INTERSECT используется с другими операторами множества
  2. Когда UNION используется с UNION ALL
  3. Когда МИНУС используется для запросов
  4. Ни один из вышеперечисленных

Ответ: A. Использование круглых скобок явно изменит порядок вычисления, когда INTERSECT используется с другими операторами.

14.Что верно в отношении предложения SELECT, когда используются операторы SET?

  1. На выбранные столбцы нет ограничений
  2. Столбцы, выражения, используемые в предложении SELECT, должны совпадать по числу в комбинированных запросах.
  3. Столбцы, выражения, используемые в предложении SELECT, должны быть N в первом запросе и N-1 в последующих комбинированных запросах.
  4. Как B, так и C

Ответ: Б. Все вместе должны иметь одинаковые нет. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.

15.Что касается операторов SET?

  1. Предложение SELECT должно иметь одинаковое количество столбцов, типы данных могут быть разными
  2. Операторы SET могут использоваться только для объединения двух запросов.
  3. Тип данных каждого столбца во втором запросе должен соответствовать типу данных соответствующего столбца в первом запросе.
  4. Ни один из вышеперечисленных

Ответ: C. Все объединенное должно иметь одинаковый номер. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.

16.Где можно использовать предложение ORDER BY в случае использования операторов SET?

  1. В каждом совмещаемом запросе
  2. Только в первом запросе
  3. В самом конце составного запроса
  4. Ни один из вышеперечисленных

Ответ: C. Если предложение ORDER BY используется между любыми запросами, объединенными с помощью операторов SET, это вызовет ошибку ORA.

17.Что верно в отношении запросов, которые имеют операторы SET в своем предложении WHERE?

  1. Эти запросы должны иметь одинаковый номер. и тип данных столбцов в их предложении SELECT.
  2. Нет. столбцов, используемых в запросе предложения WHERE, и основной SELECT может отличаться
  3. Нет. столбцов, используемых в предложении WHERE, должно быть одинаковым, тип данных может отличаться
  4. Ни один из вышеперечисленных

Ответ: А. Все вместе должно иметь одинаковое нет. столбцов при использовании операторов SET. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.

18.Что верно для столбцов во втором запросе относительно столбцов в первом запросе?

  1. Столбец во втором запросе должен находиться в той же группе типов данных, что и соответствующий столбец в первом запросе.
  2. Если столбец в 1-м запросе является NUMBER, соответствующий столбец во 2-м запросе должен быть VARCHAR2
  3. Если столбец в 1-м запросе является NUMBER, соответствующий столбец во 2-м запросе также должен быть NUMBER.
  4. Ни один из вышеперечисленных

Ответ: А, С.

19. Что из перечисленного относится к операторам SET?

  1. Операторы SET не могут использоваться в подзапросах
  2. Операторы SET могут использоваться только в предложении WHERE
  3. ORDER BY может использоваться для всех запросов, объединенных оператором SET
  4. Операторы SET могут использоваться в подзапросах

Ответ: Д.

20. Каков наилучший способ изменить приоритет операторов SET, учитывая тот факт, что они имеют одинаковый приоритет?

  1. Порядок использования операторов SET может быть изменен, чтобы изменить приоритет
  2. Равный приоритет не может быть изменен
  3. Скобки могут быть использованы для изменения приоритета
  4. Ни один из вышеперечисленных

Ответ: C. Скобки можно использовать для группировки конкретных запросов с целью явного изменения приоритета. Скобки предпочтительнее других операторов SET во время выполнения.

21.Что можно сказать о повторяющихся значениях и операторах SET?

  1. Нет оператора SET не отображает повторяющиеся значения
  2. Все операторы SET могут отображать повторяющиеся значения
  3. Только оператор UNION ALL отображает повторяющиеся значения
  4. Ни один из вышеперечисленных

Ответ: 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. Что будет отображаться в результате этого запроса?

  1. Он будет отображать различные идентификаторы отделов, содержащиеся в таблице СОТРУДНИКИ и ОТДЕЛЫ
  2. Это выдаст ошибку ORA
  3. Строки не выбраны
  4. Ни один из вышеперечисленных

Ответ: A. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.

23.Что касается запроса, приведенного выше?

  1. Этот запрос возвращает ошибку ORA
  2. Выполняется успешно, но не дает результатов
  3. Запросы из разных таблиц нельзя использовать с операторами SET
  4. Запрос выполняется успешно и дает ожидаемые результаты

Ответ: D. Составной запрос — это один запрос, составленный из нескольких запросов с использованием разных таблиц.

24. Каков порядок сортировки результатов по умолчанию, когда используется оператор UNION ALL?

  1. нисходящий
  2. по возрастанию
  3. Либо А, либо Б
  4. Все вышеперечисленное

Ответ: B. По умолчанию составной запрос возвращает строки, отсортированные по всем столбцам слева направо в порядке возрастания. Единственное исключение — UNION ALL, где строки не будут отсортированы. Единственное место, где разрешено предложение ORDER BY, находится в конце составного запроса.

25. Каковы будут результаты составного запроса, в котором столбцы в SELECT имеют CHAR и равную длину?

  1. Выход будет иметь тип данных VARCHAR2 равной длины
  2. Вывод будет иметь тип данных CHAR равной длины
  3. Вывод будет иметь тип данных CHAR различной длины
  4. Вывод будет иметь тип данных NUMBER равной длины

Ответ: B. Столбцы в запросах, составляющих составной запрос, могут иметь разные имена, но в выходном наборе результатов будут использоваться имена столбцов в первом запросе. Соответствующие столбцы в запросах, составляющих составной запрос, должны относиться к одной и той же группе типов данных.

26. Каковы будут результаты составного запроса, в котором столбцы в SELECT имеют CHAR и различную длину?

  1. Выход будет иметь тип данных VARCHAR2 равной длины
  2. Вывод будет иметь тип данных CHAR равной длины
  3. Вывод будет иметь тип данных CHAR различной длины
  4. Выход будет иметь тип данных VARCHAR2 с длиной большего значения CHAR

Ответ: D. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.

27. Что будет выводом составного запроса, если один или оба запроса выберут значения VARCHAR2?

  1. Выход будет иметь тип данных VARCHAR2.
  2. Вывод будет иметь тип данных CHAR равной длины
  3. Вывод будет иметь тип данных CHAR различной длины
  4. Выход будет иметь тип данных VARCHAR2 с длиной большего значения CHAR

Ответ: A. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.

28.Что верно, если составные запросы выбирают числовые данные?

  1. Там будет одинаковый приоритет числовых значений операторов
  2. Возвращаемые значения будут определены числовым приоритетом
  3. Возвращаемые значения будут иметь тип данных NUMBER
  4. Ни один из вышеперечисленных

Ответ: B, C. Хотя выбранные списки столбцов не обязательно должны быть одинакового типа данных, они должны быть из одной группы типов данных. Результирующий набор составного запроса будет иметь столбцы с более высоким уровнем точности.

29. Что произойдет, если список SELECT составных запросов возвращает результат типа данных VARCHAR2 и NUMBER?

  1. Oracle преобразует их неявно и возвращает результат типа данных VARCHAR2
  2. Oracle преобразует их неявно и возвращает результат типа данных NUMBER
  3. Ошибка ORA выброшена
  4. Ни один из вышеперечисленных

Ответ: C. Oracle не конвертирует типы данных неявно.

30.Что касается оператора UNION?

  1. Это устраняет повторяющиеся значения, игнорируя значения NULL
  2. Возвращает повторяющиеся значения, игнорируя значения NULL
  3. Возвращает повторяющиеся значения, включая значения NULL
  4. Устраняет повторяющиеся значения и не игнорирует значения NULL

Ответ: D. Значения NULL не игнорируются при использовании оператора UNION

31. Что можно сказать об именах и столбцах SQL-запроса, в котором используется оператор UNION?

  1. Названия столбцов должны быть идентичны
  2. Имена и тип данных столбцов должны быть идентичны
  3. Имена столбцов не должны быть идентичными
  4. Ни один из вышеперечисленных

Ответ: 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. Сколько раз каждый сотрудник будет отображаться по вышеуказанному запросу?

  1. 0
  2. 1
  3. 2
  4. 4

Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.

33. Каков будет результат вышеупомянутого запроса?

  1. Отображает текущие и предыдущие данные о работе сотрудников дважды
  2. Отображает текущие и предыдущие сведения о работе сотрудников только один раз
  3. Либо А, либо Б
  4. Ни один из вышеперечисленных

Ответ: Б.

Изучите данные структуры таблиц, рассмотрите следующий запрос и ответьте на следующие вопросы с 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 идентификатора работы за время своего пребывания в компании. Учитывая вышеупомянутый запрос, сколько раз его записи будут отображаться в результатах?

  1. однажды
  2. Дважды
  3. трижды
  4. Ни один из вышеперечисленных

Ответ: B. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты. Двуличность измеряется комбинацией столбцов, а не отдельных столбцов в отдельности.

35. Предполагая, что сотрудник с ID 121 занимал две должности в двух разных отделах — 10 и 20 в компании. Он работал как SA_REP в обоих отделах 10 и 20. Каков будет результат вышеупомянутого запроса?

  1. 2 ряда
  2. 3 ряда
  3. Нет строк
  4. Ошибка ORA

Ответ: Б.

36. Какое из утверждений лучше всего описывает вывод, сделанный из вопросов 34 и 35?

  1. Есть дубликаты значений для кодов работ
  2. Запрос выполняется, но полученные результаты являются неожиданными
  3. Для отделов нет повторяющихся значений
  4. Ни один из вышеперечисленных

Ответ: C. Поскольку комбинация кодов работ и отделов уникальна, дубликатов не получено.

37. Какова будет сортировка в наборе результатов, полученных запросом?

  1. По убыванию ID сотрудника
  2. По убыванию на работу ID
  3. По возрастанию по идентификатору сотрудника
  4. По возрастанию по идентификатору отдела

Ответ: C. Сортировка по умолчанию будет возрастать на основе первого столбца, т. Е. В этом случае: идентификатора сотрудника. Однако это поведение можно изменить, поместив одно предложение ORDER BY в конце.

38. Какой из следующих операторов будет использоваться для получения дубликатов записей из запросов компонентов?

  1. UNION
  2. СОЮЗ ВСЕХ
  3. МИНУС
  4. Ни один из вышеперечисленных

Ответ: B. UNION ALL не устраняет повторяющиеся значения.

39.В чем разница между операторами UNION и UNION ALL?

  1. Нет никакой разницы
  2. UNION ALL также отображает повторяющиеся значения
  3. Вывод в случае UNION ALL не сортируется по умолчанию
  4. Ни один из вышеперечисленных

Ответ: B, C. При использовании с двумя операторами SELECT оператор set UNION возвращает результаты обоих запросов. Однако, если есть какие-либо дубликаты, они удаляются, и дублирующаяся запись указывается только один раз. Чтобы включить дубликаты в результаты, используйте оператор множеств UNION ALL

40.Что касается оператора INTERSECT?

  1. Количество столбцов и типы данных столбцов в запросах компонентов должны быть одинаковыми
  2. Имена столбцов и типы данных столбцов в запросах компонентов должны совпадать
  3. Оба а и Б
  4. Ни один из вышеперечисленных

Ответ: A. Это особенность критериев общего свойства операторов SET.

41. Что можно сказать о наборе результатов, если порядок пересекающихся таблиц изменяется при использовании INTERSECT?

  1. Результат изменен
  2. Результат остается прежним
  3. Сортировка изменений по переделке
  4. Ни один из вышеперечисленных

Ответ: Б.

42. Что из перечисленного относится к оператору INTERSECT?

  1. Игнорирует значения NULL
  2. Он не игнорирует значения NULL
  3. Возвращает все строки из первого запроса компонента
  4. Ни один из вышеперечисленных

Ответ: Б.

Ответьте на соответствующие вопросы 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)
  1. SELECT employee_id , job_id, first_name, last_name
    FROM employees
    UNION
    SELECT employee_id , job_id, first_name, last_name
    FROM job_history;
  2. SELECT employee_id , job_id, first_name, last_name
    FROM employees
    INTERSECT
    SELECT employee_id , job_id, first_name, last_name
    FROM job_history;
  3. 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;
  4. Ни один из вышеперечисленных

Ответ: Б.

44. Учитывая вышеупомянутый запрос, т.е. вариант B в вопросе 43, каков будет результат, если идентификатор отдела также будет включен в предложение SELECT?

  1. Результат будет таким же
  2. Результат будет другим
  3. Результат будет таким же, но порядок будет другим
  4. Ни один из вышеперечисленных

Ответ: A. Результат можно интерпретировать как — сотрудников, которые работали с одинаковыми должностями в одном отделе.

45.Что касается оператора МИНУС?

  1. Возвращает все строки из всех запросов компонентов
  2. Он возвращает только общие строки из всех запросов компонентов
  3. Он возвращает все строки из первого запроса, а не из последующих запросов
  4. Возвращает все отдельные строки, выбранные первым запросом, но не присутствующие в последующих запросах.

Ответ: D. Оператор множества MINUS удаляет результаты второго запроса из выходных данных, если они также найдены в результатах первого запроса.

46. ​​Что можно сказать относительно количества столбцов и типов данных запросов компонента, когда используется оператор MINUS?

  1. Они должны быть одинаковыми, тип данных может отличаться, но они должны принадлежать к одной группе типов данных.
  2. Они должны совпадать с названиями столбцов
  3. Оба а и Б
  4. Ни один из вышеперечисленных

Ответ: А. Общая особенность операторов 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)
  1. SELECT employee_id 
    FROM employees
    UNION
    SELECT employee_id 
    FROM job_history;
  2. SELECT employee_id 
    FROM employees
    INTERSECT
    Select employee_id 
    FROM job_history;
  3. SELECT employee_id 
    FROM employees
    MINUS
    Select employee_id 
    FROM job_history;
  4. 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.Что верно в отношении вышеуказанного запроса?

  1. Выдает ошибку, поскольку TO_CHAR (NULL) не может быть использован
  2. Он успешно выполняется и выдает значения для идентификатора сотрудника, имени и текущей должности, включая повторяющиеся строки
  3. Он успешно выполняется и выдает значения для идентификатора сотрудника, имени и всех заданий, выполняемых сотрудниками, за исключением повторяющихся строк
  4. Ни один из вышеперечисленных

Ответ: C. Каждый запрос должен содержать одинаковое количество столбцов, которые сравниваются позиционно. NULL может быть заменен вместо столбца, который отсутствует в другом запросе в том же составном запросе.

49. Учитывая приведенный выше запрос, если оператор UNION заменяется оператором MINUS, что будет означать результат?

  1. Результат показывает тех сотрудников, у которых есть запись в таблице JOB_HISTORY
  2. Результат показывает тех сотрудников, у которых нет записи в JOB_HISTORY, но они присутствуют в таблице EMPLOYEES
  3. Либо из А или В
  4. Ни один из вышеперечисленных

Ответ: B. MINUS дает уникальные результаты, которые присутствуют в первом запросе, но не во втором запросе.

Рассмотрите экспонат, приведенный ниже, и ответьте на следующие вопросы 50 и 51:

Таблица AUDIT_YEARLYСтол АУДИТ

50. Каков будет результат следующего запроса?

SELECT AU_DETAILS 
FROM AUDIT
UNION
SELECT AU_DETAILS
FROM AUDIT_YEARLY;
  1. Он успешно выполняется, давая правильные результаты, включая повторяющиеся значения
  2. Он успешно выполняется, давая правильные результаты, исключая повторяющиеся значения
  3. Выдает ошибку ORA
  4. Ни один из вышеперечисленных

Ответ: C. Использование столбцов CLOB или LONG в предложении SELECT невозможно при использовании операторов множеств UNION.

51. Каков будет результат запроса, если UNION будет заменен на UNION ALL?

  1. Он будет успешно выполнен, давая правильные результаты, включая повторяющиеся значения
  2. Выдает ошибку ORA
  3. Он будет успешно выполнен, давая правильные результаты, исключая повторяющиеся значения
  4. Он выполняется успешно, но дает неверные результаты.

Ответ: операторы B. .UNION, UNION ALL, INTERSECT и MINUS при использовании со столбцами LONG или CLOB выдают ошибку.

52. Предположим, что есть 4 компонентных запроса. Сколько операторов SET можно использовать для объединения их в один составной запрос?

  1. 1
  2. 2
  3. 4
  4. 3

Ответ: D. Оператор SET, который будет использоваться, будет N-1, где N — количество запросов компонентов.

53. Как называются операторы SET, связанные с тем, что при использовании операторов SET используются два или более SELECT на основе столбцов, а не строк?

  1. Горизонтальные соединения
  2. Декартовы соединения
  3. Вертикальные соединения
  4. Внешние соединения

Ответ: C.

54. В чем разница между операторами UNION и INTERSECT? (Выберите только лучшую разницу)

  1. UNION объединяет результаты двухкомпонентных запросов в один набор результатов с дублирующимися значениями
  2. INTERSECT возвращает только те строки, которые возвращаются каждым из двух компонентных запросов
  3. UNION дает отличные значения от запросов компонента, INTERSECT дает общие значения от запросов компонента
  4. Как 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. Вам нужно извлечь отчет, в котором отображаются результаты обоих запросов. Какой из следующих операторов следует использовать для получения требуемых результатов?

  1. UNION
  2. СОЮЗ ВСЕХ
  3. ПЕРЕСЕЧЕНИЕ
  4. Ни один из вышеперечисленных

Ответ: B. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.

56. Вам необходимо отобразить все повторяющиеся значения вместе со всеми значениями, существующими в наборе результатов обоих запросов. Какой из следующих операторов SET вы можете использовать в приведенных выше запросах?

  1. ПЕРЕСЕЧЕНИЕ
  2. UNION
  3. МИНУС
  4. Ни один из вышеперечисленных

Ответ: D. UNION ALL выдаст несортированные результаты с дубликатами.

57. В чем разница между наборами результатов при использовании операторов множеств UNION и UNION ALL?

  1. Набор результатов из UNION ALL фильтруется, включая повторяющиеся значения
  2. Набор результатов из UNION фильтруется и сортируется, включая повторяющиеся значения
  3. Набор результатов из UNION ALL не отсортирован и имеет повторяющиеся значения
  4. Набор результатов из UNION фильтруется и сортируется без повторяющихся значений

Ответ: C, D.

58. Оператор UNION имеет больше издержек на базу данных, чем UNION ALL. Что не так в этом утверждении?

  1. Утверждение верно
  2. Оператор UNION ALL имеет больше накладных расходов на базе данных, чем оператор UNION
  3. UNION должен сортировать и удалять дубликаты, что приводит к дополнительным накладным расходам
  4. Ни один из вышеперечисленных

Ответ: A, C. UNION должен выполнять больше задач, чем UNION ALL, потому что он сортирует и дедуплицирует наборы результатов. Следовательно, рекомендуется, чтобы, если не требовались отдельные строки, использовался UNION ALL.

59. Каков будет результат, если два приведенных выше запроса будут объединены с использованием оператора INTERSECT?

  1. На нем будут отображаться только те сотрудники, которые являются клерками в отделе 10
  2. На нем будут отображаться все те сотрудники, которые находятся в отделе 10
  3. Это покажет всех клерков.
  4. Ни один из вышеперечисленных

Ответ: A. INTERSECT возвращает те записи, которые присутствуют в запросе 1 И запросе 2.

60. В чем разница между операторами INTERSECT и UNION?

  1. INTERSECT следует булевой логике «И», UNION следует булевой логике «ИЛИ»
  2. UNION следует булевой логике «ИЛИ», тогда как INTERSECT следует логике «И»
  3. Либо из А или В
  4. Ни один из вышеперечисленных

Ответ: А.

61. В каком из следующих операторов SET изменение порядка запросов компонентов изменит набор результатов?

  1. UNION
  2. СОЮЗ ВСЕХ
  3. МИНУС
  4. ПЕРЕСЕЧЕНИЕ

Ответ: C. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.

Рассмотрите следующий запрос и ответьте на следующие вопросы с 62 по 66:

SELECT 4 from dual
INTERSECT
SELECT 1 from dual;

62. Каким будет результат данного запроса?

  1. Нет строк
  2. 4
  3. 1
  4. НОЛЬ

Ответ: A. Не будет выбрано ни одной строки, так как оператор INTERSECT не получит общих результатов от обоих запросов — операторы INTERSECT дают общие результаты, присутствующие в запросе 1 И запросе 2.

63. Каков будет результат запроса, если оператор INTERSECT будет заменен оператором MINUS?

  1. 3
  2. 4
  3. 0
  4. 1

Ответ: B. MINUS дает результаты, которые присутствуют в первом запросе и отсутствуют во втором запросе.

64. Каков будет результат вышеуказанного запроса, если оператор INTERSECT будет заменен оператором UNION?

  1. 1

    4

  2. 4

    1

  3. НОЛЬ
  4. 0

4

1

Ответ: A. UNION будет производить отдельные строки в наборе результатов в порядке возрастания.

65. Каков будет результат вышеупомянутого запроса, если оператор INTERSECT будет заменен оператором UNION ALL?

  1. 4

    1

  2. 0
  3. НОЛЬ
  4. 1

    4

1

4

Ответ: A. UNION ALL отображает результаты в том виде, в каком они расположены в запросе, без сортировки.

66. Каков будет результат, если вышеуказанный запрос будет изменен, как показано ниже?

SELECT 1 from dual
UNION ALL
SELECT 4 from dual;
  1. 1

    4

  2. 4

    1

  3. НОЛЬ
  4. Ни один из вышеперечисленных

4

1

Ответ: А.

Изучите структуру таблицы JOB_HISTORY_ARCHIVE. Это резервная таблица для таблицы JOB_HISTORY без дополнительного столбца. Предполагая, что обе таблицы имеют разные данные, рассмотрите запрос, приведенный ниже, и ответьте на вопросы с 67 по 70, которые следуют:

Таблица JOB_HISTORY_ARCHIVE

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. Каков будет результат запроса, приведенного выше? (Выбрать лучший ответ)

  1. Он вернет те строки, которые отличаются в двух таблицах
  2. Он вернет общие строки в двух таблицах
  3. Он вернет все строки из двух таблиц
  4. Ни один из вышеперечисленных

Ответ: А.

68.Что можно сделать, если приведенный выше запрос дает строки только из таблицы JOB_HISTORY?

  1. Это показывает, что JOB_HISTORY содержит две строки, отличные от таблицы JOB_HISTORY_ARCHIVE
  2. Это показывает, что две строки одинаковы в таблицах JOB_HISTORY и JOB_HISTORY_ARCHIVE
  3. Это показывает, что JOB_HISTORY_ARCHIVE содержит две строки, отличные от таблицы JOB_HISTORY
  4. Ни один из вышеперечисленных

Ответ: А.

69. Что можно сказать, если приведенный выше запрос не дает результатов?

  1. Это показывает, что две таблицы имеют одинаковые данные
  2. Это показывает, что компонентные запросы размещены неправильно
  3. Это показывает, что операторы SET неправильно используются в составном запросе
  4. Ни один из вышеперечисленных

Ответ: А.

70.Что касается запроса, приведенного выше, если в двух таблицах существуют повторяющиеся записи, то какие из следующих изменений следует внести в данный запрос?

  1. COUNT (*)
  2. COUNT (*) и GROUP BY employee_id
  3. COUNT (*) и ORDER BY employee_id
  4. Ни один из вышеперечисленных

Ответ: B. COUNT (*) можно использовать, чтобы увидеть разницу между таблицами.

Рассмотрим следующий запрос:

SELECT 1 NUM, 'employee' TEXT FROM dual
UNION
SELECT TO_CHAR(NULL) NUM, 'departments' TEXT FROM dual;

71. Каков будет результат запроса, приведенного выше?

  1.        NUM TEXT
    ---------- -----------
             1 employee
               departments
  2.        NUM TEXT
    ---------- -----------
             1 employee
          NULL departments
  3. Ошибка ORA
  4.        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 г.)

  1. Он успешно выполняется с правильными результатами
  2. Выполняется успешно, но безрезультатно
  3. Выдает ошибку ORA
  4. Ни один из вышеперечисленных

Ответ. C. NUMBER и DATE не принадлежат одному типу данных. Здесь число, полученное с помощью MONTHS_BETWEEN, сравнивается с датой и, следовательно, с ошибкой.

73. Предположим, что оператор SELECT во 2-м запросе изменен, как показано ниже:

SELECT to_number (NULL) NUM FROM dual;

Каким будет результат из-за этого изменения?

  1. Он успешно выполняется с правильными результатами
  2. Выполняется успешно, но безрезультатно
  3. Выдает ошибку ORA
  4. Ни один из вышеперечисленных

Ответ: А.

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;

Какие из приведенных ниже заголовков столбцов будут отображаться в наборе результатов?

  1. EMP ID
  2. ID сотрудника
  3. EMPLOYEE_ID
  4. Ошибка 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. Каков будет результат запроса, приведенного выше?

  1. Результаты будут упорядочены по идентификатору сотрудника из таблицы JOB_HISTORY.
  2. Результаты будут упорядочены по идентификатору сотрудника из таблицы EMPLOYEES.
  3. Там не будет упорядочения результатов
  4. Ошибка ORA

Ответ: D. ORDER BY должен быть сделан на основе имен столбцов из первого запроса, а не из столбцов второго запроса.

76.Какое из следующих предложений ORDER BY может заменить ошибочный ORDER BY в приведенном выше запросе?

  1. ORDER BY e.employee_id
  2. ЗАКАЗАТЬ ПО J.2
  3. ЗАКАЗАТЬ НА 1
  4. Ничего из вышеперечисленного, ORDER BY не допускается в запросе

Ответ: C. Это более общая спецификация, и Oracle упорядочит ее по первому столбцу первого запроса.

77. Рассмотрите следующую выставку и ответьте на вопрос ниже:

Таблица AUDIT_YEARLYСтол АУДИТ

SELECT au_doc
From audit
UNION
SELECT au_doc
From audit_yearly;

Каков будет результат указанного выше запроса?

  1. Он дает документы аудита между двумя таблицами
  2. Выдает ошибку ORA при исполнении
  3. Предоставляет Аудит документов из таблицы АУДИТ
  4. Ни один из вышеперечисленных

Ответ: B. Длинные столбцы нельзя использовать с операторами SET.

78.Рассмотрим запрос, приведенный ниже:

SELECT col_1
From TABLE (package1.proc1)
UNION
SELECT col_1
From TABLE (package2.proc2);

Каков будет результат запроса, приведенного выше?

  1. Он успешно выполняется с дубликатами
  2. Выполняется успешно без дубликатов
  3. Выдает ошибку ORA
  4. Ни один из вышеперечисленных

Ответ. Выражения 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. Что происходит при выполнении запроса?

  1. Ошибка ORA
  2. Employee_id и job_id
  3. eMPLOYEE_ID
  4. Ни один из вышеперечисленных

Ответ: A. Предложение FOR UPDATE нельзя использовать с запросом, объединенным с использованием операторов SET.

80. Каков будет результат следующего запроса?

SELECT * from employees
UNION
SELECT job_id FROM job_history;;
  1. Это даст все столбцы из таблиц сотрудников и только столбец job_id из таблицы job_history
  2. Это выдаст ошибку, так как количество столбцов должно совпадать в запросах компонента.
  3. Ни B, ни C
  4. Ни один из вышеперечисленных

Ответ: Б.

81.Если UNION, UNION ALL, INTERSECT используются в одном операторе SQL, что из следующего верно в отношении оператора SQL?

  1. UNION, UNION ALL будут выполняться в первую очередь, а затем набор результатов перейдет к оператору INTERSECT.
  2. Выполнение INTERSECT будет предшествовать выполнению UNION и UNION ALL.
  3. Выполнение будет выполняться справа налево с учетом всех операторов одновременно.
  4. Выполнение будет выполняться слева направо с учетом всех операторов одновременно.

Ответ: Д.

82.Рассмотрите вопрос, приведенный ниже, и ответьте на следующий вопрос:

SELECT '3' FROM dual
INTERSECT
SELECT 3f FROM dual;

Что верно в отношении выполнения запроса, указанного выше?

  1. Это выполняется успешно.
  2. Выдает ошибку
  3. Это дает результат 3.
  4. Это дает результат 3f

Ответ: B. Символьные литералы должны быть заключены в одинарные кавычки.

83. Что из следующего является ложным для операторов множеств, используемых в запросах SQL?

  1. Операторы set действительны при использовании в столбцах с типом данных LONG.
  2. Операторы набора недопустимы для столбцов типа BLOB, CLOB, BFILE, VARRAY или вложенной таблицы.
  3. Для запроса на выборку, содержащего выражение, должен быть предоставлен псевдоним столбца для ссылки на order_by_clause.
  4. Вы не можете использовать эти операторы в инструкциях 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 действительны для вышеуказанного запроса? (Выберите все подходящие варианты.)

  1. ЗАКАЗАТЬ НА 2,1
  2. ЗАКАЗАТЬ EMPLOYEE_NO
  3. ЗАКАЗАТЬ НА 2, employee_id
  4. ЗАКАЗАТЬ «EMPLOYEE_NO»

Ответ: A, C. Предложение ORDER BY должно ссылаться на столбец по его позиции или по имени, указанному в первом запросе.

85. Какой из следующих пунктов вы бы использовали, чтобы исключить столбец из второго запроса из двух запросов, объединенных с помощью операторов SET?

  1. ГРУППА ПО
  2. СОРТИРОВАТЬ ПО
  3. МИНУС
  4. 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 );
  1. В нем будут отображаться все идентификаторы отделов, в которых есть средняя и максимальная зарплаты.
  2. Это выдаст ошибку ORA как нет. столбцов, выбранных в обоих запросах отличается
  3. В нем будут отображаться все идентификаторы отделов со средней зарплатой.
  4. Он будет отображать все идентификаторы отделов, которые имеют максимальную зарплату

Ответ: Б. Нет. столбцы должны быть одинаковыми.

87. Что из перечисленного относится к оператору UNION?

  1. UNION работает только с первым столбцом в списке SELECT
  2. UNION работает над первыми столбцами списков SELECT в запросах компонентов
  3. UNION работает над всеми выбранными столбцами.
  4. Ни один из вышеперечисленных

Ответ: 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)
  1. SELECT department_id 
    FROM employees E
    Where job_id = 'SA_RE'
    UNION
    SELECT department_id 
    FROM employees E
    Where job_id = 'ACCOUNTANT';
  2. SELECT department_id 
    FROM employees E
    Where job_id = 'SA_REP'
    UNION ALL 
    Select department_id 
    FROM employees E
    Where job_id = 'ACCOUNTANT';
  3. SELECT department_id 
    FROM employees E
    Where job_id = 'SA_REP'
    INTERSECT
    Select department_id 
    FROM employees E
    Where job_id = 'ACCOUNTANT';
  4. SELECT department_id 
    FROM employees E
    Where job_id = 'SA_REP'
    MINUS
    Select department_id 
    FROM employees E
    Where job_id = 'ACCOUNTANT';

Ответ: А.

89.Какое из следующих утверждений верно в отношении порядка строк в запросе, в котором используется оператор SET?

  1. Невозможно использовать ORDER BY в отдельных запросах, которые составляют составной запрос.
  2. Предложение ORDER BY может быть добавлено в конец составного запроса.
  3. Строки, возвращаемые UNION ALL, будут в том порядке, в котором они встречаются в двух исходных запросах.
  4. Строки, возвращаемые UNION, будут отсортированы по всем их столбцам справа налево.

Ответ: A, B, C.

90. Оператор UNION использовался для выполнения какой из следующих функций до появления синтаксиса ANSI SQL?

  1. ПРАВО НАРУЖНОЕ СОЕДИНЕНИЕ
  2. ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
  3. EQUI-JOIN
  4. ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ

Ответ: Д.

Ответьте на соответствующие вопросы 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. Вам нужно найти идентификаторы заданий, для которых не было зарегистрировано ни одной истории заданий. Какой из следующих запросов будет работать? (Рассмотрим данные структуры таблиц)

  1. SELECT job_id
    FROM employees 
    UNION ALL
    SELECT job_id
    FROM job_history;;
  2. SELECT job_id
    FROM employees 
    MINUS
    Select job_id
    FROM job_history;;
  3. SELECT job_id
    FROM employees 
    UNION
    SELECT job_id
    FROM job_history;;
  4. Ни один из вышеперечисленных

Ответ: Б.

92.Рассмотрим следующий запрос:

SELECT distinct  job_id
FROM employees 
NATURAL JOIN job_history ;

Какие из следующих запросов идентичны вышеуказанному запросу?

  1. SELECT job_id
    FROM employees
    UNION 
    SELECT   job_id
    FROM job_history;;
  2. SELECT job_id
    FROM employees
    UNION ALL
    SELECT job_id
    FROM job_history;;
  3. SELECT job_id
    FROM employees
    MINUS
    Select job_id
    FROM job_history;;
  4. 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 записи, сколько записей будет получено из приведенного ниже запроса?

  1. 4
  2. 3
  3. 0
  4. 8

Ответ: D. UNION ALL Возвращает объединенные строки из двух запросов без сортировки или удаления дубликатов.

94. Если оператор UNION ALL будет заменен оператором UNION, сколько записей будет получено? (Предположим, есть 6 различных значений в обеих таблицах)

  1. 5
  2. 3
  3. 2
  4. 6

Ответ: D. UNION Возвращает объединенные строки из двух запросов, сортируя их и удаляя дубликаты.

95. Если оператор UNION ALL заменяется оператором MINUS, сколько записей будет получено? (Предположим, есть 3 различных значения в СОТРУДНИКАХ и 2 в JOB_HISTORY)

  1. 3
  2. 2
  3. 1
  4. 0

Ответ: C. MINUS Возвращает только строки в первом наборе результатов, которые не отображаются во втором наборе результатов, сортируя их и удаляя дубликаты.

96. Если оператор UNION ALL будет заменен оператором INTERSECT, сколько записей будет получено? (Предположим, что между двумя таблицами есть три общих значения)

  1. 8
  2. 6
  3. 3
  4. 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 ;

Приведенный выше запрос генерирует ошибку. Какая строка в приведенном выше запросе выдает ошибку?

  1. 3
  2. 7
  3. 2
  4. Ошибка не получена

Ответ: A. ORDER BY должен появляться только в конце составного запроса, а не в запросах компонентов.

98. Какие из следующих функций оператора SET поддерживаются в SQL / Foundation: 2003, но не в Oracle?

  1. СОЮЗ ВСЕХ
  2. МИНУС ВСЕХ
  3. ПЕРЕКРЫТЬ ВСЕ
  4. Кроме всех

Ответ: 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)
  1. SELECT job_id from employee
    WHERE department_id  = 100
    INTERSECT 
    SELECT job_id from employee
    WHERE department_id  = 200;
  2. SELECT job_id from employee
    WHERE department_id  = 100
    UNION ALL
    SELECT job_id from employee
    WHERE department_id  = 200;
  3. SELECT job_id from employee
    WHERE department_id  = 100
    MINUS
    Select job_id from employee
    WHERE department_id  = 200;
  4. SELECT job_id from employee
    WHERE department_id  = 100
    INTERSECT ALL
    Select job_id from employee
    WHERE department_id  = 200;

Ответ: А.

100.Если составной запрос содержит как оператор MINUS, так и оператор INTERSECT, который будет применен первым? (Выбрать лучший ответ.)

  1. INTERSECT, потому что INTERSECT имеет более высокий приоритет, чем MINUS.
  2. МИНУС, потому что МИНУС имеет более высокий приоритет, чем INTERSECT.
  3. Приоритет определяется порядком, в котором они указаны.
  4. Для составного запроса невозможно включить как MINUS, так и INTERSECT.

Ответ: C. Все операторы множеств имеют одинаковый приоритет, поэтому приоритет определяется последовательностью, в которой они встречаются.