M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-HR

De wikiserver
Dreceres ràpides: navegació, cerca

TAULA JOB_GRADES

CREATE TABLE job_grades (
grade 		CHAR(1),
lowest_sal 	NUMBER(8,2) NOT NULL,
highest_sal	NUMBER(8,2) NOT NULL
);

ALTER TABLE job_grades
ADD CONSTRAINT jobgrades_grade_pk PRIMARY KEY (grade);

INSERT INTO job_grades VALUES ('A', 1000, 2999);
INSERT INTO job_grades VALUES ('B', 3000, 5999);
INSERT INTO job_grades VALUES ('C', 6000, 9999);
INSERT INTO job_grades VALUES ('D', 10000, 14999);
INSERT INTO job_grades VALUES ('E', 15000, 24999);
INSERT INTO job_grades VALUES ('F', 25000, 40000);

COMMIT;


1) Escriba una consulta para que el departamento de recursos humanos genere las direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES . Muestre el ID de ubicación, dirección, ciudad, estado o provincia y país en la salida. Utilice NATURAL JOIN para producir los resultados.

  LOCATION_ID  STREET_ADDRESS              CITY       STATE_PROVINCE    COUNTRY_NAME
  -----------  --------------------------  ---------  ----------------  ------------------------
1        1000  1297 Via Cola di Rie	   Roma	      (null)            Italy
2        1100  93091 Calle della Testa	   Venice     (null)	        Italy
3        1200  2017 Shinjuku-ku	           Tokyo      Tokyo Prefecture	Japan
4        1300  9450 Kamiya-cho	           Hiroshima  (null)            Japan
5        1400  2014 Jabberwocky Rd	   Southlake  Texas	        United States of America
...

2) El departamento de recursos humanos necesita un informe de todos los empleados. Escriba una consulta para mostrar el apellido, número y nombre de departamento de todos los empleados.

  LAST_NAME   DEPARTMENT_ID  DEPARTMENT_NAME
  ----------  -------------  ---------------
1 Whalen	         10  Administration
2 Fay	                 20  Marketing
3 Hartstein	         20  Marketing
4 Tobias	         30  Purchasing
5 Colmenares	         30  Purchasing
...

3) El departamento de recursos humanos necesita un informe de todos los empleados de Toronto. Muestre el apellido, cargo, número y nombre de departamento de todos los empleados que trabajan en Toronto.

  LAST_NAME  JOB_ID  DEPARTMENT_ID  DEPARTMENT_NAME
  ---------  ------  -------------  ---------------
1 Hartstein  MK_MAN	        20  Marketing
2 Fay        MK_REP	        20  Marketing

4) Cree un informe para mostrar el apellido y número de empleado junto con el apellido y número de gestor de sus gestores. Etiquete las columnas como Employee, Emp#, Manager y Mgr#, respectivamente.

  Employee  EMP#  Manager    Mgr#
  --------  ----  ---------  ----
1 Kumar	     173  Cambrault   148
2 Bates	     172  Cambrault   148
3 Smith	     171  Cambrault   148
4 Fox	     170  Cambrault   148
5 Bloom	     169  Cambrault   148
...

5) Modifique la consulta 4) para mostrar todos los empleados, incluido King, que no tienen gestor. Ordene los resultados por número de empleado.

  Employee  EMP#  Manager    Mgr#
  --------  ----  ---------  ------
1 King	     100  (null)     (null)		
2 Kochhar    101  King	        100
3 De Haan    102  King	        100
4 Hunold     103  De Haan	102
5 Ernst	     104  Hunold	103
...

7) El departamento de recursos humanos necesita un informe sobre los salarios y grados de cargo. Para familiarizarse con la tabla JOB_GRADES , en primer lugar, muestre la estructura de la tabla JOB_GRADES . A continuación, cree una consulta que muestre el apellido, cargo, nombre de departamento, salario y grado de todos los empleados.

DESC JOB_GRADES
Nombre       Nulo      Tipo      
-----------  --------  --------- 
GRADE_LEVEL  NOT NULL  CHAR(1)   
LOWEST_SAL             NUMBER(6) 
HIGHEST_SAL            NUMBER(6) 
  LAST_NAME  JOB_ID   DEPARTMENT_NAME  SALARY  GRADE_LEVEL
  ---------  -------  ---------------  ------  -----------
1 King	     AD_PRES  Executive	       24000   E
2 Kochhar    AD_VP    Executive	       17000   E
3 De Haan    AD_VP    Executive	       17000   E
4 Russell    SA_MAN   Sales	       14000   D
5 Partners   SA_MAN   Sales	       13500   D
...

Si desea superarse a sí mismo, complete los siguientes ejercicios:

8) El departamento de recursos humanos desea determinar los nombres de todos los empleados contratados después de Davies. Cree una consulta para mostrar el nombre y la fecha de contratación de cualquier empleado contratado después del empleado Davies.

  LAST_NAME  HIRE_DATE
  ---------  ---------
1 Kochhar    21/09/05
2 Hunold     03/01/06
3 Ernst	     21/05/07
4 Austin     25/06/05
5 Pataballa  05/02/06
...

9) El departamento de recursos humanos necesita buscar el nombre y la fecha de contratación de todos los empleados contratados antes que sus gestores, junto con el nombre y fecha de contratación del gestor. Guarde el script en un archivo denominado lab_06_09.sql.

  LAST_NAME  HIRE_DATE  LAST_NAME_1  HIREDATE_1
  ---------  ---------  -----------  ----------
1 Kaufling   01/05/03	King	     17/06/03
2 Raphaely   07/12/02	King	     17/06/03
3 De Haan    13/01/01	King	     17/06/03
4 Higgins    07/06/02	Kochhar	     21/09/05
5 Baer	     07/06/02	Kochhar	     21/09/05
...