DP 19 3 Practice Esp
DP 19 3 Practice Esp
DP 19 3 Practice Esp
Objetivos
• Revisar los puntos clave sobre la manipulación de mayúsculas/minúsculas y caracteres
• Revisar las funciones generales y de número, fecha, conversión
• Revisar las expresiones condicionales
• Revisar el producto cartesiano y las operaciones de unión
• Revisar las uniones no igualitarias, uniones externas, autouniones, uniones cruzadas, uniones
naturales y cláusulas de unión
• Revisar las funciones de grupo, la sintaxis group by y las cláusulas having
• Escribir subconsultas de una y varias filas
• Revisar las subconsultas pareadas y no pareadas
• Revisar las subconsultas correlacionadas
• Revisar las sentencias DML insert, update, delete, merge y las inserciones en varias tablas
• Revisar las sentencias DDL CREATE, ALTER, RENAME, TRUNCATE, FLASHBACK TABLE,
DROP y FLASHBACK QUERY
• Revisar las sentencias DCL CREATE y los privilegios de objetos REVOKE
Inténtelo/Resuélvalo
1. La jefa de Global Fast Foods necesita actualizar la lista de clientes. Desea encontrar todos los
códigos postales que tengan menos de 10 dígitos para identificar aquellos códigos que no tienen
el nuevo formato de sufijo 87392-8723. Cree una consulta para identificar a esos clientes.
2. En la siguiente lista de funciones, marque con una N las que se pueden utilizar con números,
marque con una C las que pueden operar en datos de caracteres y marque con una D las que se
pueden utilizar con fechas.
a. LPAD
b. ROUND
c. TRUNC
d. LENGTH
e. LAST_DAY
f. INSTR
g. CONCAT
3. Debe mostrar auth_expense_amt para cada partner de DJs on Demand. Para aquellos partners
que no tiene una cuenta de gastos, la salida debe mostrar “Not Approved”.
Copyright © 2020 Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios.
4. Jason y Jamie han intentado ejecutar un informe que muestre los miembros de la plantilla de
Global Fast Foods que no tienen una tarifa de horas extra. Han escrito la siguiente consulta SQL
y han recibido un error de informe: ORA-01722: invalid number.
5. El director general de Global Fast Foods desea enviar una tarjeta de cumpleaños a todos los
empleados. Le ha pedido a usted que le envíe un recordatorio en el mes de nacimiento del
empleado, de manera que se pueda enviar la tarjeta con el cheque de pago de ese mes. Prepare
una consulta para generar la tabla siguiente.
7. A los empleados de la base de datos Oracle que han trabajado más de 10 años se les concederá
una semana adicional de vacaciones. Cree un informe que muestre el nombre, el apellido y los
años que han trabajado. Redondee el resultado a una posición decimal.
8. El jefe de DJs on Demand necesita que cambie el código postal de ID 105, los locales de Nueva
York. Desea mostrar el código postal antiguo en una columna y el nuevo en otra columna. El
nuevo código postal es el mismo que el antiguo, excepto que se debe agregar -2345 al final. La
salida debe aparecer como se muestra en la tabla.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
2
9. Cree una consulta con una sentencia SELECT que devuelva la fecha de hoy. Asigne un alias a
cada columna.
a. Redondeada al año más cercano
b. Redondeada al mes más cercano
c. Truncada al año más cercano
d. Truncada al mes más cercano
10. Necesita averiguar cuántos días han transcurrido desde el inicio de los menús promocionales de
Global Fast Foods. Redondee el resultado al día más cercano.
11. El departamento de recursos humanos (base de datos Oracle) ha decidido que, para sus
objetivos, el cargo de todos los empleados estará formado por las cinco primeras letras del cargo
seguidas de un asterisco. Por ejemplo, director de contabilidad se cambiará a direc* Cree una
consulta para realizar esta solicitud.
13. Escriba una consulta que devuelva todas las filas y columnas de la tabla employees, pero haga
que department_id sea una variable de sustitución y, a continuación, ejecute la consulta con dos
o tres department_id diferentes para probarla.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
3
Parte 2
1. Utilice la tabla employees de la base de datos Oracle. Escriba y ejecute una consulta para cada
término.
LOWER
UPPER
INITCAP
CONCAT
SUBSTR
LENGTH
INSTR
LPAD
RPAD
TRIM
REPLACE
ROUND
TRUNC
MOD
MONTHS_BETWEEN
ADD_MONTHS
NEXT_DAY
LAST_DAY
SYSDATE
2. Cree dos consultas diferentes para generar el número y el título de CD como “94CARPE DIEM”.
Utilice la tabla d_cds de la base de datos DJs on Demand.
4. Cree una consulta para mostrar el costo de los eventos de DJs on Demand con el
formato $0000.00
5. En la tabla f_staffs de la base de datos Global Fast Foods, cambie el identificador de los
miembros del personal cuyos ID tengan un único dígito a dos dígitos agregando un asterisco *
delante del número. Por ejemplo, cambie el ID 9 a *9.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
4
6. Como administrador de la base de datos, le han pedido que almacene los registros históricos de
empleados en la base de datos actual. Los registros tienen fechas de rescisión de 1990 a 1999.
Escriba una consulta utilizando DUAL para mostrar cómo puede almacenar 15-Dec-1995.
7. Utilizando DUAL, deberá dar formato a 19-Jun-2004 para que aparezca como: 19th of june two
thousand four
8. Cree una consulta que devuelva solo la última palabra de “Oracle Academy”.
9. Lance y Arnie han creado la siguiente consulta SQL, pero no ha devuelto ningún resultado. ¿Cuál
es el problema en esta consulta?
SELECT loc_type
FROM d_venues
WHERE loc_type LIKE 'National Park'
AND ID = 200;
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
5
Parte 3
1. Un/Una ________________ es cuando las filas de las tablas se combinen entre sí para producir
filas nuevas. El número de filas es equivalente al producto del número de filas en cada tabla.
2. Una _________________ se utiliza cuando es necesario consultar una tabla que tiene una
relación consigo misma.
4. En una unión externa, un signo más (+) se coloca en el lado de la unión donde
_________________ la información.
7. Un _______________ se utiliza para preceder el nombre de columna a fin de clarificar qué tabla y
columna participan en la unión.
9. En una unión externa completa, una fila que no contiene datos sí/no aparecerá en el juego de
resultados si la fila cumple la condición de unión.
11. Identifique la sintaxis de Oracle que indica una unión externa ___________.
12. Si una condición de unión se escribe: WHERE e.client_number = c.client_number, ¿qué tipo de
unión sería si quisiéramos toda la información de la tabla e incluso aunque a la tabla c le falten
datos? ______
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
6
13. Las uniones que se basan en relaciones jerárquicas, como jefe y empleado,
se denominan __________.
14. ¿Cuántas condiciones de unión se requieren para unir tres tablas? ___
16. ¿Qué tipo de condición de unión es la mejor cuando existen dos columnas con el mismo nombre,
pero distintos tipos de dato en dos tablas diferentes?
17. ¿Qué tipo de uniones se basa en todas las columnas de dos tablas que tienen el
mismo nombre?
19. Al especificar una unión, es necesario identificar el qué, el dónde y el cómo. Empareje estos
términos con las siguientes palabras de la sintaxis SQL: FROM, WHERE, SELECT.
20. Para cada condición de unión que aparece en la lista, marque con una V las que pueden incluir
un alias en la sintaxis:
___ unión cruzada
___ unión igualitaria
___ unión no igualitaria
___ unión natural
___ unión externa completa
___ unión externa izquierda
___ cláusula USING
21. ¿Cuáles son los dos tipos de condiciones de unión que no pueden utilizar un alias?
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
7
22. ¿De qué tipo de unión es un ejemplo la consulta siguiente?
SELECT last_name, first_name
FROM f_staffs, f_orders;
COURSES CID
Oracle_Internet_Academy_DM 101
Oracle_Internet_Academy_Java 102
Oracle_Internet_Academy_Java 103
COURSES
SID CID
1420 101
555 101
554 101
873 102
342 103
349 103
943 103
1933 103
ENROLLED
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
8
23. Utilice las tres tablas anteriores para responder a las siguientes preguntas:
a. ¿Qué tipo de unión debería utilizar para unir las tres tablas? __________________ Escriba la
sintaxis necesaria para producir el resultado deseado.
b. Nombre dos tablas que se podrían utilizar para recuperar los datos de una
unión natural.
Escriba la sintaxis necesaria para producir el resultado deseado.
c. ¿Qué tipo de unión debería utilizar para devolver solo los alumnos que
tengan tutores?
Escriba la sintaxis necesaria para producir el resultado deseado.
d. ¿Qué tipo de unión debería utilizar para devolver todos los alumnos con independencia de
que tengan o no un tutor?
Escriba la sintaxis necesaria para producir el resultado deseado.
24. Escriba una consulta jerárquica para mostrar el diagrama de organización de la tabla employees.
Asegúrese de que la consulta comienza por el empleado que no tiene jefe. Haga que la consulta
devuelva el nombre y el apellido del empleado junto con el apellido de su jefe.
25. Escriba una consulta que muestre department_id, job_id y el salario total de cada job_id dentro
de un departamento. Haga que la consulta devuelva los subtotales del salario por department_id
y una suma total de todos los salarios de toda la compañía. Utilice la tabla EMPLOYEES para
esta consulta.
26. Escriba una consulta que combine las siguientes columnas: first_name y last_name del
empleado, department_id, job_id y salary de la tabla employees, employee_id, start_date,
end_date y job_id de job_history y department_name y location_id de la tabla departments. Las
consultas deben devolver una sola salida.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
9
Parte 4
1. Cree copias de las siguientes tablas de base de datos Oracle y asígneles un nombre como se
especifica a continuación:
• employees se copia como o_employees
• departments se copia como o_departments
• jobs se copia como o_jobs
2. Como DBA de Oracle, se le ha pedido que actualice la base de datos con nueva información.
3. En la tabla se muestran tres nuevos empleados contratados para este departamento. Agréguelos
a la tabla o_employees.
Cada empleado necesitará una dirección de correo electrónico creada con la primera letra del
nombre del empleado combinada con su apellido (Bob Smith sería BSMITH). Utilice la fecha
actual como la fecha de contratación.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
10
Parte 5
7. ¿Por qué elegiría definir una restricción a nivel de columna en lugar de a nivel de tabla?
9. ¿Puede haber más de una columna no nula cuando se utiliza una restricción UNIQUE? ¿Por
qué?
13. ¿De qué otra manera se denomina una restricción FOREIGN KEY?
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
11
16. Cree una copia de la tabla employees y denomínela sus_iniciales_emp. Agregue una columna a
la nueva tabla denominada department_name y convierta esta columna en el mismo tipo de dato
y longitud que la columna department_name de la tabla departments. Escriba una sentencia de
actualización correlacionada para actualizar todas las columnas department_name de su nueva
tabla para que tengan los mismos valores que la columna department_name de la propia tabla
departments.
17. Borre la tabla o_employees. Investigue dónde se encuentra. Intente realizar una selección en la
tabla borrada. Ahora intente realizar una selección en la tabla borrada utilizando su nombre de la
papelera. Restaure la tabla.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
12
Parte 6
1. ¿Cuáles de las sentencias que se muestran a continuación son verdaderas sobre la siguiente
secuencia? La secuencia se ha utilizado para generar números para la columna cd_numbers de
la tabla D_CDS de DJs on Demand.
2. En la sentencia CREATE TABLE que se muestra a continuación, rodee con un círculo la letra de
las líneas que creará automáticamente un índice.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
13
3. ¿Qué vista del diccionario de datos contiene las secuencias creadas por un esquema?
a. SEQUENCE_VIEW
b. USER_SEQUENCES
c. SEQUENCE_NAMES
d. USER_VIEWS
4. ¿Cuál es la sintaxis correcta para cambiar emp_email_index en la columna del correo electrónico
de la tabla employees?
a. CREATE INDEX emp_email_index ON employees (email);
b. ALTER INDEX emp_mail_index FROM employees(email);
c. CREATE AND REPLACE INDEX emp_email_index ON employees, COLUMN = email;
d. ADD INDEX emp_email_index INTO employees (email);
e. Ninguna de las anteriores
5. ¿Qué vista del diccionario de datos se utiliza para ver el nombre de tabla, el nombre de índice y el
nombre de columna en los que está basado el índice?
a. USER_TABLE_INDEXES
b. USER_COLUMNS
c. USER_IND_COLUMNS
d. ALL_INDEXES
6. Si la opción PUBLIC no está incluida en la sintaxis CREATE SYNONYM, ¿cuál de las siguientes
afirmaciones es verdadera?
a. Los usuarios no pueden alargar los nombres de objeto.
b. El DBA no tiene acceso al sinónimo.
c. El sinónimo no está accesible para todos los usuarios.
d. Todos los nombres de objeto deben estar cualificados mediante PUBLIC.
a. 3, 6, 9
b. 6, 9, 12
c. 9, 12, 15
d. 9, 12, 14
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
14
8. ¿Cuál de los siguientes es un buen motivo para crear un índice?
a. Una columna tiene un gran número de valores nulos.
b. Una columna tiene una amplia variedad de valores.
c. Se espera que la mayoría de las consultas devuelvan más del 5% de las filas.
d. Una tabla se actualiza con frecuencia.
10. ¿Cuál de las siguientes no puede contener una función de una sola fila?
a. SELECT
b. FROM
c. WHERE
d. ORDER BY
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
15