Manipulando questões de dados
1.What does ACID mean with respect to relational database?
- Precisão, consistência, isolamento, banco de dados
- Precisão, simultaneidade, isolamento, durabilidade
- Atomicidade, consistência, isolamento, durabilidade
- Atomicidade, simultaneidade, isolamento, durabilidade
Answer: C. Todas as transações Oracle estão de acordo com as propriedades básicas de uma transação de banco de dados, conhecidas como propriedades ACID. A atomicidade afirma que todas as tarefas de uma transação são realizadas ou nenhuma delas. Não há transações parciais. A consistência implica que a transação leva o banco de dados de um estado consistente para outro estado consistente. Isolamento significa que o efeito de uma transação não é visível para outras transações até que a transação seja confirmada. Durabilidade significa que as alterações feitas por transações confirmadas são permanentes. Após a conclusão de uma transação, o banco de dados garante, por meio de seus mecanismos de recuperação, que as alterações da transação não sejam perdidas.
2. What does the word DML stands for in Oracle SQL?
- Linguagem de gestão de durabilidade
- Linguagem de gerenciamento de banco de dados
- Linguagem de manipulação de banco de dados
- Nenhuma das acima
Answer: C. DML significa Linguagem de Manipulação de Dados.
3. Which of the following are DML commands in Oracle Database?
- SELECT
- GRUPO POR
- INTERSECT
- INSERT
Answer: A, D. Por motivos estritos, SELECT é um comando DML, pois é uma das cláusulas obrigatórias para a manipulação de dados presentes nas tabelas.
4.Which of the following DML commands can be considered to be a hybrid of INSERT and UPDATE in a single statement?
- INTERSECT
- INSERT
- SELECT
- MERGE
Answer: D. MERGE pode realizar ações INSERT e UPDATE em uma única instrução no Oracle.
5. What all operations can MERGE statement perform in SQL?
- INSERT
- DELETE
- GRUPO POR
- Nenhuma das acima
Answer: A, B. Em algumas condições, MERGE pode realizar a operação DELETE também, junto com INSERT e UPDATE.
6.Which of following commands is a DDL (Data Definition Language) command but is often considered along with DML commands?
- DELETE
- INSERT
- TRUNCATE
- Nenhuma das acima
Answer: C. TRUNCATE é um comando DDL. Ele remove os registros da tabela sem qualquer condição. Não faz parte de nenhuma transação em andamento e uma transação não confirmada na sessão é confirmada após TRUNCATE ser executado.
7.Which of the following commands manipulate data basically?
- MINUS
- UPDATE
- TRUNCATE
- Tudo acima
Answer: B, C. UPDATE é uma instrução DML para modificar um valor de coluna em uma tabela. TRUNCATE manipula os dados removendo-os incondicionalmente de uma tabela.
8. Which of the following commands is used to populate table rows with data?
- DELETE
- INSERT
- SELECT
- UPDATE
Answer: B. O comando INSERT é usado para inserir linhas em uma tabela.
9. What is true about the INSERT statement? (Choose the most appropriate answer)
- Ele pode inserir dados em uma linha de uma tabela por vez
- Ele pode inserir dados em várias linhas de uma tabela por vez
- Ele pode inserir dados em muitas linhas de muitas tabelas ao mesmo tempo
- Tudo acima
Answer: C. A instrução INSERT é capaz de inserir uma linha ou conjunto de linhas em uma única tabela por vez.
10.What is true about the insertion of rows in tables?
- As linhas podem ser inseridas aleatoriamente
- Qualquer número de linhas pode ser inserido em uma tabela sem quaisquer restrições
- Geralmente, as linhas são inseridas em uma tabela com base em certas regras conhecidas como restrições
- Tudo acima
Answer: C. As restrições são regras de negócios impostas às colunas de forma a garantir o comportamento dos dados que chegam na coluna. Essas restrições são validadas para os dados durante o processo INSERT.
11. What is true about the INSERT statement in Oracle SQL? (Choose the most appropriate answer)
- Uma instrução INSERT pode substituir qualquer restrição colocada na mesa
- Uma instrução INSERT não pode ser usada em uma tabela se uma restrição já foi colocada na mesa
- Uma instrução INSERT pode ser usada em uma tabela apenas se uma restrição já estiver colocada na mesa
- Uma instrução INSERT nunca pode inserir uma linha que viole uma restrição.
Answer: D. O Oracle levanta uma exceção se algum dos dados contidos na instrução insert violar a restrição.
Consider the following data set from the EMPLOYEES table along with its structure and answer the questions 12, 13 and 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. Examine the structure of the EMPLOYEES table. You issue the following command:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (5100, 'BRUCE', 'CLERK');
Supondo que haja uma restrição de verificação de valor duplicado na coluna EMPLOYEE_ID, qual será o resultado da declaração acima?
- Ele irá inserir outra linha com 5100 valores de BRUCE CLERK
- Ele irá inserir outra linha com 51002 valores BRUCE CLERK
- Ele lançará um erro ORA de 'Restrição violada'
- Nenhuma das acima
Answer: C. Como a linha com os valores "5100, BRUCE, CLERK" já existe na tabela, a instrução insert com o mesmo conjunto de dados não é possível.
13.You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (51003,'BRUCE','CLERK');
Qual será o resultado desta declaração?
- Ele irá inserir uma nova linha com 51003 valores BRUCE CLERK
- Isso gerará um erro ORA, pois não pode haver outro BRUCE que seja CLERK
- Ele lançará um erro ORA de 'Restrição violada'
- Nenhuma das acima
Answer: A. Como não há restrição nas colunas FIRST_NAME e job_id, o INSERT funcionará sem nenhum erro
14. You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (51003,'BRUCE', NULL);
Qual será o resultado desta declaração?
- Ele irá inserir uma nova linha com 51003 valores BRUCE CLERK
- Isso gerará um erro ORA, pois não pode haver outro BRUCE que seja CLERK
- Ele lançará um erro ORA de 'Restrição violada'
- Ele irá inserir uma nova linha com 51003 valores BRUCE NULL
Answer: D. Como não há restrição NOT NULL nas colunas FIRST_NAME e JOB_ID, o valor NULL será inserido.
15. What among the following can be said regarding inserting of rows in tables?
- O usuário não pode inserir linhas interativamente
- Uma consulta pode ser escrita com variáveis de substituição para uma inserção interativa de linhas pelos usuários
- Quando um usuário é solicitado a inserir linhas, a inserção não funciona e gera um erro ORA
- Nenhuma das acima
Answer: B. Uma instrução INSERT pode usar a variável de substituição para solicitar que o usuário digite os valores durante o tempo de execução. Ele fornece uma maneira interativa de inserir dados em tabelas
16.Which of the following can be used to insert rows in tables?
- SELECT
- INSERT
- Sub-queries
- Tudo acima
Answer: D. A instrução INSERT pode usar INSERT, INSERT-SELECT ou um método de subconsulta explícito para inserir dados nas tabelas.
17. Which among the following is a common technique for inserting rows into a table? (Choose the most sensible and appropriate answer)
- Usando a cláusula SELECT
- Digitando manualmente cada valor na cláusula INSERT
- Usando operadores SET
- Nenhuma das acima
Answer: A. Usar a cláusula SELECT é a técnica mais comum para inserir linhas em tabelas. Isso reduz o esforço de digitar valores manualmente para cada coluna.
18.Which of the following commands is used to change the rows that already exist in a table?
- INSERT
- UNION
- UPDATE
- SELECT
Answer: C. UPDATE é uma instrução DML que é usada para modificar os valores da coluna em uma tabela.
19.What is true about the UPDATE command?
- Ele pode atualizar apenas uma linha por vez
- Ele pode atualizar apenas 100 linhas por vez
- Ele pode atualizar linhas ilimitadas por vez em massa
- Nenhuma das acima
Answer: C. Um UPDATE pode atualizar várias linhas em uma ou mais linhas por vez com base nas condições da cláusula WHERE.
20.Which of the following clauses decides how many rows are to be updated?
- SELECT
- WHERE
- FROM
- Tudo acima
Answer: B. A instrução UPDATE usa a cláusula WHERE para capturar o conjunto de linhas que precisa ser atualizado.
21.What among the following is true about the UPDATE statement? (Choose the most appropriate answer)
- Um UPDATE pode atualizar linhas de apenas uma tabela
- Um UPDATE pode atualizar linhas de várias tabelas
- Um único comando UPDATE não pode afetar as linhas em várias tabelas
- Nenhuma das acima
Answer: A, C. Uma instrução UPDATE afeta as linhas de apenas uma tabela e não de várias tabelas.
Consider the following data set from the EMPLOYEES table and its structure. Answer questions 22 to 24 that follow.
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. You need to change the JOB_ID for Bruce (Employee Id 7389) to 'ACCOUNTANT'. Which of the following statements will you fire?
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';
Answer: A. A opção B falha porque modifica o código do trabalho de todos os funcionários para CONTADOR. A opção C está errada porque atualiza o código do trabalho para ACCOUNTANT para todos os funcionários da tabela.
Answer the following questions 23 and 24 based on the below actions -
Você emite a seguinte consulta para a tabela EMPLOYEES com o conjunto de dados conforme mostrado acima.
UPDATE employees
Set job_id = NULL
Where employee_id = 51000;
O conjunto de dados será como mostrado abaixo: (Suponha que haja uma restrição de valor duplicado na coluna EMPLOYEE_ID)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
23. Suppose you fire an UPDATE statement to update Bruce's JOB_ID to 'SALESMAN' (with respect to the data set shown above). What will be the outcome of the query?
- O código de trabalho de Bruce ainda será NULL
- O código do trabalho de Bruce será modificado para 'VENDEDOR'
- Erro ORA
- Sem ação
Answer: B. O UPDATE irá adicionar o novo valor ao valor NULL mudando o NULL para o novo valor
24. You issue an UPDATE statement to update the employee id 7389 to 7900. You query the employee by its id '7389' before committing the transaction. What will be the outcome?
- A atualização funcionará com sucesso enquanto o select mostrará 7389.
- A atualização funcionará com sucesso enquanto a seleção não mostrará nenhum registro.
- A restrição em EMPLOYEE_ID não permitirá que seja atualizado
- Ele será atualizado com sucesso, mas todos os valores para EMPLOYEE_ID 7389 se tornarão NULL.
Answer: B. Uma consulta em uma sessão é consistente com as transações em andamento. Se a mesma consulta tivesse sido executada em uma sessão diferente, teria mostrado o registro do funcionário com id 7389 porque a transação ativa na primeira sessão ainda não foi confirmada.
25. What among the following is a typical use of an UPDATE statement? (Select the most appropriate answer)
- Para recuperar uma linha e atualizar uma ou mais colunas dessa linha
- Para modificar todas as linhas de algumas colunas
- Para modificar todas as linhas para todas as colunas de uma tabela
- Nenhuma das acima
Answer: A. Embora a instrução UPDATE possa modificar todos os valores da coluna em todas as linhas, mas normalmente é usada para selecionar uma linha e atualizar uma ou mais colunas.
26. Which of the following practices appropriately describe for selecting which row set to update using the UPDATE statement?
- Se algumas linhas devem ser atualizadas, a restrição PRIMARY KEY pode ser usada
- Se todas as linhas devem ser atualizadas, a cláusula WHERE pode ser considerada
- Para atualizar um conjunto de linhas, use WHERE; para atualizar todas as linhas de uma tabela, coloque uma restrição PRIMARY KEY na tabela
- Nenhuma das acima
Answer: C.
27. Which of the following columns in a table are not usually updated?
- Colunas de tipo LONG na tabela
- Colunas LOB na tabela
- Uma coluna de chave primária que também serve como referência de chave estrangeira em outra tabela
- Tudo acima
Answer: C. Como prática comum, as colunas de chave primária que servem como referência de chave estrangeira em outras tabelas não devem ser atualizadas. Embora eles possam ser atualizados adiando as restrições, o que geralmente não é recomendado.
Consider the following data set and structure of the EMPLOYEES table and answer the questions 28 and 29 that follow:
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. You issue an UPDATE statement as follows:
UPDATE employees
SET job_id = NULL;
Qual será o resultado da declaração acima?
- A primeira linha do conjunto de dados será atualizada para NULL
- A 3ª coluna da primeira linha será atualizada para NULL
- A 3ª coluna de todas as linhas será atualizada para NULL
- E o erro ORA será lançado
Answer: C. Uma instrução UPDATE sem uma cláusula WHERE atualizará todas as linhas da tabela.
29. You issue an UPDATE statement as follows:
UPDATE employees
SET employee_id = NULL;
WHERE job_id = 'CLERK';
Qual será o resultado da declaração acima? (Aqui, a coluna EMPLOYEE_ID é marcada como obrigatória colocando uma restrição)
- A primeira coluna do conjunto de dados será atualizada para NULL
- A 3ª coluna da primeira linha será atualizada para NULL
- A 3ª coluna de todas as linhas será atualizada para NULL
- E o erro ORA será lançado
Answer: D. As restrições da coluna devem ser obedecidas durante a atualização de seu valor. Na instrução UPDATE fornecida, um erro será gerado porque a coluna EMPLOYEE_ID é uma chave primária na tabela EMPLOYEES, o que significa que não pode ser NULL.
30. Which of the following commands can be used to remove existing records from a table?
- UPDATE
- INSERT
- MINUS
- DELETE
Answer: D. DELETE é usado para remover os registros da tabela que podem ser opcionalmente baseados em uma condição. Sendo uma declaração DML, é parte de uma transação.
31. What among the following is true about the DELETE statement?
- A instrução DELETE deve ser acompanhada pela cláusula WHERE
- Não é obrigatório escrever uma cláusula WHERE com a instrução DELETE
- DELETE pode remover dados de várias tabelas ao mesmo tempo
- Nenhuma das acima
Answer: B. O predicado da cláusula WHERE é opcional na instrução DELETE. Se a cláusula WHERE for omitida, todas as linhas da tabela serão excluídas.
32.What among the following happens when we issue a DELETE statement on a table? (Choose the most appropriate answer)
- Um prompt aparece perguntando ao usuário se ele tem certeza de deletar as linhas solicitadas
- As linhas que obedecem à condição dada na instrução DELETE são removidas imediatamente
- As linhas solicitadas são removidas imediatamente sem qualquer prompt.
- Nenhuma das acima
Answer: C. Como parte da transação ativa ou nova, as linhas da tabela serão excluídas.
33.Consider the following data set from the EMPLOYEES table and its structure:
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
Você precisa excluir os dados da coluna JOB_ID na linha com employee_id 51001. Qual das seguintes consultas está correta?
UPDATE employees SET job_id = NULL WHERE employee_id = 51001;
DELETE job_id FROM employees WHERE employee_id = 51001;
DELETE FROM employees;
- Nenhuma das acima
Answer: D. Você não pode excluir um valor de coluna específico para uma linha específica com a instrução DELETE. A linha inteira é excluída com base nas condições fornecidas. Os valores indesejados em uma coluna podem ser atualizados para NULL. A opção 'A' está próxima, mas não está correta no contexto da pergunta.
34. What is the difference between the UPSERT and MERGE statements?
- Não há diferença
- UPSERT é o último termo adotado para a declaração MERGE, que se tornou obsoleta
- UPSERT pode executar operações de exclusão que MERGE não pode
- MERGE faz INSERT, UPDATE e DELETE, UPSERT só UPDATE e INSERT
Answer: D. UPSERT é uma declaração obsoleta e MERGE assumiu com novos recursos.
35. What is the difference between the MERGE command and the commands INSERT, UPDATE and DELETE?
- A instrução MERGE consome mais tempo do que cada operação (INSERT, UPDATE, DELETE) feita separadamente
- MERGE é obsoleto após Oracle 10g
- MERGE pode realizar todas as três operações em uma tabela enquanto INSERT, UPDATE e DELETE realizam uma operação por vez.
- Nenhuma das acima.
Answer: C. A instrução MERGE pode incorporar todas as três operações em uma tabela em uma única instrução enquanto INSERT, UPDATE e DELETE executam uma operação por vez.
36. Which of the following objects can be the data source in a MERGE statement?
- Apenas uma mesa
- Uma subconsulta apenas
- Uma tabela ou subconsulta
- Ambos A ou B
Answer: C. MERGE funciona bem com uma tabela ou subconsulta.
37. What among the following is a TRUNCATE statement equivalent to? (Choose the most suitable answer)
- Para uma declaração DELETE
- Para uma declaração UPDATE
- Uma instrução DELETE sem uma cláusula WHERE
- Nenhuma das acima
Answer: C. TRUNCATE exclui todas as linhas em um comando.
38.Which of the following situations indicate that a DML operation has taken place?
- Quando novas linhas são adicionadas a uma tabela
- Quando duas consultas são combinadas
- Quando uma tabela é truncada
- Nenhuma das acima
Answer: A. Quando as linhas existentes em uma tabela são inseridas, modificadas ou removidas de uma tabela, isso é feito por meio de uma instrução DML.
39.Which of the following best defines a transaction?
- Uma transação consiste em instruções DDL no esquema do banco de dados
- Uma transação consiste em COMMIT ou ROLLBACK em uma sessão de banco de dados
- Uma transação consiste em uma coleção de instruções DML ou uma instrução DDL ou DCL ou TCL para formar uma unidade lógica de trabalho em uma sessão de banco de dados
- Uma transação consiste na coleção de instruções DML e DDL em diferentes sessões do banco de dados
Answer: C. Uma transação de banco de dados consiste em uma ou mais instruções DML para constituir uma mudança consistente nos dados, ou uma instrução DDL ou um comando DCL (GRANT ou REVOKE). Ele começa com a primeira instrução DML e termina com um comando DCL ou DDL ou TCL (COMMIT ou ROLLBACK). Observe que os comandos DDL e DCL possuem o recurso de confirmação automática.
40. What does a collection of DML statements that form a logical unit work known as?
- Propriedade ACID
- UNION
- UNION ALL
- Transaction
Answer: D.
41.What happens when a DML statement in an active transaction encounters an error on execution?
- As transações completas são revertidas
- Os DMLs na transação são mutuamente exclusivos e, portanto, podem continuar sua execução
- Os outros DMLs nas transações são interrompidos e aguardam até que o erro seja resolvido
- Nenhuma das acima
Answer: A. Se qualquer uma das instruções DML em uma transação ativa encontrar erro, toda a transação terminará em um rollback.
42.What is true about the keyword VALUES in INSERT statements?
- VALUES pode adicionar várias linhas de uma vez durante o INSERT
- VALUES pode adicionar apenas 100 linhas por vez durante o INSERT
- VALUES é obrigatório para ser usado se usarmos a palavra-chave INSERT
- VALUES adicionar apenas uma linha de cada vez
Answer: D. A palavra-chave VALUES é usada apenas quando os valores da coluna são especificados explicitamente na instrução INSERT.
Consider the following statement and the table structure. Answer the questions 43 to 45 that follow:
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. How many rows will be inserted by the above statement?
- 0
- 2
- 3
- 1
Answer: D. Quando a palavra-chave VALUES é usada, ela insere apenas uma linha por vez.
44. In which order the values will get inserted with respect to the above INSERT statement?
- Location_id, manager_id, department_name, department_id
- departamento_id, departamento_name, gerente_id, localização_id
- departamento_id, gerente_id, departamento_name, localização_id
- departamento_id, departamento_name, localização_id, gerente_id
Answer: B. Se as colunas forem mencionadas na cláusula INSERT, a palavra-chave VALUES deve conter valores na mesma ordem
45. Suppose the above given statement is modified as below:
INSERT INTO departments VALUES (100, 'Human Resources', 121, 1000);
Qual será o resultado dessa modificação? Suponha que a tabela DEPARTMENTS tenha quatro colunas, a saber, department_id, DEPARTMENT_NAME, MANAGER_ID e LOCATION_ID.
- Irá inserir valores em todas as colunas da tabela de departamentos assumindo que os valores da coluna são fornecidos na mesma sequência que a coluna da tabela
- Isso gerará um erro ORA porque os nomes das colunas não são mencionados explicitamente
- Ele lançará um erro ORA porque a cláusula VALUES é usada incorretamente no INSERT
- Nenhuma das acima
Answer: A. Incluir os nomes das colunas na instrução INSERT é opcional, desde que os valores estejam de acordo com a contagem e a seqüência das colunas na tabela.
46. What will be the outcome of the below INSERT statement? (Consider the table structure)
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");
- Irá inserir apenas o funcionário_id e a data de admissão do funcionário, deixando todas as outras colunas em branco
- Irá inserir apenas o funcionário_id
- Ele lançará um erro ORA
- Nenhuma das acima
Answer: C. A formatação literal de data contém erro. Deve ser colocado entre aspas simples e não aspas duplas.
47.What will be the outcome of the below INSERT statement? (Consider the given table structure)
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");
- Irá inserir apenas o funcionário_id e o nome de Bryan, deixando todas as outras colunas em branco
- Irá inserir apenas o primeiro nome
- Ele lançará um erro ORA
- Nenhuma das acima
Answer: C. A formatação do literal da string contém erro. Deve ser colocado entre aspas simples e não aspas duplas.
48. Suppose you need to insert the name O'Callaghan as the last name of the employees table. Which of the following queries will give you the required results? (Consider the given table structure)
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");
Answer: C.
49. What will be the outcome of the below INSERT statement? (Consider the given table structure)
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');
- Ele lançará um erro de valor numérico
- Ele irá inserir apenas o employee_id e o primeiro nome de Bryan, deixando todas as outras colunas como NULL
- Irá inserir apenas o funcionário_id
- Nenhuma das acima
Answer: A. Os valores numéricos não devem ser colocados entre aspas.
50. What will be the outcome of the below INSERT statement? (Consider the given table structure)
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);
- Ele lançará um erro ORA
- Será executado com sucesso, mas com valores errados pode ser inserido nas colunas
- Será executado com sucesso
- Nenhuma das acima
Answer: C. NULLs podem ser usados na cláusula VALUES para preencher os valores da coluna alternativamente.
51. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the table structure given)
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);
- Ele lançará um erro ORA
- Será executado com sucesso, mas com resultados errados
- Será executado com sucesso, mas com resultados corretos
- Nenhuma das acima
Answer: A. Valores NULL não podem ser inseridos em colunas não nulas.
52. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the given table structure)
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);
- Será executado com sucesso, mas com resultados errados
- Ele lançará um erro ORA
- Será executado com sucesso, mas com resultados corretos
- Nenhuma das acima
Answer: B. O tipo de dados do valor não corresponde ao tipo de dados da coluna na tabela.
53. Which of the following commands is used to save the changed data in a table permanently?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: B. O comando TCL COMMIT é usado para encerrar a transação ativa atual em uma sessão, tornando todas as alterações de dados pendentes permanentes nas tabelas.
54. Which of the following commands allows undoing the changed data?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: A. O comando TCL ROLLBACK é usado para encerrar a transação ativa atual em uma sessão, descartando todas as alterações de dados pendentes.
55. Which of the following commands allows enabling markers in an active transaction?
- ROLLBACK
- COMMIT
- SAVEPOINT
- Nenhuma das acima
Answer: C. SAVEPOINT marca um ponto em uma transação que divide a transação em seções menores.
56. Which of the following commands prevents other users from making changes to a table?
- ROLLBACK
- COMMIT
- LOCK TABLE
- SAVEPOINT
Answer: C.
57. What is true about an INSERT statement which tries to insert values into a virtual column? (Choose the most appropriate answer)
- Não pode inserir valores na coluna Virtual
- Pode inserir valores
- Ele lança um erro ORA
- Tudo acima
Answer: A. Uma coluna virtual é uma coluna que sempre é gerada automaticamente com base na expressão de derivação definida na especificação da coluna. Seu valor não pode ser inserido explicitamente pelo usuário.
58.Which of the following commands allows the user to insert multiple rows with a single statement?
- INSERT
- INSERIR TUDO
- UNION ALL
- Nenhuma das acima
Answer: B. As operações de inserção em massa podem ser realizadas usando INSERT ALL.
59. Which of the following is the syntax for inserting rows through a sub-query?
INSERT INTO tablename [{column_name,..}] subquery;
INSERT INTO tablename VALUES [{column_name,..}] subquery;
- Ambos a e B
- Nenhuma das acima
Answer: A.
Consider the following exhibit of the EMPLOYEES table and answer the questions 60 to 63 that follow:
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. Which of the following queries will execute successfully?
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'));
Answer: A.
61.Due to structural reorganization in the organization, you are asked to update department IDs for all the employees to NULL before the final decision is made public. Only those records should be updated which have the JOB_ID as NULL. Which of the following queries will work?
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);
Answer: C. Use o operador IS NULL para verificar o valor da coluna quanto à nulidade.
62.You need to add a basic employee data into EMPLOYEES table. The basic data contains the last name as 'Bond' and department ID as 300. Which of the following statements will give the correct results?
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);
- Nenhuma das acima
Answer: B, C. Subconsultas funcionam em instruções INSERT, desde que retornem um valor escalar do tipo de dados correspondente ou compatível com a coluna para a qual são usadas.
63. You fire the following query:
DELETE FROM EMPLOYEES;
Supondo que não haja transações ativas na tabela EMPLOYEES em nenhuma sessão, qual das afirmações a seguir é verdadeira?
- Ele remove todas as linhas e estrutura da tabela
- Ele remove todas as linhas que podem ser revertidas
- Ele remove todas as linhas permanentemente
- Nenhuma das acima
Answer: B. Por ser uma instrução DML, as alterações de dados devido à operação DELETE tornam-se permanentes somente depois que COMMIT é emitido na sessão.
64.Consider the structure of the COUNTRY table as shown:
SQL> desc countries
Name Null? Type
----------------------- -------- ----------------
COUNTRY_ID NOT NULL CHAR(2)
COUNTRY_NAME VARCHAR2(40)
REGION_ID NUMBER
Você emite as seguintes declarações em uma sessão.
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
/
O que acontecerá quando um comando ROLLBACK TO SAVEPOINT for emitido para a sessão do usuário?
- A reversão gera um erro
- Apenas instruções DELETE são revertidas
- Nenhuma instrução SQL é revertida
- Nenhuma das acima
Answer: A, C. Como existem dois pontos de salvamento - A e B, e o comando ROLLBACK especifica a marca do ponto de salvamento real, o Oracle gera um erro.
65.If a user issues a DML command and exits the SQL Developer abruptly without a COMMIT or ROLLBACK, what will be the outcome? (Assume the session is not auto commit)
- COMMIT automático
- ROLLBACK automático
- Pode ser um COMMIT ou um ROLLBACK para encerrar a transação
- Nenhuma das acima
Answer: B. Quando a transação é interrompida por uma falha do sistema, toda a transação é automaticamente revertida.
66. Which of the following commands / statements would end a transaction?
- COMMIT
- SELECT
- SAVEPOINT
- CREATE
Answer: A, D. Além dos comandos TCL, isto é, COMMIT ou ROLLBACK, os comandos DDL e DCL possuem recurso de auto-commit. A transação ativa será confirmada se a instrução DDL for executada na mesma sessão.
67.When does a transaction complete?
- Quando um ROLLBACK é executado
- Quando um COMMIT é executado
- Quando TRUNCATE é executado
- Tudo acima
Answer: D. A transação é concluída se um comando TCL, DCL ou DDL for executado na sessão.
68. Examine the given table structures and consider the following query:
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);
Qual será o resultado da consulta acima?
- As colunas da tabela EMPLOYEES e da tabela de departamentos não correspondem
- A cláusula WHERE é obrigatória para ser usada em uma subconsulta
- A palavra-chave VALUES não pode ser usada com a cláusula INSERT quando subconsultas são usadas
- Nenhuma das acima
Answer: C. Uso incorreto da palavra-chave VALUES. Deve ser usado apenas quando você tiver dados da coluna em mãos, que devem ser inseridos na tabela.
69.Examine the given table structure and consider the following query:
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);
Qual das alternativas a seguir é verdadeira em relação à consulta fornecida?
- Não seria executado porque não podemos usar duas tabelas em uma única instrução de atualização
- Não seria executado porque UPDATE não pode usar uma subconsulta
- Ele seria executado com as restrições da coluna especificada
- Não seria executado porque a subconsulta é usada na cláusula WHERE
Answer: C.
70.What happens when a transaction is committed?
- As alterações feitas durante a transação são salvas para uma determinada sessão do usuário
- As alterações feitas durante a transação são descartadas
- Se a transação for um DDL, o commit não funciona
- Nenhuma das acima
Answer: D. A confirmação de uma transação salva as alterações de dados pendentes permanentemente no banco de dados.
71. Which of the following reasons will the best one on the usage of string?
- Usando subconsultas
- Erros de sintaxe
- Permissões de acesso
- Violações de restrição
Answer: C, B, D. Referências a objetos / colunas não existentes, problemas de espaço podem ser outros motivos.
72. What happens when an INSERT statement tries to insert records in an old table?
- Todas as colunas receberão valores NULL
- Uma nova tabela com o mesmo nome seria criada automaticamente e os valores seriam inseridos
- INSERT não funciona e gera um erro ORA
- Nenhuma das acima
Answer: C.
73. A user named 'Jonathan Adams' is able to SELECT columns from the EMPLOYEES table but he is unable to insert records into EMPLOYEES. What can be the reason?
- Jonathan está conectado a um banco de dados que não suporta instruções INSERT
- A instrução INSERT não pode ser aplicada na tabela EMPLOYEES
- Jonathan tem acesso a SELECT, mas não a INSERT INTO da tabela EMPLOYEES
- Nenhuma das acima
Answer: C. Os usuários podem desfrutar de acesso à mesa com base em suas responsabilidades. Um pode ter apenas acesso de leitura em uma mesa, enquanto outro pode desfrutar de acesso de leitura e gravação.
74. Suppose 1 million rows are to be inserted into the AUDIT table. An INSERT transaction runs successfully for the first 1000 rows and an ORA error is thrown 'Constraint violated'. What will happen to the values inserted in the first 1000 rows?
- Eles permanecerão como estão
- Todos eles serão excluídos
- Todos eles serão revertidos
- Nenhuma das acima
Answer: C. Se qualquer uma das instruções DML durante a transação encontrar erro (s), a transação completa será revertida.
Examine the table structure and consider the following query and answer the questions 75, 76 and 77 that follow:
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. What will be the outcome of this statement?
- Ele irá inserir uma linha com department_id = 15 e todos os outros valores como NULL
- Será executado com sucesso, mas inserir 0 linhas na tabela
- Ele lançará um erro ORA como o não. de colunas e valores não correspondem
- Nenhuma das acima
Answer: C. A tabela DEPARTMENTS contém quatro colunas, mas a instrução INSERT fornece valor para duas colunas apenas sem mencionar as colunas também. Conseqüentemente, o erro ORA é lançado.
76. What is true about the above INSERT statement?
- Se as colunas não são mencionadas na instrução INSERT, os valores são inseridos posicionalmente nas colunas
- É obrigatório mencionar colunas após a instrução INSERT
- Ambos a e B
- Nenhuma das acima
Answer: A. Se as colunas não forem especificadas na instrução INSERT, o Oracle mapeia sequencial e posicionalmente cada valor para a coluna na tabela.
77. With respect to the statement given above, what will happen if the table is altered to add a new column?
- A declaração ainda funcionará
- A execução da instrução gerará um erro, pois haverá uma incompatibilidade no não. de colunas e valores
- Não haverá mudanças e a instrução será executada como antes
- Nenhuma das acima
Answer: B. Como as colunas não foram especificadas anteriormente, o problema ainda existirá. A incompatibilidade no mapeamento do valor da coluna geraria um erro ORA.
Examine the table structure given below and consider the following queries and answer the questions 78 and 79 that follow:
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)
Query 1:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, 'ADAMS','21-DEC-12');
Query 2:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
78. Which of the above two queries is better?
- Ambos são melhores
- Apenas a consulta 1 é melhor
- Apenas a consulta 2 é melhor
- Nenhuma das perguntas está correta
Answer: C. A consulta 2 é melhor porque insere o valor da data como uma data e não como uma string. Embora o Oracle execute a conversão implícita do literal de string especificado como uma data, mas não recomendado.
79. Which of the following queries is equivalent of the query 2 given above?
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 );
Answer: A, C, D. Operações / funções aritméticas podem ser usadas para inserir valores conforme mostrado acima.
80. You need to copy the data from one table to another table. Which of the following methods can be used?
- Você pode usar o comando COPY
- Você pode usar o comando INSERT
- Você pode usar o comando UPDATE
- Nenhuma das acima
Answer: B. As operações de caminho direto INSERT-AS-SELECT (IAS) é o método mais comumente usado para copiar dados de uma tabela para outra.
81.Which of the following statements will copy data from the JOB_HISTORY table to the JOB_HISTORY_ARCHIVE table? (Consider the table structure as given)
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;
- Nenhuma das acima
Answer: C. A opção 'C' mostra corretamente o uso do método IAS (INSERT-AS-SELECT).
Examine the given table structure. Consider the following query and answer the questions 82 and 83 that follow:
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. Interpret the output of the above INSERT statement.
- Lançou um erro
- Ele irá inserir os registros de todos os funcionários que foram admitidos um mês antes do sysdate.
- Ele irá inserir os registros de todos os funcionários que são Representantes de Vendas no departamento 10
- Nenhuma das acima
Answer: B, C. INSERT ALL pode fazer inserções condicionais nas tabelas de destino.
83. Which employees' data will be inserted in the department 20?
- Representante de vendas
- Accountants
- Ambos A ou B
- Nenhuma das acima
Answer: B. De acordo com a instrução INSERT ALL, os detalhes dos funcionários cujo job_id não é 'Representante de Vendas'.
84. What will be the outcome of the below query? (Consider the table structure as given)
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;
- Erro de sintaxe, pois as variáveis de substituição não podem ser usadas em instruções DML
- O usuário será solicitado a inserir a ID do funcionário e o salário, mas as variáveis de substituição não podem inserir dados na tabela
- O usuário será solicitado a inserir a ID do funcionário e o salário e o registro serão criados com sucesso na tabela EMPLOYEES
- Nenhuma das acima
Answer: C. As variáveis de substituição funcionam bem com as instruções DML.
85. Evaluate the following SQL statements that are executed in a user session in the specified order:
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';
Qual seria o resultado das afirmações acima?
- O comando CREATE SEQUENCE lançaria erro porque os valores mínimo e máximo para a sequência não foram especificados
- Todas as instruções seriam executadas com sucesso e a coluna employee_id conteria o valor 2 para o funcionário STEYN.
- O comando CREATE SEQUENCE não seria executado porque o valor inicial da sequência e o valor do incremento não foram especificados.
- Todas as instruções seriam executadas com êxito e a coluna employee_id teria o valor 20 para o funcionário STEYN porque o valor CACHE padrão é 20.
Answer: B.
86. What is the restriction on the sub-query used in the UPDATE statement?
- A subconsulta deve ser uma subconsulta de várias linhas
- A subconsulta deve ser uma subconsulta de uma única linha
- Não há restrição
- A subconsulta pode ser uma única linha ou uma subconsulta de várias linhas
Answer: B. A subconsulta não deve retornar várias linhas ao ser usada em uma instrução UPDATE
Examine the given table structure and consider the query given below and answer the questions 87 and 88 that follow:
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. What will be the outcome of the above query?
- Ele lança um erro ORA na execução
- O salário de todos os funcionários será atualizado com o mesmo salário do funcionário 7382
- O salário de todos os funcionários será atualizado para NULL
- Nenhuma das acima
Answer: B. Os resultados da consulta podem ser usados para atualizar os valores da coluna em uma tabela.
88. Suppose if the employee 7382 doesn't exist in the EMPLOYEES table. What will be the outcome of the query?
- Ele lança um erro ORA na execução porque os resultados da consulta não podem ser atualizados para as colunas
- O salário de todos os funcionários será atualizado para NULL
- A exceção ORA 'NO_DATA_FOUND' será gerada porque o funcionário 7382 não existe
- Nenhuma das acima
Answer: B. As instruções UPDATE não geram nenhuma exceção, exceto para erros sintáticos.
Examine the given table structure and consider the query given below and answer the questions 89 and 90 that follow:
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. What will be the outcome of the query?
- Executa com sucesso
- Todas as linhas da tabela têm o mesmo salário
- Ele pode lançar um erro ORA 'TOO_MANY_ROWS' durante a execução
- Nenhuma das acima
Answer: C. A subconsulta pode retornar mais de uma linha, causando um erro.
90. What changes in the above query will make sure there are no errors caused?
- Use uma função de linha única como MAX, MIN ou AVG para reduzir os resultados de várias linhas em um resultado escalar
- Adicionando uma restrição de chave primária na coluna SALARY
- Nenhuma mudança necessária
- Nenhuma das acima
Answer: A.
Examine the given table structure and consider the following query and answer the questions 91 and 92 that follow:
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. What will be the outcome of the query given above?
- Ele atualizará os salários de todos os funcionários igual ao salário do funcionário chamado Adam
- Ele atualizará os salários de todos os funcionários igual ao salário médio de todos com o sobrenome como 'Adam'
- Irá atualizar 0 linhas
- Irá atualizar apenas uma linha
Answer: B. As funções aritméticas MAX ou a MIN podem ser usadas com subconsultas para obter valores escalares e evitar erros.
92. Assume that the sub-query above is replaced with the following:
SELECT distinct salary from employees where last_name = 'Adam';
Qual será o resultado da pergunta principal fornecida acima?
- Ele será executado com sucesso, dando resultados incorretos
- Será executado com sucesso dando resultados corretos
- Ele lançará um erro ORA
- Nenhuma das acima
Answer: C. dá um erro porque como há muitos com o sobrenome como 'Adam', haverá muitos salários distintos.
Examine the given table structure and consider the following query and answer the questions 93 and 94 that follow:
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. What will the above statement do? (Choose the most appropriate answer)
- Irá atualizar todos os salários de todos os funcionários como 50000
- Ele irá atualizar todos os salários de todos os funcionários que estão no departamento 10
- Ele atualizará os salários de todos os funcionários que têm um dos IDs de trabalho semelhantes aos do departamento 10
- Nenhuma das acima
Answer: C.
94. What will happen if the WHERE clause given above is replaced with the following?
WHERE job_id = (select job_id from job_history where department_id = 10);
- Será executado com sucesso com resultados incorretos
- Será executado com sucesso com resultados corretos
- Ele lançará um erro ORA
- Nenhuma das acima
Answer: C. O sinal de igual aumentará o erro.
Examine the given table structure and consider the following statement. Answer the questions 95 to 97 that follow.
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. What will be the outcome of the query given above?
- Executa com sucesso, mas nenhuma linha é excluída
- Todos os funcionários cujo sobrenome começa com "A" serão excluídos
- Erro ORA porque a instrução DELETE não pode ter o predicado WHERE
- Todas as linhas da tabela de funcionários serão excluídas
Answer: A. A instrução DELETE pode ter o predicado da cláusula WHERE. Com base nas condições, os registros serão removidos da tabela.
96. Consider the following statement:
DELETE FROM employees where employee_id IS NULL and job_id = NULL;
COMMIT;
Supondo que haja uma restrição NOT NULL na coluna employee_id, qual será o resultado da consulta acima?
- Isso gerará um erro ORA por causa de predicados WHERE inválidos
- Ele será executado com sucesso e nenhuma linha será excluída
- Isso gerará um erro ORA porque vários predicados não podem funcionar em instruções DELETE
- Nenhuma das acima
Answer: B. Vários predicados podem ser aplicados às instruções DML UPDATE e DELETE.
97. Consider the following query:
DELETE FROM employees where department_id = &deptID;
COMMIT;
O que acontecerá quando a instrução acima for executada?
- Irá gerar um erro porque as instruções DML não podem usar variáveis de substituição
- Ele solicitará que o ID do departamento seja excluído do usuário e exclua o registro com o ID do departamento fornecido
- Ele solicitará o ID do departamento, mas a transação não pode ser confirmada
- Nenhuma das acima
Answer: B. Variáveis de substituição podem ser usadas com instruções DML.
98. All parts of a transaction should complete or none of them. Which property of ACID rule complies with the given statement?
- Atomicity
- Consistency
- Isolation
- Durability
Answer: A. ACID se refere às propriedades básicas de uma transação de banco de dados: Atomicidade, Consistência, Isolamento e Durabilidade. A atomicidade implica que toda a sequência de ações deve ser concluída ou abortada. A consistência implica que a transação leva os recursos de um estado consistente para outro. O isolamento implica que o efeito de uma transação não é visível para outras transações até que a transação seja confirmada. A durabilidade implica que as alterações feitas pela transação confirmada são permanentes e devem sobreviver à falha do sistema.
99. What does the principle of Durability in the ACID property state?
- Afirma que um banco de dados pode perder transações concluídas
- Afirma que uma transação não pode ser concluída
- Ele afirma que, uma vez que uma transação é concluída, deve ser impossível para o banco de dados perdê-la.
- Nenhuma das acima
Answer: C.
100. An incomplete transaction should be invisible to all the other users. Which of the properties of the ACID state this?
- Isolation
- Consistency
- Atomicity
- Durability
Answer: A. "I" significa isolamento.
101. What does the principle of consistency states?
- Afirma que os resultados de uma consulta devem ser consistentes com o estado do banco de dados no momento em que a consulta foi iniciada
- Afirma que uma transação incompleta deve ser invisível para todos os outros usuários
- Afirma que, uma vez que uma transação seja concluída, deve ser impossível para o banco de dados perdê-la
- Nenhuma das acima
Answer: A. o "C" na propriedade ACID significa Consistência
102. What among the following best describes a Transaction?
- INSERT para COMMIT / ROLLBACK
- ATUALIZAR para COMMIT / ROLLBACK
- DELETE para COMMIT / ROLLBACK
- INSERT / UPDATE / DELETE to COMMIT / ROLLBACK
Answer: D.
103. A user named "Jonathan" inserts data in the table EMPLOYEES. When will the other users be able to see the new data?
- Quando Jonathan fornece permissão de acesso aos usuários
- Quando Jonathan executa uma instrução ROLLBACK na sessão
- Quando Jonathan executa uma instrução COMMIT na mesma sessão
- Quando Jonathan abre uma nova sessão e emite um COMMIT
Answer: C. A transação ativa deve ser confirmada na mesma sessão.
104. What can be said about the nesting of transactions?
- São possíveis no máximo 2 níveis de aninhamento
- São possíveis no máximo 255 níveis de aninhamento
- O aninhamento de uma transação é impossível
- Apenas 1 nível de aninhamento é possível
Answer: C.
105. Which of the following reasons will terminate a transaction?
- Uma declaração DDL
- Saindo de um cliente
- Falha do sistema
- Tudo acima
Answer: D. DDL tem confirmação automática e encerrará a transação ativa em andamento.