Bases de Datos - Ayuda - Bloques de Codigo (PL/SQL)

 
Vista:
Imágen de perfil de Alexandru Gabriel
Val: 5
Ha disminuido su posición en 4 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Ayuda - Bloques de Codigo (PL/SQL)

Publicado por Alexandru Gabriel (2 intervenciones) el 27/10/2020 19:23:37
Buenas amigos,

Soy nuevo en la programacion y en la universidad tengo unas tareas que realizar en bloques de codigo en PL/SQL.

Agradeceria si podrian echarme una mano.

Tengo la tabla EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID, BONUS)

Los requerimientos de las consultas son (En bloques anomimos las siguientes funcionalidades):

1. Date de alta en la table EMPLOYEES con salario de 30.000$
2. Accidentalmente introduce nuevamente tus datos pero con diferente ID.
3. Elimina el segundo registro e incrementa un 15% tu salario.
4.Con la instruccion MERGE actualiza la tabla de EMPLOYEES con el nuevo empleado
5. Modifica la tabla EMPLOYEES por intermedio del atributo MONTHLY_WAYE Number(5)
6. Mostrar nombre, apellidos y su salario.
7. Incrementar y actualizar los salarios un 10% del departamento de administracion y mostrar el numero de empleados beneficiados.
8. Instrucciones TCL (Commit, RollBack, SavePoint).


Agradeceria vuestra ayuda si podriais indicarme por donde podria empezar solucionando estos puntos.

Gracias de antemano,
Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda - Bloques de Codigo (PL/SQL)

Publicado por anonymous (41 intervenciones) el 02/11/2020 19:02:51
Es ir analizando que piden en cada uno de los puntos e ir construyendo la instrucción SQL que devuelva lo que preguntan

Para el primer caso sería un query como este:

SELECT HIRE_DATE FROM HR.EMPLOYEES WHERE SALARY > 30000;

Que al ejecutarle no devuelve registros, ya que no hay empleados con salario superior a 30000, pues el máximo en la tabla es de 24000

Para el segundo caso sería un query como este:

INSERT INTO HR.EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
VALUES (598, 'Steven','King','SKING','515.123.4567','17/06/2003','AD_PRES',24000,NULL,NULL,90);

Desde luego esto genera error de clave violada, puesto que no basta con modificar el EMPLOYEE_ID, sinó además el EMAIL, ya que este está definido como Unique, luego no es posible hacer eso que te piden, de ingresar solo modificando el ID

El tercero son dos querys como estos:

DELETE FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 101;

Pero que desde luego te genera error por integridad referencial, ya que esta estructura de empleados tiene relación con otras tablas y habría que ir a borrar primero a las demás.

Y así con los demás, piensa piensa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alexandru Gabriel
Val: 5
Ha disminuido su posición en 4 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Ayuda - Bloques de Codigo (PL/SQL)

Publicado por Alexandru Gabriel (2 intervenciones) el 03/11/2020 19:59:25
Muchas gracias Jorge, al final lo he conseguido.

Esa parte es relativamente sencilla de implementar pero queria en bloques anonimos con declaraciones y alli me he bloqueado un poco pero al final lo he conseguido terminar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar