Advertisement
Brandford

Consultas DB HR Oracle

Apr 16th, 2014
509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.33 KB | None | 0 0
  1. /*
  2.  * PREPARACIÓN PRUEBA TALLER DE BASES DE DATOS CONSULTAS SQL EN ESQUEMA HR
  3.  */
  4.  
  5. /* 1. ESCRIBA UNA CONSULTA QUE DESPLIEGUE LA FECHA ACTUAL. ROTULE LA COLUMNA FECHA_HOY. */
  6. SELECT SYSDATE "Fecha_Hoy"
  7. FROM DUAL
  8.  
  9. /* 2. DETERMINE LA ESTRUCTURA DE TODAS LAS TABLAS DE LA BASE DE DATOS. */
  10. DESCRIBE NOMBRE_TABLA
  11.  
  12. /* 3. DETERMINE LA ESTRUCTURA DE TODAS LAS TABLAS DE LA BASE DE DATOS HR. */
  13. DESCRIBE REGIONS
  14. DESCRIBE COUNTRIES
  15. DESCRIBE LOCATIONS
  16. DESCRIBE DEPARTMENTS
  17. DESCRIBE JOBS
  18. DESCRIBE EMPLOYEES
  19. DESCRIBE JOB_HISTORY
  20.  
  21. /* 4. DESPLIEGUE EL NOMBRE, APELLIDO Y SUELDO DE LOS EMPLEADOS. */
  22. SELECT FIRST_NAME, LAST_NAME, SALARY
  23. FROM EMPLOYEES
  24.  
  25. /* 5. DESPLIEGUE EL APELLIDO Y EL SUELDO DE LOS EMPLEADOS QUE HAN GANADO MÁS DE $12,000. */
  26. SELECT LAST_NAME, SALARY
  27. FROM EMPLOYEES
  28. WHERE SALARY > 12000
  29.  
  30. /* 6. DESPLIEGUE EL APELLIDO Y EL CÓDIGO DE DEPARTAMENTO DEL EMPLEADO 176. */
  31. SELECT LAST_NAME, DEPARTMENT_ID
  32. FROM EMPLOYEES
  33. WHERE EMPLOYEE_ID = 176
  34.  
  35. /* 7. DESPLIEGUE EL APELLIDO Y SUELDO DE TODOS LOS EMPLEADOS CUYOS SUELDOS NO ESTÉN EN EL RANGO $5,000 Y $12,000 */
  36. /*SQL Standard*/
  37. SELECT LAST_NAME, SALARY
  38. FROM EMPLOYEES
  39. WHERE ((SALARY < 5000) OR  (SALARY > 12000))
  40.  
  41. /*Oracle DB*/
  42. SELECT LAST_NAME, SALARY
  43. FROM EMPLOYEES
  44. WHERE SALARY NOT BETWEEN 5000 AND 12000
  45.  
  46. /* 8. DESPLIEGUE EL APELLIDO, CÓDIGO DEL CARGO, Y FECHA DE INGRESO (HIRE DATE) PARA LOS EMPLEADOS CON APELLIDOS MATOS Y TAYLOR.
  47.       ORDENE LA CONSULTA EN ORDEN ASCENDENTE POR FECHA DE INGRESO. */
  48. SELECT LAST_NAME, JOB_ID, HIRE_DATE
  49. FROM EMPLOYEES
  50. WHERE LAST_NAME = 'Matos' OR LAST_NAME = 'Taylor'
  51. ORDER BY HIRE_DATE ASC
  52.  
  53. /* 9. DESPLIEGUE EL APELLIDO Y NÚMERO DE DEPARTAMENTO DE TODOS LOS EMPLEADOS DE LOS DEPARTAMENTOS 20 O 50 EN ORDEN ALFABÉTICO ASCENDENTE POR APELLIDO. */
  54. SELECT LAST_NAME, DEPARTMENT_ID
  55. FROM EMPLOYEES
  56. WHERE DEPARTMENT_ID = 20 OR DEPARTMENT_ID = 50
  57. ORDER BY LAST_NAME ASC
  58.  
  59. /* 10. DESPLIEGUE EL APELLIDO Y NOMBRE DE CARGO DE TODOS LOS EMPLEADOS QUE NO TENGAN UN JEFE. */
  60. SELECT LAST_NAME, JOB_TITLE
  61. FROM EMPLOYEES, JOBS
  62. WHERE MANAGER_ID IS NULL AND (EMPLOYEES.JOB_ID = JOBS.JOB_ID)
  63.  
  64. /* 11. DESPLIEGUE EL APELLIDO, SUELDO Y COMISIÓN DE TODOS LOS EMPLEADOS QUE HAYAN GANADO COMISIONES.
  65.        ORDEN LOS DATOS EN ORDEN DESCENDENTE POR SUELDO Y COMISIONES. */
  66. SELECT LAST_NAME, SALARY, COMMISSION_PCT
  67. FROM EMPLOYEES
  68. WHERE COMMISSION_PCT IS NOT NULL
  69. ORDER BY SALARY DESC, COMMISSION_PCT DESC
  70.  
  71. /* 12. ENCUENTRE EL SUELDO MÁS ALTO, EL MENOR, LA SUMA Y PROMEDIO DE SUELDOS DE TODOS LOS EMPLEADOS.
  72.        ROTULE LAS COLUMNAS CON MAYOR, MENOR, SUMA  Y PROMEDIO, RESPECTIVAMENTE. */
  73. SELECT ROUND(MAX(SALARY)) "MAYOR", ROUND(MIN(SALARY)) "MENOR", ROUND(SUM(SALARY)) "SUMA", ROUND(AVG(SALARY)) "PROMEDIO"
  74. FROM EMPLOYEES
  75.  
  76. /* 13. MODIFIQUE LA CONSULTA ANTERIOR, PARA DESPLEGAR EL SUELDO MENOR, MAYOR, SUMA Y PROMEDIO DE CADA CARGO (JOB_ID). */
  77. SELECT JOB_ID, ROUND(MAX(SALARY)) "MAYOR", ROUND(MIN(SALARY)) "MENOR", ROUND(SUM(SALARY)) "SUMA", ROUND(AVG(SALARY)) "PROMEDIO"
  78. FROM EMPLOYEES
  79. GROUP BY JOB_ID
  80.  
  81. /* 14. DESPLIEGUE LA CANTIDAD DE PERSONAS CON EL MISMO CARGO. */
  82. /*Utilizando descriptor*/
  83. SELECT JOBS.JOB_TITLE, COUNT(JOBS.JOB_TITLE) "SUMARIO"
  84. FROM EMPLOYEES, JOBS
  85. WHERE EMPLOYEES.JOB_ID = JOBS.JOB_ID
  86. GROUP BY JOBS.JOB_TITLE
  87.  
  88. /*Utilizando el código*/
  89. SELECT JOB_ID, COUNT(*) "SUMARIO"
  90. FROM EMPLOYEES
  91. GROUP BY JOB_ID
  92.  
  93. /* 15. DETERMINE LA CANTIDAD DE JEFES SIN EMPLEADOS. ROTULE LA COLUMNA COMO NRO_JEFES.
  94.    INDICACIÓN: USE LA COLUMNA MANAGER_ID PARA DETERMINAR EL NÚMERO DE JEFES. */
  95. /*Dudas*/
  96. SELECT COUNT(DISTINCT MANAGER_ID) "Numero de Jefes"
  97. FROM EMPLOYEES
  98.  
  99. /* 16. ENCUENTRE LA DIFERENCIA ENTRE EL SUELDO MAYOR Y EL MENOR, ROTULE LA COLUMNA COMO DIFERENCIA. */
  100. SELECT (MAX(SALARY) - MIN(SALARY)) "DIFERENCIA"
  101. FROM EMPLOYEES
  102.  
  103. /* 17. ENCUENTRE LA DIRECCIÓN DE TODOS LOS DEPARTAMENTOS. USE LAS TABLAS LOCATIONS Y COUNTRIES. */
  104. SELECT COUNTRIES.COUNTRY_NAME, LOCATIONS.CITY, LOCATIONS.STREET_ADDRESS, DEPARTMENTS.DEPARTMENT_NAME
  105. FROM COUNTRIES, LOCATIONS, DEPARTMENTS
  106. WHERE (COUNTRIES.COUNTRY_ID = LOCATIONS.COUNTRY_ID) AND (LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID)
  107.  
  108. /* 18. MUESTRE LA UBICACIÓN (LOCATION ID), DIRECCIÓN, CIUDAD, ESTADO O PROVINCIA, Y PAÍSEN LA SALIDA. */
  109. /*Standard SQL*/
  110. SELECT LOCATIONS.LOCATION_ID, LOCATIONS.STREET_ADDRESS, LOCATIONS.CITY, LOCATIONS.STATE_PROVINCE, COUNTRIES.COUNTRY_NAME
  111. FROM LOCATIONS, COUNTRIES
  112. WHERE COUNTRIES.COUNTRY_ID = LOCATIONS.COUNTRY_ID
  113. ORDER BY COUNTRIES.COUNTRY_NAME
  114.  
  115. /*Ejercicio Resuleto*/
  116. SELECT LOCATION_ID, STREET_ADDRESS, CITY, STATE_PROVINCE, COUNTRY_NAME
  117. FROM COUNTRIES NATURAL JOIN LOCATIONS
  118.  
  119. /* 19. DESPLIEGUE EL APELLIDO Y EL NOMBRE DE DEPARTAMENTO DE TODOS LOS EMPLEADOS. */
  120. SELECT EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, DEPARTMENTS.DEPARTMENT_NAME
  121. FROM EMPLOYEES, DEPARTMENTS
  122. WHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID
  123.  
  124. /* 20. DESPLIEGUE EL APELLIDO, NÚMERO DE CARGO, NÚMERO Y NOMBRE DE DEPARTAMENTO DE TODOS LOS EMPLEADOS QUE TRABAJAN EN LA CIUDAD DE TORONTO. */
  125. SELECT EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, JOBS.JOB_ID, JOBS.JOB_TITLE, DEPARTMENTS.DEPARTMENT_ID, DEPARTMENTS.DEPARTMENT_NAME, LOCATIONS.CITY
  126. FROM EMPLOYEES, JOBS, DEPARTMENTS, LOCATIONS
  127. WHERE LOCATIONS.CITY = 'Toronto' AND (((LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID) AND (DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID)) AND (EMPLOYEES.JOB_ID = JOBS.JOB_ID))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement