0% encontró este documento útil (0 votos)
18 vistas16 páginas

Práctica 8 - Consultas Avanzadas (Rúbrica)

El documento contiene una serie de ejercicios de programación en PL/SQL relacionados con la manipulación de registros en bases de datos, incluyendo inserciones, eliminaciones, actualizaciones y consultas. Se abordan temas como el uso de secuencias, manejo de variables, estructuras de control, y la creación de tablas. Además, se presentan ejemplos prácticos para trabajar con datos de empleados y realizar operaciones específicas basadas en condiciones dadas.

Cargado por

teuddy Sánchez
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)
18 vistas16 páginas

Práctica 8 - Consultas Avanzadas (Rúbrica)

El documento contiene una serie de ejercicios de programación en PL/SQL relacionados con la manipulación de registros en bases de datos, incluyendo inserciones, eliminaciones, actualizaciones y consultas. Se abordan temas como el uso de secuencias, manejo de variables, estructuras de control, y la creación de tablas. Además, se presentan ejemplos prácticos para trabajar con datos de empleados y realizar operaciones específicas basadas en condiciones dadas.

Cargado por

teuddy Sánchez
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/ 16

lOMoAR cPSD| 32973317

Nombre y apellido: teuddy Sánchez

Matricula: 2023-1686

Carrera: Desarrollo de software

Materia: base de datos avanzado

Maestr@: Geraldo Peralta Bidó


lOMoAR cPSD| 32973317

5.1 Construya un código de PL/SQL donde se inserte un nuevo registro en la tabla


de empleados. El ID del empleado debe llenarse usando la secuencia creada para
los fines. Genere una secuencia y asigne el valor directamente a una variable, tal
como lo permite Oracle 11g. Recuerde asentar los cambios a la BD dentro del
bloque de código.

ID del empleado: Secuencia // Nombre: Charles // Apellido: Spurgeon

Email: [email protected] // Teléfono: 555-458-4855

Fecha Ingreso: Fecha Actual (SYSDATE) // Puesto: IT_PROG

Salario: 2800 // Comisión: Null // ID del Supervisor: 200

ID del Departamento: 60

Fuera del bloque realice una consulta para mostrar el registro insertado.

5.2 Construya un código PL/SQL que le pase un valor a una variable en la


sección declarativa y que en el bloque del programa use dicho valor para
eliminar un registro basado en el ID del empleado. Puede usar como valor el ID
del empleado creado en el ejercicio 5.1. Muestre por pantalla la cantidad de
registros borrados usando el atributo de cursor SQL correspondiente. Recuerde
lOMoAR cPSD| 32973317

asentar los cambios. Fuera del bloque PL/SQL haga una consulta para validar
que el empleado se haya borrado exitosamente.

5.3 Construya un código PL/SQL que asigne un monto a una variable y actualice
los salarios sumando a los mismos el valor introducido en la variable, de todos
los empleados que trabajan en la posición ST_CLERK. Asigne la cantidad de
registros actualizados a una variable y muestre por pantalla el valor de dicha
variable.

5.4 Construya un código PL/SQL que asigne un valor a una variable y realice
una consulta por ID del empleado usando dicha variable. Declare la variable con
el mismo nombre de la columna de ID del empleado. Diga cuál es el resultado
de la corrida del programa y explique lo que ocurra.
lOMoAR cPSD| 32973317

Nota: La consulta da un error al intentar traer el empleado 100 debido a que la


variable tiene el mismo nombre de la columna, y al proyectar la columna esta trae
varios id, entonces esto provoca una ambigüedad por la igualdad de los nombres.

Si se cambia el nombre de la variable toda funcionaria correctamente y el id del


empleado se almacenaría en la variable resultado como se ve a continuación.
lOMoAR cPSD| 32973317

5.5 Construya un código PL/SQL que pida un monto y un ID de departamento, y


actualice los salarios sumando a los mismos el valor introducido, de todos los
empleados que trabajan en el ID de departamento dado. Asigne la cantidad de
registros actualizados a una variable. Use SQL%NOTFOUND para validar si
haciendo la actualización no se llegó a actualizar ningún registro. Si no actualizó
ningún registro, muestre el siguiente mensaje:

Departamento no encontrado

En cualquier escenario muestre el siguiente mensaje por pantalla:

<<cantidad de registros>> registros actualizados


lOMoAR cPSD| 32973317

5.6 Construya un código PL/SQL que lea información de una tabla y si los
registros existen en otra tabla que actualice los valores en ésta, de lo contrario
que inserte el registro. Para lograr el objetivo, realice las siguientes
actividades:

1) Crear la tabla EMPLOYEE_DETAILS usando un sub-query de la tabla


EMPLOYEES, seleccionando el ID del empleado (EMPID), el nombre
concatenado al apellido con un espacio de por medio (ENAME), el ID de
la posición (JOB), el ID del supervisor (MGR), la fecha de contratación
(HIREDATE), el salario (SAL), la comisión (COMM) y el ID del
departamento (DEPTNO).
lOMoAR cPSD| 32973317

2) Insertar un nuevo registro en la tabla de empleados con los siguientes


valores:
ID del empleado [usar la secuencia], Nombre [Mary], Apellido [McMillan],
Correo [[email protected]], Teléfono [222-221-8426], Fecha [fecha del
sistema], Posición [IT_PROG], Salario [1500], Comisión [NULL], ID del
supervisor [200], ID del departamento [60]

3) Asentar los cambios en la BD.

4) Revisar la secuencia actual que se usó para insertar el valor en el ID del


empleado.

5) Revisar si existe un registro en la tabla EMPLOYEE_DETAILS con el ID


del empleado igual al número de secuencia retornado en el paso 4.
lOMoAR cPSD| 32973317

Nota: Da error porque no se encontró ningún dato con el numero almacenado en la


variable v_valor_secuencia.
Si probamos de otra manera podemos confirmar con el siguiente código.

6) Construir un código PL/SQL que permita actualizar la tabla


EMPLOYEE_DETAILS con los nuevos cambios realizados en la tabla
EMPLOYEES, mediante un MERGE.
lOMoAR cPSD| 32973317

7) Revisar nuevamente si existe un registro en la tabla


EMPLOYEE_DETAILS con el ID del empleado igual al número de secuencia
retornado en el paso 4.

Nota: Vemos que ahora si existe, y para confirmar veamos la siguiente


consulta.

II. Realice los siguientes ejercicios


lOMoAR cPSD| 32973317

6.1 Construya un código PL/SQL que lea los datos (ID del empleado y nivel
salarial) de un empleado que el usuario introduzca por pantalla. Relacione sus
datos con la tabla JOB_GRADES para conocer su nivel salarial. Si el nivel del
empleado es 'A' se desea desplegar "Low", si es 'B' o 'C' que despliegue
'Medium', si es 'D' que despliegue 'High' y si no es ninguno de estos niveles,
que despliegue 'Elite'. Muestre por pantalla

El nivel salarial del empleado <<ID del empleado>> es <<nivel salarial>> Use

la estructura IF.

6.2 Reconstruya el código del ejercicio 6.1 y use la estructura CASE.


lOMoAR cPSD| 32973317

6.3 Construya un código PL/SQL para mostrar la tabla de multiplicar


seleccionada por el usuario (pruebe con la tabla del 8). Cuando el contador
llegue a 12 salir del ciclo. Use un ciclo simple. Muestre en pantalla la
información como:

tabla * contador = resultado


lOMoAR cPSD| 32973317

6.4 Reconstruya el código del ejercicio 6.3 usando el ciclo WHILE.


lOMoAR cPSD| 32973317

6.5 Reconstruya el código del ejercicio 6.3 usando el ciclo FOR.


lOMoAR cPSD| 32973317

6.6 Construya un código PL/SQL que muestre los números pares del 20 al 40 en
reversa. Use el ciclo FOR.

6.7 Construya un código PL/SQL que utilizando ciclos FOR anidados genere las
siguientes parejas de números:
lOMoAR cPSD| 32973317

6.8 Construya un código PL/SQL que busque en la tabla de empleados el salario


de un empleado introducido por el usuario. Crear un ciclo que dé seis (6)
iteraciones. Durante cada iteración se quiere que el salario se divida entre tres
(3) y se muestre en pantalla el resultado. En otra sección del ciclo se desea
mostrar en pantalla el número de iteración, pero sólo mientras el resultado de
dividir el salario entre tres (3) sea >= al salario entre seis (6). Para este último
requerimiento use CONTINUE.
lOMoAR cPSD| 32973317

También podría gustarte