Preguntas sobre la creación de otros 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. Las vistas y los sinónimos no almacenan datos por sí mismos. Una vista es una tabla temporal o virtual que se utiliza para recuperar datos almacenados en tablas de bases de datos subyacentes.

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

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

Answer: D. Se puede crear una secuencia para generar una serie de números enteros. Los valores generados por una secuencia se pueden almacenar en cualquier tabla. Se crea una secuencia con el comando CREATE SEQUENCE.

3. What is true about views?

  1. Son iguales a las tablas
  2. Almacenan datos de una o varias tablas
  3. Podemos ejecutar SELECT y otros DML en vistas simples
  4. Las vistas comparten el mismo espacio de nombres que las tablas y, por lo tanto, una tabla y una vista no pueden tener el mismo nombre

Answer: C, D. No se permiten operaciones DML en vistas que incluyen funciones de grupo, una cláusula GROUP BY, la pseudocolumna ROWNUM o la palabra clave DISTINCT.

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

  1. Porque tienen nombres más cortos que las tablas
  2. Para evitar que los usuarios accedan a las columnas de las tablas
  3. Para simplificar el SQL del usuario
  4. Todas las anteriores

Answer: B, C. Una vista es una tabla temporal o virtual que se utiliza para recuperar datos almacenados en tablas de bases de datos subyacentes. La consulta de vista debe ejecutarse cada vez que se usa la vista. Se puede utilizar una vista para simplificar consultas o restringir el acceso a datos confidenciales.

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

  1. La vista contiene la cláusula GROUP BY
  2. Las tablas base contienen columnas NOT NULL pero no están seleccionadas en la consulta de vista
  3. La consulta de vista usa la pseudocolumna ROWNUM
  4. Todas las anteriores

Answer: D. No se permiten operaciones DML en vistas que incluyen funciones de grupo, una cláusula GROUP BY, la pseudocolumna ROWNUM o la palabra clave DISTINCT.

6. Where can views get their data from?

  1. Tablas del mismo esquema
  2. Tablas de diferentes esquemas
  3. Tanto a como B
  4. Ninguna de las anteriores

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. Dado que la definición de la vista se basa en cuatro columnas de la tabla EMPLOYEES, una consulta en una vista con todas las columnas mostrará solo esas cuatro columnas.

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. Esto no es posible, una vista no se puede unir a otras tablas.
  4. Ninguna de las anteriores

Answer: A. Una vista se puede unir con otras tablas o vistas en una 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. La vista no puede aparecer en consultas usando funciones 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. Los sinónimos PÚBLICO y PRIVADO pueden tener el mismo nombre para la misma tabla
  2. DROP SYNONYM eliminará un sinónimo
  3. DROP PUBLIC SYNONYM solo puede ser ejecutado por un SYSDBA
  4. Ninguna de las anteriores

Answer: A, C. Un sinónimo puede ser un sinónimo privado, que los usuarios utilizan para hacer referencia a los objetos que poseen, o un sinónimo público, que los usuarios utilizan para acceder a los objetos de la base de datos de otro usuario. Solo SYSDBA o un usuario con privilegios de DBA pueden crear un sinónimo público.

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

  1. Una vista solo se puede crear a partir de una tabla
  2. Una vista solo se puede crear a partir de una tabla
  3. Se puede crear una vista a partir de una o varias tablas o vistas
  4. Ninguna de las anteriores

Answer: C. Una vista que contiene expresiones o funciones o que une varias tablas se considera una vista compleja. Se puede utilizar una vista compleja para actualizar solo una tabla.

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

  1. Privilegio del sistema CREATE TABLE
  2. Privilegio del sistema CREATE VIEW
  3. Privilegio del sistema ALTER VIEW
  4. CREAR CUALQUIER privilegio del sistema VIEW

Answer: B. El usuario necesita el privilegio CREATE VIEW para crear una vista en su propio esquema.

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

  1. CREA CUALQUIER VISTA
  2. CREAR VISTA
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: A. Un usuario requiere el privilegio CREAR CUALQUIER VISTA para crear una vista en el esquema de otro usuario.

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

  1. LOBs
  2. Tipos de objetos
  3. Tipos de datos REF
  4. Todas las anteriores

Answer: D.

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

  1. Vistas simples
  2. Vistas complejas
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: C. Las vistas simples y complejas son dos tipos de vistas. Las vistas simples se basan en una subconsulta que hace referencia solo a una tabla y no incluye funciones de grupo, expresiones o cláusulas GROUP BY. Las vistas complejas se basan en una subconsulta que recupera o deriva datos de una o más tablas y puede contener funciones o datos agrupados.

16. What is true about a simple view?

  1. Las declaraciones DML se pueden emitir la mayoría de las veces contra vistas simples
  2. Solo hay una tabla base de origen
  3. No se utilizan funciones de grupo
  4. Todas las anteriores

Answer: D. Las vistas simples se basan en una subconsulta que hace referencia solo a una tabla y no incluye funciones de grupo, expresiones o cláusulas GROUP BY.

17.What is true about a complex view?

  1. Las declaraciones DML no se pueden emitir contra vistas complejas
  2. Contiene varias tablas base
  3. No se pueden realizar agregaciones
  4. Todas las anteriores

Answer: D. Las vistas complejas se basan en una subconsulta que recupera o deriva datos de una o más tablas y puede contener funciones o datos 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. CREAR VISTA
  2. REEMPLAZAR VISTA
  3. CREAR O REEMPLAZAR VISTA
  4. Ninguna de las anteriores

Answer: C. La opción OR REPLACE notifica a Oracle 11g que es posible que ya exista una vista con el mismo nombre; si lo hace, la versión anterior de la vista debe reemplazarse por la definida en el nuevo comando.

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

  1. Como cláusula WHERE
  2. Como declaración CREATE
  3. Como declaración UPDATE
  4. Como declaración SELECT

Answer: D.

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

  1. Vistas en línea
  2. Vistas simples
  3. Vistas complejas
  4. Vistas compuestas

Answer: A, B. Las funciones de una sola fila se pueden utilizar tanto en vistas en línea como simples.

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

  1. Vista compuesta
  2. Vista simple
  3. Vista compleja
  4. Ninguna de las anteriores

Answer: C. La vista compleja puede usar la función de grupo en la consulta.

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

  1. Las subconsultas se pueden incrustar en una declaración CREATE VIEW
  2. Una subconsulta utilizada en la declaración CREATE VIEW debe tener una sintaxis SELECT simple
  3. No puede usar una cláusula WHERE en una subconsulta cuando se usa en la declaración CREATE VIEW
  4. Ninguna de las anteriores

Answer: A. La definición de vista puede hacer 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. O REEMPLAZAR
  4. CREAR VISTA

Answer: B. Si incluye la palabra clave FORCE en la cláusula CREATE, Oracle 11g crea la vista a pesar de la ausencia de tablas referenciadas. NOFORCE es el modo predeterminado para el comando CREATE VIEW, lo que significa que todas las tablas y columnas deben ser válidas o la vista no se crea.

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

  1. NOFORCE
  2. FORCE
  3. CON LEER SOLAMENTE
  4. O REEMPLAZAR

Answer: C. La opción WITH READ ONLY impide realizar operaciones DML en la vista. Esta opción se usa a menudo cuando es importante que los usuarios solo puedan consultar datos, no realizar cambios en ellos.

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

  1. Crea una vista incluso si las tablas base no existen.
  2. Crea una vista solo si existen las tablas base.
  3. Es el valor predeterminado al crear una vista.
  4. Ninguna de las anteriores

Answer: B, C. NOFORCE es el modo predeterminado para el comando CREATE VIEW, lo que significa que todas las tablas y columnas deben ser válidas o la vista no se crea.

26.What is true about the OR REPLACE keyword?

  1. Los privilegios de objetos se pierden cuando se crea una vista con esta palabra clave
  2. No es necesario volver a otorgar los privilegios de objeto otorgados previamente
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: B. La opción OR REPLACE notifica a Oracle 11g que es posible que ya exista una vista con el mismo nombre; si lo hace, la versión anterior de la vista debe reemplazarse por la definida en el nuevo 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. Se debe acceder a la vista mediante los nombres de columna originales definidos en la tabla base
  2. Se debe acceder a la vista mediante los alias proporcionados en la consulta de vista
  3. Ver es una vista simple
  4. Ninguna de las anteriores

Answer: B, C. La vista debe hacer referencia al alias de la columna si la definición de la vista contiene alias para las columnas.

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. No es obligatorio que el número de alias coincida con el no. de expresiones en la subconsulta
  2. Es obligatorio que el no. de los alias enumerados deben coincidir con el no. de expresiones seleccionadas en la subconsulta
  3. Es obligatorio dar alias al crear una vista
  4. Ninguna de las anteriores

Answer: B. Si el alias se especifica en el encabezado de la vista, se debe seleccionar el mismo número de columnas en la 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;

¿Qué es cierto acerca de los alias de columna como en la consulta anterior?

  1. Los alias de columna se enumeran en un orden aleatorio como las columnas en la subconsulta
  2. Los alias de columna se enumeran en el mismo orden que las columnas de la subconsulta
  3. Los alias de columna son obligatorios al utilizar la palabra clave CREATE OR REPLACE
  4. No podemos usar la concatenación cuando usamos CREAR O REEMPLAZAR

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. Se han dado nombres alternativos para la vista.
  2. Dar nombres alternativos es obligatorio si alguna columna se deriva de una función o expresión
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: C. La especificación del nombre de alias es una buena práctica para mejorar la legibilidad del código y las consultas de vista.

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. No será diferente a la declaración original.
  2. Se ejecutará con éxito dando los mismos resultados pero cambiando los nombres de alias.
  3. Lanzará un error ORA
  4. Ninguna de las anteriores

Answer: B. La secuencia del alias de la columna no importa mucho ya que no tienen ningún atributo de comportamiento.

32.Determine the output of the below DELETE statement.

DELETE FROM dept_sum_vu;
  1. Eliminará la vista
  2. Eliminará todas las filas de la vista, pero la estructura de la vista seguirá siendo la misma
  3. Lanzará un error ORA
  4. Ninguna de las anteriores

Answer: C. La vista DEPT_SUM_VU es una vista compleja. Las operaciones DML no se pueden realizar en una vista compleja.

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;

¿Cuál será el impacto de la modificación?

  1. La vista se puede actualizar para actualizar los valores en las tablas EMPLOYEES y DEPARTMENTS
  2. Los datos de las tablas EMPLOYEES y DEPARTMENTS no se pueden eliminar a través de la vista
  3. Los datos de las tablas EMPLOYEES y DEPARTMENTS se pueden insertar a través de la vista
  4. Se puede agregar una columna a la tabla EMPLOYEES a través de la vista

Answer: B. Las operaciones DML no se pueden realizar en vistas complejas. DEPT_SUM_VU es una vista compleja ya que se unió a varias tablas. Las operaciones DDL no son posibles en las vistas.

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. Las filas se eliminarán sin ningún error.
  2. Solo se eliminarán las primeras 10 filas
  3. Las filas no se pueden eliminar.
  4. Ninguna de las anteriores

Answer: C. La vista DEPT_SUM_VU sigue siendo una vista compleja ya que utiliza la palabra clave DISTINCT. Por lo tanto, las operaciones DML no son posibles en él.

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

  1. No es posible eliminar filas a través de una vista
  2. Debería ser una vista simple
  3. Debería ser una vista compleja
  4. Ninguna de las anteriores

Answer: B. Las operaciones DML solo son posibles en vistas simples.

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

  1. Cuando hay expresiones grupales
  2. Cuando hay una cláusula GROUP BY
  3. Cuando se usa ROWNUM en la consulta de vista
  4. Todas las anteriores

Answer: D. UPDATE no es posible en una vista que contenga funciones de grupo, pseudocolumnas o palabra clave 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. Andy emite -
    CREATE SYNONYM EMP_JOBS for JOB_HISTORY
  2. Problemas de recursos humanos -
    CREATE SYNONYM EMP_JOBS for andy.JOB_HISTORY
  3. Problemas de recursos humanos -
    CREATE PUBLIC SYNONYM EMP_JOBS FOR andy.JOB_HISTORY
  4. Ninguna de las anteriores

Answer: B. Solo SYSDBA o un usuario con privilegios de DBA pueden crear 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. O REEMPLAZAR
  2. CREATE
  3. CON OPCIÓN DE VERIFICACIÓN
  4. Ninguna de las anteriores

Answer: C. La restricción WITH CHECK OPTION asegura que cualquier operación DML realizada en la vista (como agregar filas o cambiar datos) no impida que la vista acceda a la fila porque ya no cumple la condición en la 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. Permitirá a los usuarios realizar INSERTAR o ACTUALIZAR en todos los departamentos
  2. Permitirá al usuario realizar INSERTAR o ACTUALIZAR cualquier fila que tenga el departamento 100
  3. El usuario puede ACTUALIZAR cualquier fila en la tabla de empleados
  4. El usuario puede INSERTAR filas sin ninguna restricción en la tabla de empleados

Answer: B. La restricción WITH CHECK OPTION asegura que cualquier operación DML realizada en la vista (como agregar filas o cambiar datos) no impida que la vista acceda a la fila porque ya no cumple la condición en la cláusula WHERE. Se generará un error ORA si se ejecuta INSERT o UPDATE en cualquier fila con un department_id distinto de 100.

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

UPDATE empvu100
Set department_id = 200
Where employee_id  = 121;

¿Cuál será el resultado de esta declaración?

  1. No se actualizan filas
  2. Se produce un error de ORA
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: C. Si la vista con CHECK OPTION se actualiza y el valor del nuevo registro viola el alcance de la vista, se genera la excepción de ORA "ORA-01402: view WITH CHECK OPTION donde-infracción de cláusula".

41.What is true about the WITH CHECK CONSTRAINT?

  1. Las INSERTAS o ACTUALIZACIONES realizadas a través de la vista no pueden crear filas que la vista no puede seleccionar
  2. Solo las INSERTAS realizadas a través de la vista no pueden crear filas que la vista no puede seleccionar
  3. Solo las ACTUALIZACIONES realizadas a través de la vista no pueden crear filas que la vista no puede seleccionar
  4. Ninguna de las anteriores

Answer: A.

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

  1. Definiendo una restricción WITH CHECK OPTION
  2. Definiendo una opción WITH READ ONLY
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: B. La opción WITH READ ONLY impide realizar operaciones DML en la vista. Esta opción se usa a menudo cuando es importante que los usuarios solo puedan consultar datos, no realizar cambios en ellos.

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. La vista no se creará
  2. INSERTAR la operación en esta vista y arrojará un error ORA
  3. Al ACTUALIZAR las filas de todos los empleados en el departamento 100, se lanzará un error ORA
  4. Ninguna de las anteriores

Answer: B, C. Las operaciones DML no están permitidas en la vista que se crean con la opción READ ONLY.

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

  1. Todas las filas de la vista
  2. Todas las filas de solo el departamento 100
  3. Sin filas
  4. Ninguna de las anteriores

Answer: C. Las operaciones DML no están permitidas en la vista que se crean con la opción 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. Ninguna de las anteriores

Answer: C. La vista de solo lectura se puede eliminar mediante el comando DROP VIEW.

46.What is true about dropping a View?

  1. Las columnas en la vista de las tablas base también se eliminan
  2. La definición de la vista se elimina de la base de datos.
  3. La eliminación de una vista no tiene ningún efecto en la tabla base subyacente
  4. Ninguna de las anteriores

Answer: B, C.

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

  1. CREA CUALQUIER VISTA
  2. CREAR VISTA
  3. DEJAR CUALQUIER VISTA
  4. VISTA GOTA

Answer: C.

48.What is true about sequences?

  1. Genera enteros
  2. Es un objeto para compartir
  3. Se puede utilizar para crear un valor de CLAVE PRIMARIA
  4. Todas las anteriores

Answer: D. Una secuencia acelera la eficiencia de acceder a los valores de la secuencia cuando se almacena en la memoria caché

49.What is true about a sequence?

  1. Se crea cuando se instala Oracle Database
  2. Es creado por un usuario que tiene el privilegio de sistema CREAR SECUENCIA
  3. No puede ser compartido por más de dos usuarios.
  4. Se cae automáticamente cuando se desconecta la base de datos.

Answer: B, C. El usuario requiere el privilegio del sistema CREAR SECUENCIA para crear una secuencia en su propio esquema que no puede ser compartida por otros usuarios.

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

  1. Los números enteros generados a través de una secuencia para una tabla no pueden ser usados ​​por otras tablas
  2. Una secuencia solo se puede incrementar
  3. Una secuencia deja de ser válida si otra secuencia genera los mismos números enteros
  4. Una secuencia puede ser utilizada por muchas tablas y pueden incrementarse o decrementarse

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. La cláusula START WITH establece el valor inicial de la secuencia. Oracle 11g comienza cada secuencia en 1 a menos que se especifique otro valor en la 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. Las cláusulas MINVALUE y MAXVALUE establecen un valor mínimo o máximo para la secuencia.

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

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

Answer: A. La cláusula INCREMENT BY especifica el intervalo entre dos valores secuenciales. Si la secuencia se incrementa en un valor positivo, los valores que genera la secuencia están en orden ascendente. Sin embargo, si se especifica un valor negativo, los valores que genera la secuencia están en orden descendente. Si la cláusula INCREMENT BY no se incluye cuando se crea la secuencia, se usa la configuración predeterminada, que aumenta la secuencia en uno por cada entero generado.

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

  1. 101
  2. Sin valor
  3. Lanzará un error ORA
  4. Ninguna de las anteriores

Answer: B. Las opciones CYCLE y NOCYCLE determinan si Oracle 11g debe comenzar a volver a emitir valores de la secuencia después de alcanzar el valor mínimo o 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. La pseudocolumna NEXTVAL generará el siguiente entero único de la secuencia.

57.You execute the below query:

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

Answer: A. La pseudocolumna CURRVAL generará el entero único actual ya generado por la secuencia.

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. La secuencia debe descartarse y volver a crearse para iniciar la secuencia desde 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. El número inicial de una secuencia no se puede modificar. Oracle genera la excepción "ORA-02283: no se puede alterar el número de secuencia 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;

¿Cuál será el resultado de esta alteración?

  1. Error de ORA
  2. El valor máximo para la secuencia alterada ahora será 99
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: A. El MAXVALUE no puede ser menor que el valor START WITH mientras se modifica una secuencia.

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

  1. Si queremos purgar las filas antiguas más rápido
  2. Si no queremos usar la secuencia para generar valores de PRIMARY KEY
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: C. Las opciones CYCLE y NOCYCLE determinan si Oracle 11g debe comenzar a volver a emitir valores de la secuencia después de alcanzar el valor mínimo o máximo. Si se especifica la opción CICLO y Oracle 11g alcanza el valor máximo para una secuencia ascendente o el valor mínimo para una secuencia descendente, la opción CICLO inicia el ciclo de números nuevamente.

61.What is true about NEXTVAL pseudo column?

  1. Vuelve a generar el CURRVAL de una secuencia
  2. Devuelve el siguiente valor de secuencia disponible
  3. Puede devolver valores duplicados
  4. Genera los mismos valores para diferentes usuarios

Answer: B. La pseudocolumna NEXTVAL (NEXT VALUE) se utiliza para generar realmente el valor de secuencia. En otras palabras, llama al objeto de secuencia y solicita el valor del siguiente número de la secuencia. Una vez que se genera un valor, se almacena en la pseudocolumna CURRVAL (CURRENT VALUE) para que pueda hacer referencia a él nuevamente.

62.What is true about CURRVAL pseudo column?

  1. CURRVAL puede usarse antes que NEXTVAL con respecto a una secuencia
  2. CURRVAL da el valor actual de una secuencia
  3. CURRVAL puede dar valores duplicados
  4. Ninguna de las anteriores

Answer: B.

63.When can NEXTVAL and CURRVAL be used?

  1. SET cláusula de una instrucción INSERT
  2. Cláusula VALUES de una instrucción UPDATE
  3. La lista SELECT de una instrucción SELECT que no forma parte de una subconsulta
  4. La lista SELECT de una instrucción INSERT

Answer: C, D. La secuencia se puede utilizar en la consulta SELECT, el cursor PL / SQL o en operaciones directas IAS (INSERT-AS-SELECT).

64.When can NEXTVAL and CURRVAL not be used?

  1. La lista SELECT de una vista
  2. La instrucción SELECT con la palabra clave DISTINCT
  3. Una subconsulta en la instrucción SELECT, DELETE o UPDATE
  4. Todas las anteriores

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. Se creará la tabla
  2. La columna department_id tendrá los valores de la secuencia generada para el ID de empleado
  3. La columna department_id tendrá un valor DEFAULT
  4. Error de ORA

Answer: D. Las pseudocolumnas no se pueden especificar en la cláusula DEFAULT de una definición de columna.

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. Se creará la tabla
  2. La columna department_id tendrá los valores de la secuencia generada para el ID de empleado
  3. La columna department_id tendrá un valor DEFAULT
  4. Error de ORA

Answer: D. Las pseudocolumnas no se pueden especificar en la cláusula DEFAULT de una definición de columna.

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. Ninguna de las anteriores

Answer: A.La opción C causará una 'Violación de restricción única' ya que intentará insertar el valor actual de la identificación del departamento que ya existe en la tabla DEPARTAMENTOS.

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. Error de ORA
  2. Dará el valor actual de la secuencia.
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: B. Cuando un usuario inicia sesión en Oracle 11g, inicialmente no se almacena ningún valor en la pseudocolumna CURRVAL; el valor actual es NULO. Después de que se ha emitido una llamada NEXTVAL para generar un valor de secuencia, CURRVAL almacena ese valor hasta que se genera el siguiente valor. CURRVAL contiene solo el último valor generado.

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

  1. Cuando ocurre una reversión
  2. El sistema falla
  3. Se usa una secuencia en otra tabla
  4. Todas las anteriores

Answer: D.

70.What is true about caching sequence values?

  1. El almacenamiento en caché de valores de secuencia no es posible en Oracle
  2. La caché se llena cuando se alcanza el límite máximo de la secuencia
  3. El almacenamiento en caché comienza la primera vez que se hace referencia a la secuencia
  4. Ninguna de las anteriores

Answer: C. Si se especifica la opción NOCACHE cuando se crea la secuencia, cada número se genera cuando se recibe la solicitud. Sin embargo, si las transacciones de una organización requieren grandes cantidades de números secuenciales a lo largo de una sesión, la opción CACHE puede usarse para que Oracle 11g genere un conjunto de valores con anticipación y los almacene en la memoria del servidor. Luego, cuando un usuario solicita un valor de secuencia, se asigna el siguiente valor disponible, sin que Oracle 11g tenga que generar el número. Por otro lado, si no se especifica la opción CACHE, Oracle 11g asume una opción predeterminada de CACHE 20 y almacena 20 valores secuenciales en la memoria automáticamente para que los usuarios accedan.

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;

Suponga que la transacción del empleado se revierte. ¿Cuál será el resultado de la consulta anterior?

  1. El valor de secuencia al inicio de la transacción del empleado
  2. NULL
  3. El valor de la secuencia al final de la transacción del empleado
  4. Ninguna de las anteriores

Answer: C. Los valores de secuencia no se ven afectados por la confirmación o la reversión. Si se revierte una transacción que utiliza un generador de secuencia, los valores de secuencia se desperdician y no se pueden recuperar.

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

  1. Privilegio CREAR O REEMPLAZAR
  2. ALTER privilegio para la secuencia
  3. Privilegio ALTER TABLE
  4. Privilegio ACTUALIZAR

Answer: B. Para alterar una secuencia, la secuencia debe estar en su propio esquema, o debe tener el privilegio de objeto ALTER en la secuencia, o debe tener el privilegio del sistema ALTER ANY SEQUENCE.

73.What happens when a sequence is altered?

  1. Los enteros existentes ya generados por la secuencia también se modifican
  2. Solo los números enteros futuros se ven afectados
  3. La secuencia deja de almacenar en caché los números enteros futuros
  4. Ninguna de las anteriores

Answer: B. Al usar el comando ALTER SEQUENCE, los cambios se aplican solo a los valores generados después de que se realizan las modificaciones.

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. Ninguna de las anteriores

Answer: C. El comando DROP se usa para eliminar una secuencia

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

  1. ALTER SEQUENCE
  2. ALTERAR TABLA
  3. SECUENCIA DE GOTA
  4. SOLTAR CUALQUIER SECUENCIA

Answer: D. Para eliminar una secuencia, la secuencia debe estar en su propio esquema o debe tener el privilegio del sistema DROP ANY SEQUENCE.

76.What is true about Indexes?

  1. Los índices solo se crean manualmente
  2. Los índices solo se crean automáticamente
  3. Tanto a como B
  4. Ninguna de las anteriores

Answer: D. Los índices se pueden crear de forma manual o automática siguiendo determinadas acciones, como la creación de una clave principal o una restricción única.

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

  1. ROWNUM
  2. ROWID
  3. Sequence
  4. Ninguna de las anteriores

Answer: B. Un índice Oracle 11g es un objeto de base de datos que almacena un mapa de valores de columna y los ROWID de las filas de la tabla coincidente. Un ROWID es la dirección física de una fila de la tabla.

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

  1. Los datos se localizan rápidamente
  2. Hay un escaneo de tabla completo
  3. No se puede crear la tabla
  4. La tabla no se puede modificar

Answer: B.

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

  1. El índice reduce la E / S del disco
  2. Index localiza datos rápidamente
  3. Los índices son lógica y físicamente independientes de la tabla que indexan
  4. Todas las anteriores

Answer: D.

80.What will happen if an index is dropped?

  1. La columna en la que se crea el índice también se elimina
  2. La tabla en la que se crea el índice también se suelta
  3. Los índices una vez creados no se pueden eliminar
  4. Como los índices son objetos lógicamente y físicamente independientes, se pueden eliminar sin afectar a otros objetos.

Answer: D. Los índices son los objetos que se almacenan físicamente en el esquema. Dejar caer un índice no afecta a otros objetos.

81.What happens when a table is dropped?

  1. Los índices siguen siendo objetos lógicos e independientes.
  2. Los índices de la tabla también se eliminan.
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: B.

82.How are indexes created automatically?

  1. Cuando creamos una tabla
  2. Cuando se altera una mesa
  3. Cuando una CLAVE PRIMARIA se define en una columna (o grupo de columnas) de una tabla
  4. Cuando se define una restricción UNIQUE KEY en la definición de la tabla

Answer: C, D.

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

  1. Solo tablas y vistas
  2. Tabla, vista y secuencia
  3. Procedimiento, función o paquete almacenados
  4. Synonym

Answer: B, C, D. El objeto de esquema para el que está creando el sinónimo puede ser de los siguientes tipos: Tabla o tabla de objeto, Vista o vista de objeto, Secuencia, Procedimiento almacenado, función o paquete, Vista materializada, Objeto de esquema de clase Java, Tipo de objeto definido por el usuario , 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. Un sinónimo es un nombre alternativo o alias de un objeto de base de datos.

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

  1. CLAVE PRIMARIA
  2. LLAVE UNICA
  3. CLAVE EXTERNA
  4. Ninguna de las anteriores

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. El índice de árbol B (árbol equilibrado) es el índice más común utilizado en Oracle. Puede crear este tipo de índice con una instrucción CREATE INDEX básica. Un índice de mapa de bits varía en estructura y uso a partir de un índice de árbol B. Este índice es útil para mejorar las consultas en columnas que tienen baja selectividad (baja cardinalidad o una pequeña cantidad 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. Ninguna de las anteriores

Answer: A.

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

  1. Especifica que el valor de la (s) columna (s) sobre las que se crea el índice debe ser único
  2. No puede utilizar la palabra clave UNIQUE al crear índices
  3. Especifica que el índice que se crea solo puede ser utilizado por una tabla
  4. Ninguna de las anteriores

Answer: A. Por lo general, un índice único se crea automáticamente cuando se define una restricción PRIMARY KEY o UNIQUE en una columna. Los índices únicos también se pueden crear explícitamente incluyendo la palabra clave UNIQUE en la instrucción CREATE INDEX.

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

  1. Crea el índice con un mapa de bits para cada clave distinta.
  2. No crea el índice en cada fila por separado
  3. Tanto a como B
  4. Ninguna de las anteriores

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 conjunto MENOS
  4. Ninguna de las anteriores

Answer: A. Los índices son la mejor manera de lograr el rendimiento de las consultas. Las operaciones intensivas de E / S se pueden reducir y simplificar mediante exploraciones de índice.

91.In what scenarios can Indexes be useful?

  1. Si la mesa (s) es muy grande
  2. Si una columna tiene menos valores
  3. Si una columna contiene una gran cantidad de valores NULL
  4. Si una columna tiene una amplia 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. No se deben crear índices si una tabla se actualiza con frecuencia
  2. Los índices deben crearse en el momento en que se crea la tabla
  3. Ni de A ni de B
  4. Ninguna de las anteriores

Answer: A. Las operaciones DML frecuentes o masivas en una tabla con un índice agregan una sobrecarga de mantenimiento del segmento del índice, lo que podría afectar el rendimiento de la operación 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;

¿Los índices existentes ayudarán en este caso si hay 1 millón de filas en la tabla EMPLEADOS?

  1. Yes
  2. No
  3. Podría ayudar
  4. Ninguna de las anteriores

Answer: B. Los índices no se utilizan cuando los predicados de la consulta no contienen las columnas en las que se crea el índice.

94.Which of the following will remove an Index?

  1. DELETE FROM index_name;
  2. DROP INDEX index_name;
  3. DROP INDEX;
  4. Ninguna de las anteriores

Answer: B. Debe tener el privilegio DROP ANY INDEX para eliminar un índice.