0% encontró este documento útil (0 votos)
243 vistas3 páginas

DP 20 1 Practice Esp

bases de datos

Cargado por

Ely Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
243 vistas3 páginas

DP 20 1 Practice Esp

bases de datos

Cargado por

Ely Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Programación de Bases de Datos con SQL

20-1: Asegurando la Calidad de los Resultados de las Consultas - Técnicas


Avanzadas
Actividades de Práctica

Objetivos
• Crear una consulta para producir datos especificados
• Modificar una consulta para producir datos especificados

Inténtelo/Resuélvalo

1. Cree las tablas adicionales que se utilizan en esta sección ejecutando las siguientes sentencias:

CREATE TABLE emp AS SELECT * FROM employees;


CREATE TABLE dept AS SELECT * FROM departments;

2. Cree un informe que muestre el nombre de restricción, el tipo, el nombre de columna y la


posición de columna de todas las restricciones de la tabla JOB_HISTORY, además de las
restricciones no nulas.

3. Cree una restricción de clave primaria en la columna employee_id de la tabla emp.

4. Cree una clave primaria en la columna department_id de la tabla dept.

5. Agregue una restricción ajena entre DEPT y EMP, de modo que solo se puedan introducir
departamentos válidos en la tabla EMP. Asegúrese de que puede suprimir cualquier fila de la
tabla DEPT y de que se suprimen las filas a las que se hace referencia en la tabla EMP.

6. Pruebe la restricción de clave ajena que acaba de crear:

Cuente el número de filas en la tabla EMP.


Elimine el departamento 10 de la tabla dept.
Ahora vuelva a contar los empleados. Debería haber menos empleados.

7. Genere un informe que devuelva el apellido, el salario, el número de departamento y el salario


medio de todos los departamentos en los que el salario es mayor que el salario medio.

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.
8. Cree una vista denominada V2 que devuelva el salario más alto, el salario más bajo, el salario
medio y el nombre del departamento.

9. Cree una vista denominada Dept_Managers_view que devuelva una lista de nombres de
departamento junto con las iniciales y el apellido del jefe para dicho departamento. Pruebe la
vista devolviendo todas sus filas. Asegúrese de que no se pueda actualizar ninguna fila a través
de la vista. Pruebe a ejecutar una sentencia UPDATE en la vista.

10. Cree una secuencia denominada ct_seq con todos los valores por defecto.

11. Examine la siguiente sentencia de inserción y corrija los errores.

INSERT INTO emp


(employee_id, first_name, last_name, email, phone_number, hire_date,
job_id, salary, commission_pct, manager_id, department_id)
VALUES
(ct_seq.nextvalue, "Kaare", 'Hansen', 'KHANSEN', '44965 832123',
sysdate, 'SA_REP', $6500, null, 100, 20);

12. Escriba la sentencia SQL para mostrar todas las tablas de usuario que contienen el nombre
PRIV.

13. Conceda acceso de selección a público en la tabla EMP y verifique que se ha otorgado mediante
la ejecución esta consulta.

SELECT *
FROM user_tab_privs
WHERE table_name = 'EMP';

14. Sustituya ?? en la siguiente consulta mediante expresiones regulares para devolver solo los
números de la siguiente cadena: 'Oracle Academy9547d6905%&^ db apex'.

SELECT REGEXP_REPLACE('Oracle Academy9547d6905%&^ db apex',??,'') regexpreplace


FROM DUAL;

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
15. Corrija la consulta anterior mediante expresiones regulares para devolver el número de dígitos de
la siguiente cadena: 'Oracle Academy9547d6905 %y;^ db'

SELECT LENGTH(REGEXP_REPLACE('Oracle Academy9547d6905%&^ db apex','??',''))


regexpreplace
FROM DUAL;

16. Corrija la consulta de nuevo para devolver solo los caracteres no numéricos.

SELECT REGEXP_REPLACE('Oracle Academy9547d6905%&^ db apex','??','') regexpreplace


FROM DUAL;

17. Mediante las uniones propiedad de Oracle, construya una instrucción que devuelva todos los
employee_ids unidos a todos los department_names.

18. Vuelva a utilizar las uniones Oracle para corregir la sentencia anterior de modo
que devuelva solo el nombre del departamento en el que está trabajando el
empleado actualmente.

19. Vuelva a utilizar las uniones Oracle para crear una consulta que muestre el apellido de los
empleados, el nombre de departamento, el salario y el nombre del país de todos
los empleados.

20. Vuelva a utilizar la sintaxis de unión de Oracle para modificar la consulta anterior,
de modo que incluya también incluye el registro de empleado del empleado sin department_id,
'Grant'.

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

También podría gustarte