1. Что означает ACID по отношению к реляционной базе данных?
- Точность, согласованность, изоляция, база данных
- Точность, параллелизм, изоляция, долговечность
- Атомность, последовательность, изоляция, долговечность
- Атомарность, параллелизм, изоляция, долговечность
Ответ: C. Все транзакции Oracle соответствуют основным свойствам транзакции базы данных, известным как свойства ACID. Атомность утверждает, что все задачи транзакции выполнены или ни одна из них не выполняется. Частичных транзакций нет. Согласованность подразумевает, что транзакция переводит базу данных из одного согласованного состояния в другое согласованное состояние. Изоляция означает, что эффект транзакции не виден другим транзакциям, пока транзакция не будет зафиксирована. Долговечность означает, что изменения, сделанные совершенными транзакциями, являются постоянными. После завершения транзакции база данных посредством механизмов восстановления гарантирует, что изменения в транзакции не будут потеряны.
2. Что означает слово DML в Oracle SQL?
- Язык управления долговечностью
- Язык управления базой данных
- Язык манипулирования базой данных
- Ни один из вышеперечисленных
Ответ: C. DML расшифровывается как язык манипулирования данными.
3. Какие из перечисленных ниже команд DML в Oracle Database?
- ВЫБРАТЬ
- ГРУППА ПО
- ПЕРЕСЕЧЕНИЕ
- ВСТАВИТЬ
Ответ: A, D. На строгом основании SELECT — это команда DML, поскольку она является одним из обязательных положений для манипулирования данными, представленными в таблицах.
4. Какую из следующих команд DML можно считать гибридом INSERT и UPDATE в одном выражении?
- ПЕРЕСЕЧЕНИЕ
- ВСТАВИТЬ
- ВЫБРАТЬ
- MERGE
Ответ: D. MERGE может выполнять действия INSERT и UPDATE в одном выражении в Oracle.
5. Какие все операции может выполнять оператор MERGE в SQL?
- ВСТАВИТЬ
- УДАЛЯТЬ
- ГРУППА ПО
- Ни один из вышеперечисленных
Ответ: A, B. В некоторых случаях MERGE может выполнять операцию DELETE вместе с INSERT и UPDATE.
6.Какая из следующих команд является командой DDL (Язык определения данных), но часто рассматривается вместе с командами DML?
- УДАЛЯТЬ
- ВСТАВИТЬ
- TRUNCATE
- Ни один из вышеперечисленных
Ответ: C. TRUNCATE — это команда DDL. Он удаляет записи из таблицы без каких-либо условий. Он не является частью какой-либо текущей транзакции, и незафиксированная транзакция в сеансе фиксируется после выполнения TRUNCATE.
7. Какая из следующих команд манипулирует данными в основном?
- МИНУС
- ОБНОВИТЬ
- TRUNCATE
- Все вышеперечисленное
Ответ: B, C. UPDATE — это оператор DML для изменения значения столбца в таблице. TRUNCATE манипулирует данными, безоговорочно удаляя их из таблицы.
8. Какая из следующих команд используется для заполнения строк таблицы данными?
- УДАЛЯТЬ
- ВСТАВИТЬ
- ВЫБРАТЬ
- ОБНОВИТЬ
Ответ: B. Команда INSERT используется для вставки строк в таблицу.
9. Что является правдой в заявлении INSERT? (Выберите наиболее подходящий ответ)
- Он может вставлять данные в одну строку одной таблицы за раз
- Он может вставлять данные во множество строк одной таблицы одновременно
- Он может вставлять данные во множество строк множества таблиц одновременно
- Все вышеперечисленное
Ответ: C. Оператор INSERT способен вставлять строку или набор строк в одну таблицу за раз.
10.Что касается вставки строк в таблицы?
- Строки могут быть вставлены случайным образом
- Любое количество строк может быть вставлено в таблицу без каких-либо ограничений.
- Обычно строки вставляются в таблицу на основе определенных правил, известных как ограничения
- Все вышеперечисленное
Ответ: C. Ограничения — это бизнес-правила, налагаемые на столбцы, чтобы обеспечить поведение данных, поступающих в столбец. Эти ограничения проверяются для данных во время процесса INSERT.
11. Что верно в операторе INSERT в Oracle SQL? (Выберите наиболее подходящий ответ)
- Инструкция INSERT может переопределить любое ограничение, наложенное на таблицу
- Оператор INSERT нельзя использовать для таблицы, если в таблицу уже наложено ограничение
- Оператор INSERT может использоваться для таблицы, только если на таблицу уже наложено ограничение
- Инструкция INSERT никогда не может вставить строку, которая нарушает ограничение.
Ответ: D. Oracle вызывает исключение, если какие-либо данные, содержащиеся в операторе вставки, нарушают ограничение.
Рассмотрите следующий набор данных из таблицы СОТРУДНИКОВ вместе с его структурой и ответьте на вопросы 12, 13 и 14:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID ------------------- ------------------ -------- 5100 BRUCE CLERK 5101 JESSICA SALESMAN 5102 DEBBY SALESMAN
12. Изучите структуру таблицы СОТРУДНИКОВ. Вы вводите следующую команду:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (5100, 'BRUCE', 'CLERK');
Предполагая, что в столбце EMPLOYEE_ID имеется ограничение проверки повторяющихся значений, каков будет результат вышеприведенного оператора?
- Будет вставлена еще одна строка со значениями 5100 BRUCE CLERK
- Будет вставлена еще одна строка со значениями 51002 BRUCE CLERK
- Это выдаст ошибку ORA «Ограничение нарушено»
- Ни один из вышеперечисленных
Ответ: C. Поскольку строка со значениями «5100, BRUCE, CLERK» уже существует в таблице, оператор вставки с таким же набором данных невозможен.
13.Вы можете выполнить следующую команду для набора данных, показанного выше:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (51003,'BRUCE','CLERK');
Каковы будут результаты этого заявления?
- Будет вставлена новая строка со значениями 51003 BRUCE CLERK
- Он выдаст ошибку ORA, так как не может быть другого BRUCE, который является CLERK
- Это выдаст ошибку ORA «Ограничение нарушено»
- Ни один из вышеперечисленных
Ответ: A. Поскольку нет никаких ограничений на столбцы FIRST_NAME и job_id, INSERT будет работать без ошибок
14. Вы вводите следующую команду для набора данных, показанного выше:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (51003,'BRUCE', NULL);
Каковы будут результаты этого заявления?
- Будет вставлена новая строка со значениями 51003 BRUCE CLERK
- Он выдаст ошибку ORA, так как не может быть другого BRUCE, который является CLERK
- Это выдаст ошибку ORA «Ограничение нарушено»
- Будет вставлена новая строка со значениями 51003 BRUCE NULL
Ответ: D. Поскольку для столбцов FIRST_NAME и JOB_ID нет ограничения NOT NULL, значение NULL будет вставлено.
15. Что из нижеперечисленного можно сказать о вставке строк в таблицы?
- Пользователь не может интерактивно вставлять строки
- Запрос может быть написан с переменными подстановки для интерактивной вставки строк пользователями
- Когда пользователю предлагается вставить строки, вставка не работает и выдает ошибку ORA.
- Ни один из вышеперечисленных
Ответ: B. Оператор INSERT может использовать переменную подстановки, чтобы предложить пользователю ввести значения во время выполнения. Он обеспечивает интерактивный способ вставки данных в таблицы
16.Какое из следующего можно использовать для вставки строк в таблицы?
- ВЫБРАТЬ
- ВСТАВИТЬ
- Суб-запросы
- Все вышеперечисленное
Ответ: D. Оператор INSERT может использовать явный INSERT, INSERT-SELECT или метод подзапроса для вставки данных в таблицы.
17. Что из нижеперечисленного является распространенным методом для вставки строк в таблицу? (Выберите наиболее разумный и подходящий ответ)
- Использование предложения SELECT
- Ввод каждого значения вручную в предложение INSERT
- Использование операторов SET
- Ни один из вышеперечисленных
Ответ: A. Использование предложения SELECT является наиболее распространенным методом вставки строк в таблицы. Это сокращает усилия по ручному вводу значений для каждого столбца.
18. Какая из следующих команд используется для изменения строк, которые уже существуют в таблице?
- ВСТАВИТЬ
- UNION
- ОБНОВИТЬ
- ВЫБРАТЬ
Ответ: C. UPDATE — это оператор DML, который используется для изменения значений столбцов в таблице.
19.Что верно в отношении команды UPDATE?
- Он может обновлять только одну строку за раз
- Он может обновлять только 100 строк одновременно
- Он может обновлять неограниченное количество строк одновременно
- Ни один из вышеперечисленных
Ответ: C. ОБНОВЛЕНИЕ может обновлять несколько строк в одной или нескольких строках одновременно на основе условий предложения WHERE.
20.Какой из следующих пунктов решает, сколько строк нужно обновить?
- ВЫБРАТЬ
- ГДЕ
- ОТ
- Все вышеперечисленное
Ответ: B. Оператор UPDATE использует предложение WHERE для захвата набора строк, который необходимо обновить.
21.Что из следующего верно в отношении оператора UPDATE? (Выберите наиболее подходящий ответ)
- ОБНОВЛЕНИЕ может обновить строки только из одной таблицы
- ОБНОВЛЕНИЕ может обновить строки из нескольких таблиц
- Одна команда UPDATE не может влиять на строки в нескольких таблицах
- Ни один из вышеперечисленных
Ответ: A, C. Оператор UPDATE влияет на строки только одной таблицы, а не нескольких таблиц.
Рассмотрим следующий набор данных из таблицы EMPLOYEES и его структуру. Ответьте на следующие вопросы с 22 по 24.
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)
EMPLOYEE_ID FIRST_NAME JOB_ID ------------------- ------------------ -------- 5100 BRUCE CLERK 5101 JESSICA SALESMAN 5102 DEBBY SALESMAN
22. Вам нужно изменить JOB_ID для Брюса (Employee Id 7389) на «БУХГАЛТЕР». Какое из следующих утверждений вы уволите?
-
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE employee_id = 7389;
-
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (5100,'BRUCE', 'ACCOUNTANT');
-
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE job_id = 'CLERK';
-
UPDATE employees SET job_id = 'ACCOUNTANT';
Ответ: A. Опция B не выполняется, потому что она изменяет код задания всех клерков на БУХГАЛТЕР. Опция C неверна, потому что она обновляет код задания до ACCOUNTANT для всех сотрудников в таблице.
Ответьте на следующие вопросы 23 и 24, основываясь на следующих действиях:
Вы выполняете следующий запрос к таблице EMPLOYEES с набором данных, как показано выше.
UPDATE employees Set job_id = NULL Where employee_id = 51000;
Набор данных будет таким, как показано ниже: (Предположим, что в столбце EMPLOYEE_ID есть ограничение на повторяющиеся значения)
EMPLOYEE_ID FIRST_NAME JOB_ID ------------------- ------------------ -------- 5100 BRUCE 5101 JESSICA SALESMAN 5102 DEBBY SALESMAN
23. Предположим, вы запустили оператор UPDATE, чтобы обновить JOB_ID Брюса до SALESMAN (относительно набора данных, показанного выше). Каков будет результат запроса?
- Рабочий код Брюса по-прежнему будет нулевым
- Рабочий код Брюса будет изменен на «Продавец»
- Ошибка ORA
- Бездействие
Ответ: B. ОБНОВЛЕНИЕ добавит новое значение к значению NULL, изменив NULL на новое значение
24. Вы выполняете оператор UPDATE, чтобы обновить идентификатор сотрудника с 7389 до 7900. Вы запрашиваете сотрудника по его идентификатору «7389» перед совершением транзакции. Каким будет результат?
- Обновление будет работать успешно, в то время как select покажет 7389.
- Обновление будет работать успешно, в то время как select не будет показывать никаких записей
- Ограничение на EMPLOYEE_ID не позволит его обновить
- Он будет успешно обновлен, но все значения для EMPLOYEE_ID 7389 станут NULL.
Ответ: B. Запрос в сеансе соответствует текущим транзакциям. Если бы тот же запрос был выполнен в другом сеансе, он показал бы запись сотрудника с идентификатором 7389, поскольку активная транзакция в первом сеансе еще не зафиксирована.
25. Что из нижеперечисленного является типичным использованием оператора UPDATE? (Выберите наиболее подходящий ответ)
- Чтобы получить строку и обновить один или несколько столбцов этой строки
- Чтобы изменить все строки для некоторых столбцов
- Чтобы изменить все строки для всех столбцов таблицы
- Ни один из вышеперечисленных
Ответ: A. Хотя оператор UPDATE может изменять все значения столбцов во всех строках, но обычно он используется для выбора строки и обновления одного или нескольких столбцов.
26. Какие из следующих практик надлежащим образом описывают выбор набора строк для обновления с помощью оператора UPDATE?
- Если некоторые строки должны быть обновлены, можно использовать ограничение PRIMARY KEY
- Если все строки должны быть обновлены, можно рассмотреть предложение WHERE
- Чтобы обновить набор строк, используйте WHERE, чтобы обновить все строки таблицы, наложите ограничение PRIMARY KEY на таблицу.
- Ни один из вышеперечисленных
Ответ: C.
27. Какие из следующих столбцов в таблице обычно не обновляются?
- Столбцы типа LONG в таблице
- LOB столбцы в таблице
- Столбец первичного ключа, который также служит ссылкой на внешний ключ в другой таблице
- Все вышеперечисленное
Ответ: C. Как правило, столбцы первичных ключей, которые служат ссылками на внешние ключи в других таблицах, обновлять не следует. Хотя их можно обновить, отложив ограничения, что обычно не рекомендуется.
Рассмотрим следующий набор данных и структуру таблицы СОТРУДНИКОВ и ответьте на следующие вопросы 28 и 29:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID ------------------- ------------------ -------- 5100 BRUCE NULL 5101 JESSICA SALESMAN 5102 DEBBY SALESMAN
28. Вы выдаете инструкцию UPDATE следующим образом:
UPDATE employees SET job_id = NULL;
Каков будет результат вышеприведенного заявления?
- Первая строка набора данных будет обновлена до NULL
- 3-й столбец первой строки будет обновлен до NULL
- 3-й столбец всех строк будет обновлен до NULL
- И ошибка ORA будет брошена
Ответ: C. Оператор UPDATE без предложения WHERE обновит все строки таблицы.
29. Вы выдаете инструкцию UPDATE следующим образом:
UPDATE employees SET employee_id = NULL; WHERE job_id = 'CLERK';
Каков будет результат вышеприведенного заявления? (Здесь столбец EMPLOYEE_ID помечен как обязательный с помощью ограничения)
- Первый столбец набора данных будет обновлен до NULL
- 3-й столбец первой строки будет обновлен до NULL
- 3-й столбец всех строк будет обновлен до NULL
- И ошибка ORA будет брошена
Ответ: D. При обновлении его значения необходимо соблюдать ограничения на столбец. В данном операторе UPDATE будет выдана ошибка, поскольку столбец EMPLOYEE_ID является первичным ключом в таблице EMPLOYEES, что означает, что он не может быть NULL.
30. Какую из следующих команд можно использовать для удаления существующих записей из таблицы?
- ОБНОВИТЬ
- ВСТАВИТЬ
- МИНУС
- УДАЛЯТЬ
Ответ: D. DELETE используется для удаления записей из таблицы, которые могут быть необязательно основаны на условии. Будучи оператором DML, он является частью транзакции.
31. Что из следующего верно в отношении оператора DELETE?
- Оператор DELETE должен сопровождаться предложением WHERE
- Не обязательно писать предложение WHERE с оператором DELETE
- DELETE может удалять данные из нескольких таблиц одновременно
- Ни один из вышеперечисленных
Ответ: B. Предикат предложения WHERE является необязательным в инструкции DELETE. Если предложение WHERE опущено, все строки таблицы будут удалены.
32. Что из нижеперечисленного происходит, когда мы выполняем инструкцию DELETE для таблицы? (Выберите наиболее подходящий ответ)
- Появляется запрос, спрашивающий пользователя, уверен ли он / она в удалении запрошенных строк
- Строки, подчиняющиеся условию, указанному в инструкции DELETE, удаляются немедленно
- Запрашиваемые строки удаляются немедленно без какого-либо запроса.
- Ни один из вышеперечисленных
Ответ: C. Как часть активной или новой транзакции, строки в таблице будут удалены.
33.Рассмотрим следующий набор данных из таблицы EMPLOYEES и его структуру:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID ------------------- ------------------ -------- 5100 BRUCE 5101 JESSICA SALESMAN 5102 DEBBY SALESMAN
Вам необходимо удалить данные из столбца JOB_ID в строке с employee_id 51001. Какой из следующих запросов будет правильным?
-
UPDATE employees SET job_id = NULL WHERE employee_id = 51001;
-
DELETE job_id FROM employees WHERE employee_id = 51001;
-
DELETE FROM employees;
- Ни один из вышеперечисленных
Ответ: D. Вы не можете удалить конкретное значение столбца для конкретной строки с помощью инструкции DELETE. Вся строка удаляется в зависимости от заданных условий. Ненужные значения в столбце могут быть обновлены до NULL. Вариант «А» близок, но не корректен в контексте вопроса.
34. В чем разница между утверждениями UPSERT и MERGE?
- Нет никакой разницы
- UPSERT — последний термин, принятый для заявления MERGE, который устарел
- UPSERT может выполнить операцию удаления, которую MERGE не может
- MERGE вставляет, обновляет и удаляет, UPSERT только обновляет и вставляет
Ответ: D. UPSERT является устаревшим заявлением, и MERGE приобрел новые возможности.
35. В чем разница между командой MERGE и командами INSERT, UPDATE и DELETE?
- Оператор MERGE занимает больше времени, чем каждая операция (INSERT, UPDATE, DELETE), выполняемая отдельно
- MERGE устарел после Oracle 10g
- MERGE может выполнять все три операции над таблицей, в то время как INSERT, UPDATE и DELETE выполняют одну операцию за раз.
- Ни один из вышеперечисленных.
Ответ: C. Оператор MERGE может объединить все три операции в таблице в один оператор, в то время как INSERT, UPDATE и DELETE выполняют по одной операции за раз.
36. Какой из следующих объектов может быть источником данных в операторе MERGE?
- Только стол
- Только подзапрос
- Таблица или подзапрос
- Оба A или B
Ответ: C. MERGE хорошо работает с таблицей или подзапросом.
37. Чему из перечисленного соответствует оператор TRUNCATE? (Выберите наиболее подходящий ответ)
- К УДАЛЕНИЮ
- К заявлению ОБНОВЛЕНИЯ
- Оператор DELETE без предложения WHERE
- Ни один из вышеперечисленных
Ответ: C. TRUNCATE удаляет все строки в одной команде.
38. Какие из следующих ситуаций указывают на то, что была выполнена операция DML?
- Когда новые строки добавляются в таблицу
- Когда два запроса объединены
- Когда таблица усекается
- Ни один из вышеперечисленных
Ответ: A. Когда существующие строки в таблице вставляются, изменяются или удаляются из таблицы, это делается с помощью инструкции DML.
39. Что из следующего лучше всего определяет транзакцию?
- Транзакция состоит из операторов DDL в схеме базы данных
- Транзакция состоит из COMMIT или ROLLBACK в сеансе базы данных
- Транзакция состоит из набора операторов DML или операторов DDL, DCL или TCL для формирования логической единицы работы в сеансе базы данных.
- Транзакция состоит из набора операторов DML и DDL в разных сеансах базы данных.
Ответ: C. Транзакция базы данных состоит из одного или нескольких операторов DML, составляющих одно согласованное изменение данных, или оператора DDL, или команды DCL (GRANT или REVOKE). Он начинается с первого оператора DML и заканчивается командой DCL, DDL или TCL (COMMIT или ROLLBACK). Обратите внимание, что команды DDL и DCL содержат функцию автоматической фиксации.
40. Как называется коллекция операторов DML, образующих логическую единицу?
- ACID свойство
- UNION
- СОЮЗ ВСЕХ
- Сделка
Ответ: Д.
41. Что происходит, когда инструкция DML в активной транзакции сталкивается с ошибкой при выполнении?
- Завершенные транзакции откатываются
- DML в транзакции являются взаимоисключающими и, следовательно, могут продолжать свое выполнение
- Другие DML в транзакциях прерываются и ждут, пока ошибка не будет устранена
- Ни один из вышеперечисленных
Ответ: A. Если какая-либо из инструкций DML в активной транзакции встречает ошибку, вся транзакция заканчивается откатом.
42.Что верно в отношении ключевого слова VALUES в операторах INSERT?
- ЗНАЧЕНИЯ могут добавлять несколько строк одновременно во время вставки
- ЗНАЧЕНИЯ могут добавлять только 100 строк одновременно во время вставки
- ЗНАЧЕНИЯ обязательно использовать, если мы используем ключевое слово INSERT
- ЦЕННОСТИ добавить только одну строку за раз
Ответ: D. Ключевое слово VALUES используется только тогда, когда значения столбца явно указаны в операторе INSERT.
Рассмотрим следующее утверждение и структуру таблицы. Ответьте на вопросы с 43 по 45, которые следуют:
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)
INSERT INTO departments (department_id , department_name , manager_id, location_id ) VALUES (100, 'Human Resources', 121, 1000);
43. Сколько строк будет вставлено вышеупомянутым оператором?
- 0
- 2
- 3
- 1
Ответ: D. Когда используется ключевое слово VALUES, оно вставляет только одну строку за раз.
44. В каком порядке значения будут вставлены относительно приведенного выше оператора INSERT?
- Идентификатор местоположения, идентификатор менеджера, имя отдела, идентификатор отдела
- Идентификатор отдела, имя отдела, идентификатор менеджера, идентификатор местоположения
- идентификатор отдела, идентификатор менеджера, имя отдела, идентификатор местоположения
- идентификатор отдела, имя отдела, идентификатор местоположения, идентификатор менеджера
Ответ: B. Если столбцы упоминаются в предложении INSERT, ключевое слово VALUES должно содержать значения в том же порядке.
45. Предположим, что приведенное выше утверждение изменено следующим образом:
INSERT INTO departments VALUES (100, 'Human Resources', 121, 1000);
Каким будет результат этой модификации? Предположим, что таблица DEPARTMENTS имеет четыре столбца, а именно, Department_id, DEPARTMENT_NAME, MANAGER_ID и LOCATION_ID.
- Он вставит значения во все столбцы таблицы отделов, предполагая, что значения столбцов представлены в той же последовательности, что и столбец в таблице.
- Это выдаст ошибку ORA, потому что имена столбцов явно не упомянуты
- Это вызовет ошибку ORA, потому что предложение VALUES неправильно используется в INSERT
- Ни один из вышеперечисленных
Ответ: A. Включение имен столбцов в оператор INSERT необязательно, если значения должны соответствовать количеству и последовательности столбцов в таблице.
46. Каков будет результат нижеприведенного заявления INSERT? (Рассмотрим структуру таблицы)
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)
INSERT INTO EMPLOYEES (employee_id , hire_date) VALUES (210,"21-JUN-2013");
- Он будет вставлять только employee_id и дату найма сотрудника, оставляя все остальные столбцы пустыми
- Это будет вставить только employee_id
- Это выдаст ошибку ORA
- Ни один из вышеперечисленных
Ответ: C. Форматирование литерала даты содержит ошибку. Он должен быть заключен в одинарные кавычки, а не в двойные кавычки.
47. Каков будет результат приведенного ниже заявления INSERT? (Рассмотрим данную структуру таблицы)
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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES (210,"Bryan");
- Он будет вставлять только employee_id и имя Брайана, оставляя все остальные столбцы пустыми
- Будет вставлено только имя
- Это выдаст ошибку ORA
- Ни один из вышеперечисленных
Ответ: C. Формат строкового литерала содержит ошибку. Он должен быть заключен в одинарные кавычки, а не в двойные кавычки.
48. Предположим, вам нужно вставить имя O’Callaghan в качестве фамилии таблицы сотрудников. Какой из следующих запросов даст вам требуемые результаты? (Рассмотрим данную структуру таблицы)
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)
-
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O'callahan');
-
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O"callahan');
-
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O' 'Callahan');
-
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,"O'callahan");
Ответ: C.
49. Каков будет результат нижеприведенного заявления INSERT? (Рассмотрим данную структуру таблицы)
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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES ("210",'Bryan');
- Это выдаст ошибку числового значения
- Он будет вставлять только employee_id и имя Брайана, оставляя все остальные столбцы как NULL
- Это будет вставить только employee_id
- Ни один из вышеперечисленных
Ответ: A. Числовые значения не должны быть заключены в кавычки.
50. Каков будет результат нижеприведенного заявления INSERT? (Рассмотрим данную структуру таблицы)
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)
INSERT INTO departments VALUES (200,'Accounts', NULL, NULL);
- Это выдаст ошибку ORA
- Он будет выполнен успешно, но в столбцы могут быть вставлены неправильные значения
- Будет успешно выполнен
- Ни один из вышеперечисленных
Ответ: C. NULL могут использоваться в предложении VALUES для альтернативного заполнения значений столбцов.
51. Каков будет результат нижеприведенного заявления INSERT? (Предположим, что есть столбец NOT NULL для столбца Department_id, и рассмотрим структуру таблицы)
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)
INSERT INTO departments VALUES (NULL, 'Accounts', NULL);
- Это выдаст ошибку ORA
- Он будет выполнен успешно, но с ошибочными результатами
- Он будет выполнен успешно, но с правильными результатами
- Ни один из вышеперечисленных
Ответ: A. Значения NULL нельзя вставлять в ненулевые столбцы.
52. Каков будет результат нижеприведенного заявления INSERT? (Предположим, что есть столбец NOT NULL для столбца Department_id, и рассмотрите данную структуру таблицы)
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)
INSERT INTO departments VALUES (200, 34, NULL);
- Он будет выполнен успешно, но с ошибочными результатами
- Это выдаст ошибку ORA
- Он будет выполнен успешно, но с правильными результатами
- Ни один из вышеперечисленных
Ответ: B. Тип данных значения не соответствует типу данных столбца в таблице.
53. Какая из следующих команд используется для постоянного сохранения измененных данных в таблице?
- ROLLBACK
- COMMIT
- ВСТАВИТЬ
- ОБНОВИТЬ
Ответ: B. Команда TCL COMMIT используется для завершения текущей активной транзакции в сеансе, делая все ожидающие изменения данных постоянными в таблицах.
54. Какая из следующих команд позволяет отменить измененные данные?
- ROLLBACK
- COMMIT
- ВСТАВИТЬ
- ОБНОВИТЬ
Ответ: A. Команда TCL ROLLBACK используется для завершения текущей активной транзакции в сеансе путем отмены всех ожидающих изменений данных.
55. Какая из следующих команд позволяет включить маркеры в активной транзакции?
- ROLLBACK
- COMMIT
- SAVEPOINT
- Ни один из вышеперечисленных
Ответ: C. SAVEPOINT отмечает точку в транзакции, которая делит транзакцию на более мелкие секции.
56. Какая из следующих команд запрещает другим пользователям вносить изменения в таблицу?
- ROLLBACK
- COMMIT
- LOCK TABLE
- SAVEPOINT
Ответ: C.
57. Что верно в операторе INSERT, который пытается вставить значения в виртуальный столбец? (Выберите наиболее подходящий ответ)
- Он не может вставлять значения в столбец Virtual
- Может вставлять значения
- Выдает ошибку ORA
- Все вышеперечисленное
Ответ: A. Виртуальный столбец — это столбец, который всегда генерируется автоматически на основе выражения деривации, определенного в спецификации столбца. Его значение не может быть явно вставлено пользователем.
58. Какая из следующих команд позволяет пользователю вставлять несколько строк одним оператором?
- ВСТАВИТЬ
- ВСТАВИТЬ ВСЕ
- СОЮЗ ВСЕХ
- Ни один из вышеперечисленных
Ответ: B. Операции массовой вставки могут быть выполнены с помощью INSERT ALL.
59. Что из следующего является синтаксисом для вставки строк через подзапрос?
-
INSERT INTO tablename [{column_name,..}] subquery;
-
INSERT INTO tablename VALUES [{column_name,..}] subquery;
- Оба а и Б
- Ни один из вышеперечисленных
Ответ: А.
Рассмотрите следующую выставку таблицы СОТРУДНИКОВ и ответьте на следующие вопросы 60–63:
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)
60. Какой из следующих запросов будет успешно выполнен?
-
UPDATE employees SET salary = salary + 1000 WHERE to_char (hire_date, 'YYYY') > '2006';
-
UPDATE employees SET salary = salary + 1000 WHERE to_date (hire_date, 'YYYY') > '2006';
-
UPDATE employees SET salary = salary + 1000 WHERE hire_date > to_date (substr ('01-jan-200',8));
-
UPDATE employees SET salary = salary + 1000 WHERE hire_date in (to_date ('JUN 01 11', to_date ('JUL 01 11'));
Ответ: А.
61. В связи со структурной реорганизацией в организации вас просят обновить идентификаторы отделов для всех сотрудников до NULL, прежде чем окончательное решение будет обнародовано. Должны быть обновлены только те записи, у которых JOB_ID равен NULL. Какой из следующих запросов будет работать?
-
UPDATE employees SET department_id = NULL Where job_id = NULL;
-
UPDATE employees SET department_id = NULL Where job_id = TO_NUMBER(NULL);
-
UPDATE employees SET department_id = NULL Where job_id IS NULL;
-
UPDATE employees SET department_id = TO_NUMBER (' ', 9999) Where job_id = TO_NUMBER(NULL);
Ответ: C. Используйте оператор IS NULL, чтобы проверить значение столбца на нулевое значение.
62. Вам нужно добавить базовые данные о сотрудниках в таблицу EMPLOYEES. Базовые данные содержат фамилию «Облигация» и идентификатор отдела как 300. Какое из следующих утверждений даст правильные результаты?
-
INSERT INTO employees (employee_id , last_name, department_id ) (100,'Bond', (select department_id from departments where department_id = 300));
-
INSERT INTO employees (employee_id , last_name, department_id ) VALUES (100,'Bond', (select department_id from departments where department_id = 300));
-
INSERT INTO employees (employee_id , last_name, department_id ) VALUES ('100','Bond',300);
- Ни один из вышеперечисленных
Ответ: B, C. Подзапросы работают в операторах INSERT при условии, что они возвращают скалярное значение типа данных, соответствующего или совместимого со столбцом, для которого они используются.
63. Вы запускаете следующий запрос:
DELETE FROM EMPLOYEES;
Предполагая, что нет активных транзакций в таблице EMPLOYEES ни в одном сеансе, какое из следующих утверждений верно?
- Удаляет все строки и структуру таблицы.
- Удаляет все строки, которые можно откатить
- Удаляет все строки навсегда
- Ни один из вышеперечисленных
Ответ: B. Будучи оператором DML, изменения данных из-за операции DELETE становятся постоянными только после того, как в сеансе выдается COMMIT.
64. Рассмотрите структуру таблицы СТРАН, как показано:
SQL> desc countries Name Null? Type ----------------------- -------- ---------------- COUNTRY_ID NOT NULL CHAR(2) COUNTRY_NAME VARCHAR2(40) REGION_ID NUMBER
Вы делаете следующие заявления в сеансе.
INSERT INTO COUNTRIES (1, 'Whales') / INSERT INTO COUNTRIES (2, 'England') / SAVEPOINT A; UPDATE COUNTRIES SET country_id= 100 where country_id= 1 / SAVEPOINT B; DELETE FROM COUNTRIES where country_id= 2 / COMMIT / DELETE FROM COUNTRIES where country_id= 100 /
Что произойдет, если для сеанса пользователя будет выполнена команда ROLLBACK TO SAVEPOINT?
- Откат генерирует ошибку
- Откатываются только операторы DELETE
- Нет оператора SQL откат
- Ни один из вышеперечисленных
Ответ: A, C. Поскольку существуют две точки сохранения — A и B, а команда ROLLBACK указывает действительную отметку точки сохранения, Oracle выдает ошибку.
65. Если пользователь выполнит команду DML и внезапно завершит работу с SQL Developer без COMMIT или ROLLBACK, каков будет результат? (Предположим, сеанс не является автоматической фиксацией)
- Автоматический COMMIT
- Автоматический откат
- Может быть COMMIT или ROLLBACK для завершения транзакции
- Ни один из вышеперечисленных
Ответ: B. Когда транзакция прерывается из-за сбоя системы, вся транзакция автоматически откатывается.
66. Какая из следующих команд / операторов завершит транзакцию?
- COMMIT
- ВЫБРАТЬ
- SAVEPOINT
- СОЗДАЙТЕ
Ответ: A, D. Помимо команд TCL, например COMMIT или ROLLBACK, команды DDL и команды DCL обладают функцией автоматической фиксации. Активная транзакция будет зафиксирована, если инструкция DDL будет выполнена в том же сеансе.
67. Когда транзакция завершается?
- Когда выполняется ROLLBACK
- Когда выполняется COMMIT
- Когда TRUNCATE выполняется
- Все вышеперечисленное
Ответ: D. Транзакция завершается, если в сеансе выполняется команда TCL, DCL или DDL.
68. Изучите данные структуры таблиц и рассмотрите следующий запрос:
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)
INSERT INTO EMPLOYEES (department_id ) VALUES (select department_id FROM departments);
Каков будет результат вышеуказанного запроса?
- Столбцы в таблице EMPLOYEES и в таблице отделов не совпадают
- Предложение WHERE является обязательным для использования в подзапросе.
- Ключевое слово VALUES нельзя использовать с предложением INSERT при использовании подзапросов.
- Ни один из вышеперечисленных
Ответ: C. Неправильное использование ключевого слова VALUES. Он должен использоваться только тогда, когда у вас есть данные столбца, которые должны быть вставлены в таблицу.
69. Изучите данную структуру таблицы и рассмотрите следующий запрос:
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)
UPDATE (select employee_id , job_id from employees) SET hire_date = '01-JAN-13' WHERE employee_id = (select employee_id FROM job_history);
Что из следующего верно относительно данного запроса?
- Он не будет выполнен, так как мы не можем использовать две таблицы в одном операторе обновления
- Он не будет выполнен, так как UPDATE не может использовать подзапрос
- Он будет выполняться с ограничениями на указанный столбец
- Он не будет выполнен, так как подзапрос используется в предложении WHERE
Ответ: C.
70. Что происходит, когда транзакция совершается?
- Изменения, сделанные во время транзакции, сохраняются для определенного сеанса пользователя.
- Изменения, сделанные во время транзакции, отменяются
- Если транзакция является DDL, фиксация не работает
- Ни один из вышеперечисленных
Ответ: D. Подтверждение транзакции сохраняет ожидающие изменения данных на постоянной основе в базе данных.
71. Какая из следующих причин будет лучшей по использованию строки?
- Использование подзапросов
- Синтаксические ошибки
- Права доступа
- Нарушения ограничений
Ответ: C, B, D. Ссылки на несуществующие объекты / столбцы. Проблемы с пространством могут быть и по другим причинам.
72. Что происходит, когда инструкция INSERT пытается вставить записи в старую таблицу?
- Все столбцы получат значения NULL
- Новая таблица с тем же именем будет создана автоматически, а значения будут вставлены
- INSERT не может работать и выдает ошибку ORA
- Ни один из вышеперечисленных
Ответ: C.
73. Пользователь по имени «Джонатан Адамс» может ВЫБРАТЬ столбцы из таблицы СОТРУДНИКОВ, но не может вставлять записи в СОТРУДНИКИ. В чем может быть причина?
- Джонатан подключен к базе данных, которая не поддерживает операторы INSERT
- Оператор INSERT не может быть применен к таблице СОТРУДНИКИ
- У Джонатана есть доступ к SELECT, но нет доступа к INSERT INTERT в таблицу СОТРУДНИКИ
- Ни один из вышеперечисленных
Ответ: C. Пользователи могут пользоваться доступом к столу в зависимости от своих обязанностей. Один может иметь доступ только для чтения на столе, в то время как другой может пользоваться доступом для чтения и записи.
74. Предположим, что 1 миллион строк должен быть вставлен в таблицу AUDIT. Транзакция INSERT успешно выполняется для первых 1000 строк, и возникает ошибка ORA «Ограничение нарушено». Что будет со значениями, вставленными в первые 1000 строк?
- Они останутся такими, как есть.
- Все они будут удалены
- Они все откатятся
- Ни один из вышеперечисленных
Ответ: C. Если какой-либо из операторов DML во время транзакции обнаружит ошибку (и), полная транзакция будет откатана.
Изучите структуру таблицы, рассмотрите следующий запрос и ответьте на следующие вопросы 75, 76 и 77:
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)
INSERT INTO departments values (15, NULL);
75. Каким будет результат этого заявления?
- Будет вставлена строка с Department_id = 15 и все другие значения, как NULL
- Это выполнится успешно, но вставит 0 строк в таблицу
- Это выдаст ошибку ORA как нет. столбцов и значений не совпадают
- Ни один из вышеперечисленных
Ответ: C. Таблица DEPARTMENTS содержит четыре столбца, но оператор INSERT предоставляет значение только для двух столбцов, не упоминая также столбцы. Следовательно, ошибка ORA брошена.
76. Что верно в приведенном выше утверждении INSERT?
- Если столбцы не упоминаются в операторе INSERT, значения вставляются в столбцы позиционно
- Обязательно указывать столбцы после оператора INSERT
- Оба а и Б
- Ни один из вышеперечисленных
Ответ: A. Если столбцы не указаны в операторе INSERT, Oracle последовательно и позиционно отображает каждое значение в столбец таблицы.
77. Что касается приведенного выше утверждения, что произойдет, если таблица будет изменена для добавления нового столбца?
- Заявление все еще будет работать
- Выполнение оператора выдаст ошибку, поскольку в no будет несоответствие. столбцов и значений
- Там не будет никаких изменений, и оператор будет выполняться, как и раньше
- Ни один из вышеперечисленных
Ответ: B. Поскольку столбцы не были указаны ранее, проблема все равно будет существовать. Несоответствие в сопоставлении значения столбца приведет к ошибке ORA.
Изучите приведенную ниже структуру таблицы, рассмотрите следующие запросы и ответьте на следующие вопросы 78 и 79:
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:
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, 'ADAMS','21-DEC-12');
Запрос 2:
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
78. Какой из двух вышеуказанных запросов лучше?
- Оба лучше
- Только Query 1 лучше
- Только Query 2 лучше
- Ни один из запросов не является правильным
Ответ: C. Query-2 лучше, потому что он вставляет значение даты как дату, а не как строку. Хотя Oracle будет выполнять неявное преобразование строкового литерала, указанного в качестве даты, но не рекомендуется.
79. Какой из следующих запросов эквивалентен запросу 2, приведенному выше?
-
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (101-1, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
-
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (99+1, upper('ADAMS'),to_date('22-DEC-12','DD-MON-YY') +1 );
-
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY') - 1);
-
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('28-DEC-12','DD-MON-YY')-7 );
Ответ: A, C, D. Арифметические операции / функции могут использоваться для вставки значений, как показано выше.
80. Вам необходимо скопировать данные из одной таблицы в другую таблицу. Какой из следующих методов можно использовать?
- Вы можете использовать команду COPY
- Вы можете использовать команду INSERT
- Вы можете использовать команду UPDATE
- Ни один из вышеперечисленных
Ответ: B. Операции прямого пути INSERT-AS-SELECT (IAS) — это наиболее часто используемый метод для копирования данных из одной таблицы в другую.
81. Какой из следующих операторов будет копировать данные из таблицы JOB_HISTORY в таблицу 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)
-
INSERT INTO job_history values (select * from job_history);
-
INSERT INTO JOB_HISTORY_ARCHIVE values (select * from job_history_archive);
-
INSERT INTO JOB_HISTORY_ARCHIVE select * from job_history;
- Ни один из вышеперечисленных
Ответ: C. Опция ‘C’ правильно показывает использование метода IAS (INSERT-AS-SELECT).
Изучите данную структуру таблицы. Рассмотрите следующий запрос и ответьте на следующие вопросы 82 и 83:
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)
INSERT ALL WHEN job_id = 'SA_REP' then INTO employees (employee_id , department_id , salary, hire_date) VALUES (employee_id , 10, salary, hire_date) WHEN job_id <> 'SA_REP' then INTO employees (employee_id , department_id , salary, hire_date) VALUES (employee_id , 20, salary, hire_date) SELECT employee_id , department_id , job_id, salary, commission_pct , hire_date FROM employees WHERE hire_date > sysdate - 30;
82. Интерпретировать вывод вышеприведенного оператора INSERT.
- Выкинул ошибку
- Он вставит записи для всех сотрудников, которые были наняты за месяц до sysdate.
- Он вставит записи для всех сотрудников, которые являются торговыми представителями в отделе 10
- Ни один из вышеперечисленных
Ответ: B, C. INSERT ALL может делать условные вставки в целевые таблицы.
83. Данные каких сотрудников будут вставлены в отдел 20?
- Торговые представители
- бухгалтера
- Оба A или B
- Ни один из вышеперечисленных
Ответ: B. Согласно инструкции INSERT ALL, данные о сотрудниках, чей job_id не является «Торговым представителем».
84. Каков будет результат приведенного ниже запроса? (Рассмотрим структуру таблицы как дано)
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)
INSERT INTO employees (employee_id , salary) VALUES (&employee_id , &salary); COMMIT;
- Синтаксическая ошибка в качестве переменных подстановки не может использоваться в инструкциях DML
- Пользователю будет предложено ввести идентификатор сотрудника и зарплату, но переменные замещения не могут вставить данные в таблицу.
- Пользователю будет предложено ввести идентификатор сотрудника, и зарплата и запись будут успешно созданы в таблице EMPLOYEES.
- Ни один из вышеперечисленных
Ответ: C. Переменные подстановки хорошо работают с операторами DML.
85. Оцените следующие операторы SQL, которые выполняются в сеансе пользователя в указанном порядке:
CREATE SEQUENCE id_seq; SELECT id_seq.nextval FROM dual; INSERT INTO employees (employee_id ,first_name,job_id ) VALUES (ord_seq.CURRVAL, 'Steyn','Trainee'); UPDATE employees SET employee_id = id_seq.NEXTVAL WHERE first_name = 'Steyn' AND job_id ='Trainee';
Каков будет результат вышеприведенных заявлений?
- Команда CREATE SEQUENCE выдаст ошибку, поскольку минимальное и максимальное значение для последовательности не указано
- Все операторы будут выполнены успешно, а столбец employee_id будет содержать значение 2 для STEYN сотрудника.
- Команда CREATE SEQUENCE не будет выполнена, поскольку начальное значение последовательности и значение приращения не указаны.
- Все операторы будут выполнены успешно, и столбец employee_id будет иметь значение 20 для STEYN сотрудника, поскольку значение CACHE по умолчанию равно 20.
Ответ: Б.
86. Каково ограничение на подзапрос, используемый в операторе UPDATE?
- Подзапрос должен быть многострочным подзапросом
- Подзапрос должен быть подзапросом из одной строки
- Там нет ограничений
- Подзапрос может быть либо однострочным, либо многострочным подзапросом.
Ответ: B. Подзапрос не должен возвращать несколько строк при использовании в операторе UPDATE.
Изучите данную структуру таблицы, рассмотрите приведенный ниже запрос и ответьте на следующие вопросы 87 и 88:
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)
UPDATE employees SET salary = (SELECT salary FROM employees WHERE employee_id =7382);
87. Каков будет результат вышеупомянутого запроса?
- Выдает ошибку ORA при исполнении
- Заработная плата всех сотрудников будет обновлена на ту же зарплату, что и работник 7382
- Заработная плата всех сотрудников будет обновлена до NULL
- Ни один из вышеперечисленных
Ответ: B. Результаты запроса могут быть использованы для обновления значений столбцов в таблице.
88. Предположим, что сотрудник 7382 не существует в таблице СОТРУДНИКОВ. Каков будет результат запроса?
- Выдает ошибку ORA при выполнении, потому что результаты запроса не могут быть обновлены в столбцы
- Заработная плата всех сотрудников будет обновлена до NULL
- Исключение ORA ‘NO_DATA_FOUND’ будет вызвано тем, что сотрудник 7382 не существует
- Ни один из вышеперечисленных
Ответ: B. Операторы UPDATE не вызывают никаких исключений, кроме синтаксических ошибок.
Изучите данную структуру таблицы, рассмотрите приведенный ниже запрос и ответьте на следующие вопросы 89 и 90:
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)
UPDATE employees set salary = (select salary from employees where last_name = 'Adams');
89. Каким будет результат запроса?
- Выполняется успешно
- Все строки таблицы имеют одинаковую зарплату
- Это может выдать ошибку ORA «TOO_MANY_ROWS» при выполнении
- Ни один из вышеперечисленных
Ответ: C. Подзапрос может возвращать более одной строки, вызывая ошибку.
90. Какие изменения в приведенном выше запросе обеспечат отсутствие ошибок?
- Используйте функцию одной строки, такую как MAX, MIN или AVG, чтобы уменьшить многострочные результаты в скалярный результат
- Добавление ограничения первичного ключа в столбец SALARY
- Никаких изменений не требуется
- Ни один из вышеперечисленных
Ответ: А.
Изучите данную структуру таблицы, рассмотрите следующий запрос и ответьте на следующие вопросы 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)
UPDATE employees SET salary = (select max (salary) from employees where last_name = 'Adams');
91. Каков будет результат запроса, приведенного выше?
- Он обновит зарплату всех сотрудников, равную зарплате сотрудника по имени Адам
- Он обновит зарплату всех сотрудников, равную средней зарплате всех с фамилией «Адам»
- Обновит 0 строк
- Обновится только одна строка
Ответ: B. Арифметические функции MAX или MIN можно использовать с подзапросами, чтобы получить скалярные значения и избежать ошибок.
92. Предположим, что вышеприведенный подзапрос заменен следующим:
SELECT distinct salary from employees where last_name = 'Adam';
Каков будет результат основного запроса, приведенного выше?
- Он будет успешно выполнен, давая неверные результаты
- Он будет успешно выполнен, давая правильные результаты
- Это выдаст ошибку ORA
- Ни один из вышеперечисленных
Ответ: C. это дает ошибку, потому что есть много людей с фамилией «Адам», поэтому у них будет много разных зарплат.
Изучите данную структуру таблицы, рассмотрите следующий запрос и ответьте на следующие вопросы 93 и 94:
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)
UPDATE employees SET salary = 50000; WHERE job_id in (select job_id from job_history where department_id = 10);
93. Что будет делать приведенное выше утверждение? (Выберите наиболее подходящий ответ)
- Это обновит все зарплаты для всех сотрудников как 50000
- Это обновит все зарплаты для всех сотрудников, которые находятся в отделе 10
- Он обновит зарплату для всех сотрудников, у которых один из идентификаторов работы, аналогичный идентификаторам должностей в отделе 10
- Ни один из вышеперечисленных
Ответ: C.
94. Что произойдет, если приведенное выше предложение WHERE будет заменено следующим?
WHERE job_id = (select job_id from job_history where department_id = 10);
- Он будет успешно выполнен с неверными результатами
- Он будет успешно выполнен с правильными результатами
- Это выдаст ошибку ORA
- Ни один из вышеперечисленных
Ответ: C. Знак равенства вызовет ошибку.
Изучите данную структуру таблицы и рассмотрите следующее утверждение. Ответьте на следующие вопросы с 95 по 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)
DELETE FROM employees where last_name = 'A%'; COMMIT;
95. Каков будет результат запроса, приведенного выше?
- Выполняется успешно, но строки не удаляются
- Все сотрудники, чья фамилия начинается с «A», будут удалены
- Ошибка ORA, поскольку в инструкции DELETE не может быть предиката WHERE
- Все строки из таблицы сотрудников будут удалены
Ответ: A. Оператор DELETE может иметь предикат предложения WHERE. В зависимости от условий записи будут удалены из таблицы.
96. Рассмотрим следующее утверждение:
DELETE FROM employees where employee_id IS NULL and job_id = NULL; COMMIT;
Предполагая, что для столбца employee_id есть ограничение NOT NULL, каков будет результат вышеуказанного запроса?
- Это вызовет ошибку ORA из-за неверных предикатов WHERE
- Он будет успешно выполнен и строки не будут удалены
- Это вызовет ошибку ORA, потому что несколько предикатов не могут работать в операторах DELETE.
- Ни один из вышеперечисленных
Ответ: B. Множественные предикаты могут быть применены к операторам DML UPDATE и DELETE.
97. Рассмотрим следующий запрос:
DELETE FROM employees where department_id = &deptID; COMMIT;
Что произойдет, когда приведенное выше заявление будет выполнено?
- Это вызовет ошибку, потому что операторы DML не могут использовать переменные подстановки
- Будет предложено удалить идентификатор отдела от пользователя и удалить запись с указанным идентификатором отдела
- Он запросит идентификатор отдела, но транзакция не может быть принята
- Ни один из вышеперечисленных
Ответ: B. Переменные подстановки могут использоваться с операторами DML.
98. Все части сделки должны завершиться или ни одна из них. Какое свойство правила ACID соответствует данному утверждению?
- валентность
- консистенция
- изоляция
- долговечность
Ответ: A. ACID относится к основным свойствам транзакции базы данных: атомарность, согласованность, изоляция и долговечность. Атомность подразумевает, что вся последовательность действий должна быть либо завершена, либо прервана. Согласованность подразумевает, что транзакция переводит ресурсы из одного согласованного состояния в другое. Изоляция подразумевает, что эффект транзакции не виден другим транзакциям, пока транзакция не будет зафиксирована. Долговечность подразумевает, что изменения, внесенные совершенной транзакцией, являются постоянными и должны пережить сбой системы.
99. Что означает принцип долговечности в собственности ACID?
- В нем говорится, что база данных может потерять завершенные транзакции
- В нем говорится, что транзакция не может быть завершена
- В нем говорится, что после завершения транзакции БД не может ее потерять.
- Ни один из вышеперечисленных
Ответ: C.
100. Незавершенная транзакция должна быть невидимой для всех остальных пользователей. Какие из свойств КИСЛОТЫ заявляют это?
- изоляция
- консистенция
- валентность
- долговечность
Ответ: «Я» означает «Изоляция».
101. Что говорит принцип согласованности?
- В нем говорится, что результаты запроса должны соответствовать состоянию БД на момент начала запроса
- В нем говорится, что незавершенная транзакция должна быть невидимой для всех других пользователей
- It states that once a transaction completes, it must be impossible for the DB to lose it
- Ни один из вышеперечисленных
Answer: A. the «C» in ACID property stands for Consistency
102. What among the following best describes a Transaction?
- INSERT to COMMIT/ROLLBACK
- UPDATE to COMMIT/ROLLBACK
- DELETE to COMMIT/ROLLBACK
- INSERT/UPDATE/DELETE to COMMIT/ROLLBACK
Ответ: Д.
103. A user named «Jonathan» inserts data in the table EMPLOYEES. When will the other users be able to see the new data?
- When Jonathan provides access permission to the users
- When Jonathan executes a ROLLBACK statement in the session
- When Jonathan executes a COMMIT statement in the same session
- When Jonathan opens a new session and issues a COMMIT
Answer: C. The active transaction must be committed in the same session.
104. What can be said about the nesting of transactions?
- Maximum 2 levels of nesting are possible
- Maximum 255 levels of nesting are possible
- Nesting of a transaction is impossible
- Only 1 level of nesting is possible
Ответ: C.
105. Which of the following reasons will terminate a transaction?
- A DDL statement
- Exiting a client
- System crashes
- Все вышеперечисленное
Answer: D. DDL is auto commit and will end the ongoing active transaction.