Criando outras questões de objetos de esquema

1. Which database object among the following provides a layer of abstraction between the users and the data?

  1. Table
  2. Rows
  3. Views
  4. Synonyms

Answer: C, D. Visualizações e sinônimos não armazenam dados por si próprios. Uma visão é uma tabela temporária ou virtual usada para recuperar dados armazenados em tabelas de banco de dados subjacentes.

2. Which of the following data base objects can generate serial numbers?

  1. Synonyms
  2. Views
  3. Tables
  4. Sequences

Answer: D. Uma sequência pode ser criada para gerar uma série de inteiros. Os valores gerados por uma sequência podem ser armazenados em qualquer tabela. Uma sequência é criada com o comando CREATE SEQUENCE.

3. What is true about views?

  1. Eles são iguais às mesas
  2. Eles armazenam dados de uma ou várias tabelas
  3. Podemos executar SELECT e outros DMLs em visualizações simples
  4. As visualizações compartilham o mesmo namespace que as tabelas e, portanto, uma tabela e uma visualização não podem ter o mesmo nome

Answer: C, D. As operações DML não são permitidas em visualizações que incluem funções de grupo, uma cláusula GROUP BY, a pseudocoluna ROWNUM ou a palavra-chave DISTINCT.

4. Why are views useful? (Choose the most appropriate answer)

  1. Porque eles têm nomes mais curtos do que tabelas
  2. Para evitar que os usuários acessem as colunas das tabelas
  3. Para simplificar o SQL do usuário
  4. Tudo acima

Answer: B, C. Uma visão é uma tabela temporária ou virtual usada para recuperar dados armazenados em tabelas de banco de dados subjacentes. A consulta da visão deve ser executada cada vez que a visão é usada. Uma visualização pode ser usada para simplificar as consultas ou restringir o acesso a dados confidenciais.

5. In which of the below scenarios, DML operations on a view are not possible?

  1. A visualização contém a cláusula GROUP BY
  2. As tabelas base contêm colunas NOT NULL, mas não são selecionadas na consulta de visualização
  3. Ver consulta usa pseudocoluna ROWNUM
  4. Tudo acima

Answer: D. As operações DML não são permitidas em visualizações que incluem funções de grupo, uma cláusula GROUP BY, a pseudocoluna ROWNUM ou a palavra-chave DISTINCT.

6. Where can views get their data from?

  1. Tabelas do mesmo esquema
  2. Tabelas de diferentes esquemas
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C.

Consider the given table structure and the following statement and answer the questions 7 to 9 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)
CREATE VIEW emp_details AS
SELECT hire_date, job, salary, department_id FROM employees;

7. You issue the below query. How many columns will the user see as a result of the below query?

SELECT * FROM emp_details WHERE department_id= 100;
  1. 0
  2. 1
  3. 2
  4. 4

Answer: D. Como a definição da visão é baseada em quatro colunas da tabela EMPLOYEES, uma consulta em uma visão com todas as colunas mostrará apenas essas quatro colunas.

8. You need to get the department name in addition to the above 4 columns. Which of the following query will give you the required results?

  1. SELECT E.*, dept_name
    FROM departments D join emp_details E
    ON (E.department_id= D.dept_id);
  2. SELECT hire_date, job, salary, dept_name FROM emp_details
  3. Isso não é possível, uma visão não pode ser unida a outras tabelas
  4. Nenhuma das acima

Answer: A. Uma visão pode ser unida a outras tabelas ou visões em uma consulta SELECT.

9. You need to find the maximum salary along with the department name in addition to the 4 columns selected in the view. Which of the following query will give you the required results?

  1. Select dept_name, e.salary
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id);
  2. Select dept_name, max(salary)
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id)
    Group by dept_name;
  3. A visualização não pode aparecer em consultas usando funções de grupo
  4. Select dept_name, max(salary)
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id);

Answer: B.

10. What among the following is true about synonyms?

  1. Sinônimos PÚBLICO e PRIVADO podem ter o mesmo nome para a mesma tabela
  2. DROP SYNONYM removerá um sinônimo
  3. DROP PUBLIC SYNONYM pode ser executado apenas por um SYSDBA
  4. Nenhuma das acima

Answer: A, C. Um sinônimo pode ser um sinônimo privado, que os usuários usam para fazer referência a objetos de sua propriedade, ou um sinônimo público, que os usuários usam para acessar os objetos do banco de dados de outro usuário. Apenas SYSDBA ou um usuário com privilégios DBA pode criar um sinônimo público.

11. What is true about creating a view? (Choose the most appropriate answer)

  1. Uma visão só pode ser criada a partir de uma tabela
  2. Uma visão só pode ser criada a partir de uma tabela
  3. Uma visão pode ser criada a partir de uma ou mais tabelas ou visões
  4. Nenhuma das acima

Answer: C. Uma visão contendo expressões ou funções ou juntando várias tabelas é considerada uma visão complexa. Uma visão complexa pode ser usada para atualizar apenas uma tabela.

12. Which of the following privileges are required to create views in one's own schema?

  1. Privilégio de sistema CREATE TABLE
  2. Privilégio de sistema CREATE VIEW
  3. Privilégio de sistema ALTER VIEW
  4. Privilégio de sistema CREATE ANY VIEW

Answer: B. O privilégio CREATE VIEW é exigido por um usuário para criar uma visão em seu próprio esquema.

13. Which of the following privileges are required to create views in someone else's schema?

  1. CRIE QUALQUER VISÃO
  2. CRIAR VISUALIZAÇÃO
  3. Ambos a e B
  4. Nenhuma das acima

Answer: A. O privilégio CREATE ANY VIEW é exigido por um usuário para criar uma visão no esquema de outro usuário.

14.Which of the following are supported for an object view or relational view?

  1. LOBs
  2. Tipos de objeto
  3. Tipos de dados REF
  4. Tudo acima

Answer: D.

15. What among the following are different types of Views?

  1. Vistas simples
  2. Vistas complexas
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C. As visualizações simples e complexas são dois tipos de visualizações. As visualizações simples são baseadas em uma subconsulta que faz referência a apenas uma tabela e não inclui funções de grupo, expressões ou cláusulas GROUP BY. As visualizações complexas são baseadas em uma subconsulta que recupera ou deriva dados de uma ou mais tabelas e podem conter funções ou dados agrupados.

16. What is true about a simple view?

  1. As instruções DML podem ser emitidas na maioria das vezes em visualizações simples
  2. Existe apenas uma tabela de base de origem
  3. Nenhuma função de grupo é usada
  4. Tudo acima

Answer: D. As visualizações simples são baseadas em uma subconsulta que faz referência a apenas uma tabela e não inclui funções de grupo, expressões ou cláusulas GROUP BY.

17.What is true about a complex view?

  1. As instruções DML não podem ser emitidas em visões complexas
  2. Contém várias tabelas de base
  3. As agregações não podem ser realizadas
  4. Tudo acima

Answer: D. As visualizações complexas são baseadas em uma subconsulta que recupera ou deriva dados de uma ou mais tabelas e podem conter funções ou dados agrupados.

18.Which keyword combination should be used to implicitly drop a view (if it exists) and create a new view with the same name?

  1. CRIAR VISUALIZAÇÃO
  2. REPLACE VIEW
  3. CRIAR OU SUBSTITUIR VISUALIZAÇÃO
  4. Nenhuma das acima

Answer: C. A opção OR REPLACE notifica o Oracle 11g que pode já existir uma visão com o mesmo nome; em caso afirmativo, a versão anterior da visualização deve ser substituída pela definida no novo comando.

19.How is a view stored in the data dictionary?

  1. Como uma cláusula WHERE
  2. Como uma declaração CREATE
  3. Como uma declaração UPDATE
  4. Como uma instrução SELECT

Answer: D.

20.Which of the following can contain single-row functions?

  1. Visualizações embutidas
  2. Vistas Simples
  3. Vistas Complexas
  4. Vistas compostas

Answer: A, B. As funções de linha única podem ser usadas em visualizações Inline e Simples.

21.Which of the following can contain a group of data?

  1. Visualização composta
  2. Visualização Simples
  3. Vista Complexa
  4. Nenhuma das acima

Answer: C. A visão complexa pode usar a função de grupo na consulta.

22.What among the following is true about a View?

  1. Sub-consultas podem ser incorporadas em uma instrução CREATE VIEW
  2. Uma subconsulta usada na instrução CREATE VIEW deve ter uma sintaxe SELECT simples
  3. Você não pode usar uma cláusula WHERE em uma subconsulta quando ela é usada na instrução CREATE VIEW
  4. Nenhuma das acima

Answer: A. A definição da vista pode fazer uso de subconsultas.

23.Which of the following can create a view even if the base table(s) does not exist?

  1. NOFORCE
  2. FORCE
  3. OU SUBSTITUIR
  4. CRIAR VISUALIZAÇÃO

Answer: B. Se você incluir a palavra-chave FORCE na cláusula CREATE, o Oracle 11g criará a exibição apesar da ausência de quaisquer tabelas referenciadas. NOFORCE é o modo padrão para o comando CREATE VIEW, o que significa que todas as tabelas e colunas devem ser válidas, ou a visualização não será criada.

24.Which of the following commands ensures that no DML operations can be performed on a view?

  1. NOFORCE
  2. FORCE
  3. SOMENTE COM LEITURA
  4. OU SUBSTITUIR

Answer: C. A opção WITH READ ONLY impede a execução de qualquer operação DML na visualização. Esta opção é usada frequentemente quando é importante que os usuários possam apenas consultar os dados, não fazer nenhuma alteração neles.

25.What is true about the NOFORCE option in CREATE VIEW statement?

  1. Ele cria uma visualização mesmo se as tabelas base não existirem.
  2. Ele cria uma visualização apenas se as tabelas base existirem.
  3. É o padrão ao criar uma visualização.
  4. Nenhuma das acima

Answer: B, C. NOFORCE é o modo padrão para o comando CREATE VIEW, o que significa que todas as tabelas e colunas devem ser válidas, ou a visualização não será criada.

26.What is true about the OR REPLACE keyword?

  1. Os privilégios do objeto são perdidos quando uma visão é criada usando esta palavra-chave
  2. Não há necessidade de conceder novamente os privilégios de objeto anteriormente concedidos a ele
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: B. A opção OR REPLACE notifica o Oracle 11g que pode já existir uma visão com o mesmo nome; em caso afirmativo, a versão anterior da visualização deve ser substituída pela definida no novo comando.

27.What is true with respect to accessing the below view? (Assume the table structure 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)
CREATE VIEW salVU100
AS SELECT employee_id  ID_NUMBER, last_name NAME, salary*12 ANNUAL_SAL
FROM employees E 
WHERE department_id= 100;
  1. A visão deve ser acessada pelos nomes das colunas originais definidos na tabela base
  2. A visão deve ser acessada pelos aliases fornecidos na consulta de visão
  3. A visão é uma visão simples
  4. Nenhuma das acima

Answer: B, C. A visualização deve referir-se ao alias da coluna se a definição da visualização contiver alias para as colunas.

28.What is true with respect to accessing the below view? (Assume the table structure 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)
CREATE VIEW salVU100 (ID_NUMBER, NAME, ANNUAL_SAL)
AS SELECT employee_id , last_name, salary*12 
FROM employees E 
WHERE department_id= 100;
  1. Não é obrigatório que o número de aliases corresponda ao no. de expressões na subconsulta
  2. É obrigatório que o não. dos aliases listados devem corresponder ao não. de expressões selecionadas na sub-consulta
  3. É obrigatório fornecer aliases ao criar uma visualização
  4. Nenhuma das acima

Answer: B. Se o alias for especificado no cabeçalho da visão, o mesmo número de colunas deve ser selecionado na consulta SELECT.

29. Consider the following statement and 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)
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)
CREATE OR REPLACE VIEW empVU100
(ID_NUMBER, NAME, ANNUAL_SAL, DEPT_ID)
AS 
SELECT employee_id , first_name ||' '|| last_name, salary, department_id
FROM employees
WHERE department_id= 100;

O que é verdade sobre os aliases de coluna na consulta acima?

  1. Os aliases de coluna são listados em ordem aleatória como as colunas na subconsulta
  2. Os aliases de coluna são listados na mesma ordem que as colunas na subconsulta
  3. Aliases de coluna são obrigatórios ao usar a palavra-chave CREATE OR REPLACE
  4. Não podemos usar concatenação quando usamos o comando CREATE OR REPLACE

Answer: B.

Consider the following statement and answer the questions 30 to 34 that follow:

CREATE OR REPLACE VIEW dept_sum_vu (name, minsal, maxsal, avgsal) 
AS 
SELECT d.dept_name, MIN(e.salary), MAX(e.salary), AVG (e.salary)
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
GROUP BY d.dept_name;

30.What can be said about the statement given above?

  1. Nomes alternativos foram dados para a vista
  2. Fornecer nomes alternativos é obrigatório se alguma coluna for derivada de uma função ou expressão
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C. Especificar o nome do alias é uma boa prática para melhorar a legibilidade do código e das consultas de exibição.

31.What will happen if the above statement is modified as below?

CREATE OR REPLACE VIEW dept_sum_vu(name, maxsal, minsal, avgsal)
AS 
SELECT d.dept_name, MIN(e.salary), MAX(e.salary), AVG (e.salary)
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
GROUP BY d.dept_name;
  1. Não será diferente da declaração original
  2. Ele será executado com sucesso, dando os mesmos resultados, mas com alteração nos nomes de alias.
  3. Ele lançará um erro ORA
  4. Nenhuma das acima

Answer: B. A sequência do alias da coluna não importa muito, pois eles não carregam nenhum atributo comportamental.

32.Determine the output of the below DELETE statement.

DELETE FROM dept_sum_vu;
  1. Irá deletar a vista
  2. Irá remover todas as linhas da vista mas a estrutura da vista permanecerá a mesma
  3. Ele lançará um erro ORA
  4. Nenhuma das acima

Answer: C. A visão DEPT_SUM_VU é uma visão complexa. As operações DML não podem ser executadas em uma visão complexa.

33.Suppose you modify the query given above to the following:

CREATE OR REPLACE VIEW dept_sum_vu(name, sal) 
AS 
SELECT d.dept_name, e.salary 
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
Where rownum < 10;

Qual será o impacto da modificação?

  1. A visão pode ser atualizada para atualizar os valores nas tabelas EMPLOYEES e DEPARTMENTS
  2. Os dados nas tabelas EMPLOYEES e DEPARTMENTS não podem ser excluídos por meio da visualização
  3. Os dados nas tabelas EMPLOYEES e DEPARTMENTS podem ser inseridos através da view
  4. Uma coluna pode ser adicionada à tabela EMPLOYEES por meio da visualização

Answer: B. As operações DML não podem ser executadas em visualizações complexas. DEPT_SUM_VU é uma visão complexa, pois juntou várias tabelas. As operações DDL não são possíveis nas visualizações.

34.Suppose you select DISTINCT departments and employee salaries in the view query used in above question. What will be the outcome if you try to remove rows from the view dept_sum_vu?

  1. As linhas serão removidas sem qualquer erro
  2. Apenas as primeiras 10 linhas serão removidas
  3. As linhas não podem ser excluídas.
  4. Nenhuma das acima

Answer: C. A visão DEPT_SUM_VU ainda é uma visão complexa, pois usa a palavra-chave DISTINCT. Conseqüentemente, as operações DML não são possíveis nele.

35.When can the rows from a view be removed?

  1. A exclusão de linhas por meio de uma visualização não é possível
  2. Deve ser uma visão simples
  3. Deve ser uma visão complexa
  4. Nenhuma das acima

Answer: B. As operações DML são possíveis apenas em visualizações simples.

36.When can the data in a view not be modified?

  1. Quando há expressões de grupo
  2. Quando há uma cláusula GROUP BY
  3. Quando ROWNUM é usado na consulta de visualização
  4. Tudo acima

Answer: D. UPDATE não é possível em uma visão contendo funções de grupo, pseudocolunas ou palavra-chave DISTINCT.

37. The JOB_HISTORY table is owned by a user "Andy". Andy grants the SELECT privilege on the JOB_HISTORY table to another user "HR". Which statement would create a synonym EMP_JOBS so that "HR" can execute the following query successfully?(Assume the structure of tables 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)
SELECT * from EMP_JOBS;
  1. Problemas do Andy -
    CREATE SYNONYM EMP_JOBS for JOB_HISTORY
  2. Problemas de RH -
    CREATE SYNONYM EMP_JOBS for andy.JOB_HISTORY
  3. Problemas de RH -
    CREATE PUBLIC SYNONYM EMP_JOBS FOR andy.JOB_HISTORY
  4. Nenhuma das acima

Answer: B. Apenas SYSDBA ou um usuário com privilégios DBA pode criar sinônimos públicos.

38.Which keyword can assure that the DML operations performed on the view stay in the domain of the view?

  1. OU SUBSTITUIR
  2. CREATE
  3. COM OPÇÃO DE CHEQUE
  4. Nenhuma das acima

Answer: C. A restrição WITH CHECK OPTION garante que quaisquer operações DML executadas na exibição (como adicionar linhas ou alterar dados) não evitem que a exibição acesse a linha porque ela não atende mais à condição da cláusula WHERE.

Consider the following table structure and the given statement and answer the questions 39 and 40 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)
CREATE OR REPLACE VIEW empvu100
AS 
SELECT * FROM employees 
WHERE department_id= 100
WITH CHECK OPTION CONSTRAINT empvu100_ck;

39.What will the above statement do?

  1. Isso permitirá que os usuários façam INSERIR ou ATUALIZAR em todos os departamentos
  2. Isso permitirá que o usuário execute INSERT ou UPDATE qualquer linha que tenha departamento 100
  3. O usuário pode ATUALIZAR qualquer linha na tabela de funcionários
  4. O usuário pode INSERIR linhas sem qualquer restrição na tabela de funcionários

Answer: B. A restrição WITH CHECK OPTION garante que quaisquer operações DML executadas na exibição (como adicionar linhas ou alterar dados) não evitem que a exibição acesse a linha porque ela não atende mais à condição da cláusula WHERE. Um erro ORA será lançado se um INSERT ou UPDATE for executado em qualquer linha com um departamento_id diferente de 100.

40.Suppose you fire an UPDATE statement as shown below:

UPDATE empvu100
Set department_id = 200
Where employee_id  = 121;

Qual será o resultado desta declaração?

  1. Nenhuma linha é atualizada
  2. Um erro ORA é lançado
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C. Se a visualização com CHECK OPTION for atualizada e o valor do novo registro violar o escopo da visualização, a exceção ORA "ORA-01402: visualização com CHECK OPTION violação da cláusula de onde" será gerada.

41.What is true about the WITH CHECK CONSTRAINT?

  1. INSERTs ou UPDATEs realizados através da visão não podem criar linhas que a visão não pode selecionar
  2. Apenas INSERTs realizados através da visão não podem criar linhas que a visão não pode selecionar
  3. Apenas UPDATEs realizados através da visão não podem criar linhas que a visão não pode selecionar
  4. Nenhuma das acima

Answer: A.

42.How can you prevent DML operations on a View?

  1. Definindo uma restrição WITH CHECK OPTION
  2. Ao definir uma opção COM SOMENTE LEITURA
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: B. A opção WITH READ ONLY impede a execução de qualquer operação DML na visualização. Esta opção é usada frequentemente quando é importante que os usuários possam apenas consultar os dados, não fazer nenhuma alteração neles.

Consider the table structure and the given statement and answer the questions 43, 44 and 45 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)
CREATE OR REPLACE empvu100(employee_id , first_name, job)
AS 
SELECT employee_id , last_name, job
FROM employees
WHERE department_id = 100
WITH READ ONLY;

43.What is true about the above statement?

  1. A vista não será criada
  2. A operação INSERT nesta visualização lançará um erro ORA
  3. Ao ATUALIZAR as linhas para todos os funcionários do departamento 100, um erro ORA será lançado
  4. Nenhuma das acima

Answer: B, C. As operações DML não são permitidas na visualização criada com a opção READ ONLY.

44.How many rows can be deleted from the view as shown above?

  1. Todas as linhas da vista
  2. Todas as linhas de apenas o departamento 100
  3. Sem linhas
  4. Nenhuma das acima

Answer: C. As operações DML não são permitidas na visualização criada com a opção READ ONLY.

45.Which of the following statements will drop the view created as above?

  1. DROP READ ONLY VIEW empvu100;
  2. DROP NOFORCE empvu100;
  3. DROP VIEW empvu100;
  4. Nenhuma das acima

Answer: C. A visualização somente leitura pode ser eliminada usando o comando DROP VIEW.

46.What is true about dropping a View?

  1. As colunas na visão das tabelas base também são eliminadas
  2. A definição da visão é removida do banco de dados
  3. Eliminar uma visão não tem efeito na tabela base subjacente
  4. Nenhuma das acima

Answer: B, C.

47.Which of the following privileges should a user have to drop a view?

  1. CRIE QUALQUER VISÃO
  2. CRIAR VISUALIZAÇÃO
  3. DROP ANY VIEW
  4. DROP VIEW

Answer: C.

48.What is true about sequences?

  1. Gera inteiros
  2. É um objeto compartilhável
  3. Pode ser usado para criar um valor PRIMARY KEY
  4. Tudo acima

Answer: D. Uma sequência acelera a eficiência de acessar os valores da sequência quando armazenada em cache na memória

49.What is true about a sequence?

  1. É criado quando o banco de dados Oracle é instalado
  2. Ele é criado por um usuário que tem privilégio de sistema CREATE SEQUENCE
  3. Não pode ser compartilhado por mais de dois usuários
  4. Ele cai automaticamente quando o banco de dados é desconectado.

Answer: B, C. O privilégio de sistema CREATE SEQUENCE é exigido por um usuário para criar uma sequência em seu próprio esquema que não pode ser compartilhada por outros usuários.

50.What among the following options is true about Sequences?

  1. Os inteiros gerados através de uma sequência para uma tabela não podem ser usados ​​por outras tabelas
  2. Uma sequência só pode ser incrementada
  3. Uma sequência torna-se inválida se outra sequência gerar os mesmos inteiros
  4. Uma sequência pode ser usada por muitas tabelas e podem ser incrementadas ou diminuídas

Answer: D.

Consider the following statement and answer the questions 51 to 59 that follow:

CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 100
START WITH 101
MAXVALUE 9999
NOCACHE
NOCYCLE;

51.What will be the first value generated by this sequence?

  1. 1
  2. 100
  3. 101
  4. 9999

Answer: C. A cláusula START WITH estabelece o valor inicial para a sequência. O Oracle 11g começa cada sequência em 1, a menos que outro valor seja especificado na cláusula START WITH.

52.What can be the last value generated by this sequence?

  1. 0
  2. 100
  3. 101
  4. 9999

Answer: D. As cláusulas MINVALUE e MAXVALUE estabelecem um valor mínimo ou máximo para a sequência.

53.What will be the 2nd value generated by this sequence?

  1. 102
  2. 100
  3. 99
  4. 9999

Answer: A. A cláusula INCREMENT BY especifica o intervalo entre dois valores sequenciais. Se a sequência for incrementada por um valor positivo, os valores que a sequência gera estão em ordem crescente. No entanto, se um valor negativo for especificado, os valores gerados pela sequência estarão em ordem decrescente. Se a cláusula INCREMENT BY não for incluída quando a sequência for criada, a configuração padrão será usada, o que aumenta a sequência em um para cada inteiro gerado.

54.What will be the next value after the maximum integer 9999 is reached by this sequence?

  1. 101
  2. Sem valor
  3. Ele lançará um erro ORA
  4. Nenhuma das acima

Answer: B. As opções CYCLE e NOCYCLE determinam se o Oracle 11g deve começar a reemitir valores da sequência depois de atingir o valor mínimo ou máximo.

55.How many values will Oracle pre allocate in memory based on the sequence given above?

  1. 20
  2. 0
  3. 100
  4. 9999

Answer: A.

56.You execute the below query:

SELECT dept_depid_seq.NEXTVAL from dual;
  1. 200
  2. 101
  3. 9999
  4. 201

Answer: D. A pseudocoluna NEXTVAL gerará o próximo inteiro exclusivo da sequência.

57.You execute the below query:

SELECT dept_depid_seq.CURRVAL from dual;
  1. 200
  2. 101
  3. 9999
  4. 201

Answer: A. A pseudocoluna CURRVAL irá gerar o inteiro único atual já gerado pela sequência.

58.Suppose you need to change the start value of this sequence to 1000. Which of the following statements will help?

  1. ALTER dept_deptid_seq
    INCREMENT BY 100
    START WITH 1000
    MAXVALUE 9999
    NOCACHE
    NOCYCLE;
  2. A sequência deve ser descartada e recriada para iniciar a sequência de 1000.
  3. ALTER SEQUENCE dept_deptid_seq
    START WITH 101
  4. ALTER SEQUENCE dept_deptid_seq
    INCREMENT BY 100
    START WITH 101
    CYCLE;

Answer: B. O número inicial de uma sequência não pode ser modificado. A Oracle levanta a exceção "ORA-02283: não é possível alterar o número de sequência inicial".

59.Suppose that the above sequence is altered as below:

ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 100
START WITH 101
MAXVALUE 99
NOCACHE
NOCYCLE;

Qual será o resultado dessa alteração?

  1. Erro ORA
  2. O valor máximo para a sequência alterada será agora 99
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: A. O MAXVALUE não pode ser menor que o valor START WITH durante a alteração de uma sequência.

60.When can we use the CYCLE option in Sequences?

  1. Se quisermos limpar as linhas antigas mais rápido
  2. Se não quisermos usar a sequência para gerar valores PRIMARY KEY
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C. As opções CYCLE e NOCYCLE determinam se o Oracle 11g deve começar a reemitir valores da sequência depois de atingir o valor mínimo ou máximo. Se a opção CYCLE for especificada e o Oracle 11g atingir o valor máximo para uma seqüência ascendente ou o valor mínimo para uma seqüência descendente, a opção CYCLE inicia o ciclo de números novamente.

61.What is true about NEXTVAL pseudo column?

  1. Ele recria o CURRVAL de uma sequência
  2. Ele retorna o próximo valor de sequência disponível
  3. Ele pode retornar valores duplicados
  4. Ele gera os mesmos valores para diferentes usuários

Answer: B. A pseudocoluna NEXTVAL (NEXT VALUE) é usada para gerar o valor da sequência. Em outras palavras, ele chama o objeto de sequência e solicita o valor do próximo número na sequência. Depois que um valor é gerado, ele é armazenado na pseudocoluna CURRVAL (CURRENT VALUE) para que você possa referenciá-lo novamente.

62.What is true about CURRVAL pseudo column?

  1. CURRVAL pode ser usado antes de NEXTVAL em relação a uma sequência
  2. CURRVAL dá o valor atual de uma sequência
  3. CURRVAL pode fornecer valores duplicados
  4. Nenhuma das acima

Answer: B.

63.When can NEXTVAL and CURRVAL be used?

  1. Cláusula SET de uma instrução INSERT
  2. Cláusula VALUES de uma instrução UPDATE
  3. A lista SELECT de uma instrução SELECT que não faz parte de uma subconsulta
  4. A lista SELECT de uma instrução INSERT

Answer: C, D. A sequência pode ser usada na consulta SELECT, cursor PL / SQL ou em operações diretas IAS (INSERT-AS-SELECT).

64.When can NEXTVAL and CURRVAL not be used?

  1. A lista SELECT de uma visão
  2. A instrução SELECT com a palavra-chave DISTINCT
  3. Uma subconsulta na instrução SELECT, DELETE ou UPDATE
  4. Tudo acima

Answer: D.

Consider the given statement and answer the questions 65 and 66 that follow:

CREATE TABLE employees 
(employee_id  NUMBER(4) DEFAULT emp_empid_seq.CURRVAL,
 department_id NUMBER(4));

65.What will be the outcome of this statement? (Assume that emp_empid_seq is sequence used to generate employee ID values)

  1. A mesa será criada
  2. A coluna department_id terá os valores da sequência gerada para o ID do funcionário
  3. A coluna department_id terá um valor DEFAULT
  4. Erro ORA

Answer: D. Pseudocolunas não podem ser especificadas na cláusula DEFAULT de uma definição de coluna.

66.What will be the outcome of this statement if the CURRVAL is replaced with NEXTVAL? (Assume that emp_empid_seq is generated to generate employee ID values)

  1. A mesa será criada
  2. A coluna department_id terá os valores da sequência gerada para o ID do funcionário
  3. A coluna department_id terá um valor DEFAULT
  4. Erro ORA

Answer: D. Pseudocolunas não podem ser especificadas na cláusula DEFAULT de uma definição de coluna.

Examine the given exhibit giving the structures of the tables Departments and Location. Answer the questions 67 and 68 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)
SQL> desc locations
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 LOCATION_ID		 NOT NULL NUMBER(4)
 STREET_ADDRESS 		  VARCHAR2(40)
 POSTAL_CODE			  VARCHAR2(12)
 CITY			 NOT NULL VARCHAR2(30)
 STATE_PROVINCE 		  VARCHAR2(25)
 COUNTRY_ID			  CHAR(2)

67.You need to insert a new department named "HR" in the location ID 1000. Which of the following statements will give you the required results?

  1. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.NEXTVAL, 'HR', 1000);
  2. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.NEXTVAL, "HR", 1000);
  3. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.CURRVAL, 'HR', 1000);
  4. Nenhuma das acima

Answer: A.A opção C causará uma 'Violação de restrição única', pois tentará inserir o valor atual do id do departamento que já existe na tabela DEPARTMENTS.

68.Suppose you execute the below query before inserting the values as shown in the option A in question 67. What will be the outcome of the query?

SELECT dept_deptid_seq.CURRVAL FROM DUAL;
  1. Erro ORA
  2. Ele dará o valor atual da sequência
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: B. Quando um usuário efetua login no Oracle 11g, nenhum valor é inicialmente armazenado na pseudocoluna CURRVAL; o valor atual é NULL. Depois que uma chamada NEXTVAL foi emitida para gerar um valor de sequência, CURRVAL armazena esse valor até que o próximo valor seja gerado. CURRVAL contém apenas o último valor gerado.

69.How can gaps occur in the values of a sequence?

  1. Quando ocorre uma reversão
  2. O sistema trava
  3. Uma sequência é usada em outra tabela
  4. Tudo acima

Answer: D.

70.What is true about caching sequence values?

  1. Valores de sequência de cache não são possíveis no Oracle
  2. O cache é preenchido quando o limite máximo da sequência é atingido
  3. O cache começa pela primeira vez quando a sequência é referida
  4. Nenhuma das acima

Answer: C. Se a opção NOCACHE for especificada quando a sequência for criada, cada número será gerado quando a solicitação for recebida. No entanto, se as transações de uma organização exigirem grandes quantidades de números sequenciais ao longo de uma sessão, a opção CACHE pode ser usada para que o Oracle 11g gere um conjunto de valores antecipadamente e os armazene na memória do servidor. Então, quando um usuário solicita um valor de sequência, o próximo valor disponível é atribuído - sem que o Oracle 11g tenha que gerar o número. Por outro lado, se a opção CACHE não for especificada, o Oracle 11g assume uma opção padrão de CACHE 20 e armazena 20 valores sequenciais na memória automaticamente para os usuários acessarem.

71.The following query for the sequence EMP_EMPID_SEQ is executed after a transaction which inserted five employee details.

Select emp_empID_seq.CURRVAL from dual;

Suponha que a transação do funcionário seja revertida. Qual será o resultado da consulta acima?

  1. O valor da sequência no início da transação do funcionário
  2. NULL
  3. O valor da sequência no final da transação do funcionário
  4. Nenhuma das acima

Answer: C. Os valores de sequência não são afetados por commit ou rollback. Se uma transação que usa gerador de sequência for revertida, os valores da sequência serão perdidos e não poderão ser recuperados.

72.Which of the following privileges are required to modify a sequence?

  1. Privilégio CREATE OR REPLACE
  2. Privilégio ALTER para a sequência
  3. Privilégio ALTER TABLE
  4. Privilégio UPDATE

Answer: B. Para alterar uma sequência, a sequência deve estar em seu próprio esquema, ou você deve ter o privilégio de objeto ALTER na sequência, ou deve ter o privilégio de sistema ALTER ANY SEQUENCE.

73.What happens when a sequence is altered?

  1. Os inteiros existentes já gerados pela sequência também são alterados
  2. Apenas os futuros inteiros são afetados
  3. A sequência para de armazenar em cache os inteiros futuros
  4. Nenhuma das acima

Answer: B. Ao usar o comando ALTER SEQUENCE, quaisquer alterações são aplicadas apenas aos valores gerados após as modificações serem feitas.

74.Suppose you need to drop a sequence. Which of the following commands will help?

  1. ALTER SEQUENCE sequence_name START WITH NULL;
  2. DROP sequence_name;
  3. DROP SEQUENCE sequence_name;
  4. Nenhuma das acima

Answer: C. O comando DROP é usado para descartar uma sequência

75.Which of the following privileges will allow you to drop a sequence? (Choose the most appropriate answer)

  1. ALTER SEQUENCE
  2. ALTERAR A TABELA
  3. DROP SEQUENCE
  4. SOLTAR QUALQUER SEQUÊNCIA

Answer: D. Para eliminar uma sequência, ela deve estar em seu próprio esquema ou você deve ter o privilégio de sistema DROP ANY SEQUENCE.

76.What is true about Indexes?

  1. Os índices são criados apenas manualmente
  2. Os índices são criados apenas automaticamente
  3. Ambos a e B
  4. Nenhuma das acima

Answer: D. Os índices podem ser criados manual ou automaticamente seguindo certas ações, como a criação de uma chave primária ou restrição exclusiva.

77.Which of the following is used by an index to locate the data quickly?

  1. ROWNUM
  2. ROWID
  3. Sequence
  4. Nenhuma das acima

Answer: B. Um índice Oracle 11g é um objeto de banco de dados que armazena um mapa de valores de coluna e os ROWIDs de linhas de tabela correspondentes. Um ROWID é o endereço físico de uma linha da tabela.

78.What happens when there is no index on a column of a table?

  1. Os dados são localizados rapidamente
  2. Há uma verificação completa da tabela
  3. A tabela não pode ser criada
  4. A tabela não pode ser alterada

Answer: B.

79.What among the following is true about an Index?

  1. O índice reduz a E / S do disco
  2. O índice localiza os dados rapidamente
  3. Os índices são lógica e fisicamente independentes da tabela que indexam
  4. Tudo acima

Answer: D.

80.What will happen if an index is dropped?

  1. A coluna na qual o índice é criado também é descartada
  2. A tabela na qual o índice é criado também é descartada
  3. Os índices, uma vez criados, não podem ser descartados
  4. Como os índices são objetos logicamente e fisicamente independentes, eles podem ser descartados sem afetar outros objetos

Answer: D. Os índices são os objetos fisicamente armazenados no esquema. Eliminar um índice não afeta outros objetos.

81.What happens when a table is dropped?

  1. Os índices ainda permanecem como são objetos logicamente e independentes
  2. Os índices da tabela também são eliminados
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: B.

82.How are indexes created automatically?

  1. Quando criamos uma mesa
  2. Quando uma mesa é alterada
  3. Quando uma PRIMARY KEY é definida em uma coluna (ou grupo de colunas) de uma tabela
  4. Quando uma restrição UNIQUE KEY é definida na definição da tabela

Answer: C, D.

83.For which of the following objects, a synonym can be created?

  1. Tabelas e visualizações apenas
  2. Tabela, vista e sequência
  3. Procedimento armazenado, função ou pacote
  4. Synonym

Answer: B, C, D. O objeto de esquema para o qual você está criando o sinônimo pode ser dos seguintes tipos: Tabela ou tabela de objeto, Visualização ou visualização de objeto, Sequência, Procedimento armazenado, função ou pacote, Visualização materializada, objeto de esquema de classe Java, Tipo de objeto definido pelo usuário , Sinônimo

84. Which of the following can you use to reference a table owned by another user?

  1. INDEX
  2. TABLE
  3. SYNONYMS
  4. SEQUENCES

Answer: C. Um sinônimo é um nome alternativo ou alias para um objeto de banco de dados.

85.What among of the following is an example of a Non-unique index?

  1. CHAVE PRIMÁRIA
  2. CHAVE ÚNICA
  3. CHAVE ESTRANGEIRA
  4. Nenhuma das acima

Answer: C.

86.Which of the following is the main and basic type of an Index?

  1. Bitmap
  2. B-tree
  3. Unique
  4. Non-unique

Answer: A, B. O índice B-tree (balanceado) é o índice mais comum usado no Oracle. Você pode criar esse tipo de índice com uma instrução CREATE INDEX básica. Um índice de bitmap varia em estrutura e uso de um índice B-tree. Este índice é útil para melhorar as consultas em colunas que têm baixa seletividade (baixa cardinalidade ou um pequeno número de valores distintos).

87.You need to speed up a query by creating an index on the FIRST_NAME of the EMPLOYEES table. Which of the following statements can you use? (Assume the table structure as shown)

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. CREATE INDEX emp_first_name_idx 
    ON employees (first_name);
  2. CREATE INDEX emp_first_name_idx 
    ON employees first_name;
  3. ALTER INDEX emp_first_name_idx 
    ON employees (first_name);
  4. Nenhuma das acima

Answer: A.

88.What does the UNIQUE keyword do while creating indexes?

  1. Ele especifica que o valor da (s) coluna (s) nas quais o índice é criado deve ser único
  2. Você não pode usar a palavra-chave UNIQUE ao criar índices
  3. Ele especifica que o índice que é criado pode ser usado apenas por uma tabela
  4. Nenhuma das acima

Answer: A. Um índice exclusivo normalmente é criado automaticamente quando uma restrição PRIMARY KEY ou UNIQUE é definida em uma coluna. Índices exclusivos também podem ser criados explicitamente incluindo a palavra-chave UNIQUE na instrução CREATE INDEX.

89.What will happen when you specify the keyword BITMAP while creating an Index?

  1. Ele cria o índice com um bitmap para cada chave distinta.
  2. Não cria o índice em cada linha separadamente
  3. Ambos a e B
  4. Nenhuma das acima

Answer: C.

90.You have queries written which are expected to retrieve less than 2% to 4% of rows. Which of the following can be applied on the relevant tables to achieve the query performance of such query? (Choose the best answer)

  1. Indexes
  2. Operador de conjunto UNION
  3. Operador de configuração MINUS
  4. Nenhuma das acima

Answer: A. Os índices são a melhor maneira de obter desempenho de consulta. Operações pesadas de E / S podem ser reduzidas e simplificadas usando varreduras de índice.

91.In what scenarios can Indexes be useful?

  1. Se a (s) mesa (s) forem muito grandes
  2. Se uma coluna tiver menos valores
  3. Se uma coluna contém um grande número de valores NULL
  4. Se uma coluna tiver uma ampla gama de valores

Answer: C, D.

92.The table EMPLOYEES is updated frequently. When can Indexes be created on this table? (Choose the most appropriate answer)

  1. Os índices não devem ser criados se uma tabela for atualizada com frequência
  2. Os índices devem ser criados no momento em que a tabela é criada
  3. Nem de A nem B
  4. Nenhuma das acima

Answer: A. As operações DML frequentes ou em massa em uma tabela com um índice adicionam uma sobrecarga de manutenção do segmento do índice, o que pode afetar o desempenho da operação DML.

93.Consider the following query and answer the following query. Assume that the EMPLOYEE_ID , DEPARTMENT_ID and FIRST_NAME columns of EMPLOYEES table are indexed. (Assume 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)
SELECT first_name, last_name 
FROM employees 
WHERE comm IS NULL;

Os índices existentes ajudarão neste caso se houver 1 milhão de linhas na tabela EMPLOYEES?

  1. Yes
  2. No
  3. Pode ajudar
  4. Nenhuma das acima

Answer: B. Os índices não são usados ​​quando os predicados da consulta não contêm as colunas nas quais o índice é criado.

94.Which of the following will remove an Index?

  1. DELETE FROM index_name;
  2. DROP INDEX index_name;
  3. DROP INDEX;
  4. Nenhuma das acima

Answer: B. Você deve ter o privilégio DROP ANY INDEX para eliminar um índice.