Consultas SQL Oracle Simples 5 | Principiantes

La revolucionaria base de datos en la nube de Oracle ofrece funciones de autogestión, autoprotección y autorreparación, diseñadas para eliminar las tareas manuales de gestión de datos propensas a error. Despliegue fácilmente una nueva o mueva el OLTP existente y el almacenamiento de datos a la nube. La base de datos en la nube segura, inteligente y de alta disponibilidad le permite obtener más valor de sus datos para hacer crecer su negocio.

1.- Visualice el apellido, nombre e email de los empleados del departamento de Finanzas. Muestre el apellido en mayúsculas, el nombre en letra capital y el email en minúsculas.

SELECT UPPER(LAST_NAME), INITCAP(FIRST_NAME), LOWER(EMAIL) FROM EMPLOYEES WHERE DEPARTMENT_ID=100;


2.- Visualice en pantalla el siguiente mensaje para los empleados del departamento de Finanzas: “Hola, nombre apellido. Su salario es salario”


SELECT 'Hola, '||FIRST_NAME||' '||LAST_NAME||'. Su salario es '||SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID=100;


3.- Obtener el número de años que los empleados del departamento de Finanzas está trabajando en la empresa. Ordenar desde el empleado con menor cantidad de años al mayor.


SELECT LAST_NAME, FIRST_NAME, TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12) AS "YEARS IN THE COMPANY" FROM EMPLOYEES WHERE DEPARTMENT_ID=100 ORDER BY TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12) ASC;


4.- Aumentar en 1 el valor de los códigos postales almacenados en la tabla Locations. Mostrar el valor anterior y el valor actual.


SELECT CITY, POSTAL_CODE, POSTAL_CODE+1 AS "SUMA 1" FROM LOCATIONS WHERE COUNTRY_ID='US';


5.- Obtener el número de empleados que están a cargo de cada uno de los jefes departamentales.


SELECT D.DEPARTMENT_NAME AS "DEPARTAMENTO", COUNT(E.DEPARTMENT_ID) AS "EMPLEADOS" FROM EMPLOYEES E JOIN DEPARTMENTS D ON D.DEPARTMENT_ID=E.DEPARTMENT_ID GROUP BY D.DEPARTMENT_NAME;


6.- Mostrar cuánto gasta cada departamento anualmente en salarios, pero sólo para los departamentos que superan los $1,000,000

SELECT DISTINCT DEPARTMENT_ID, SUM(SALARY)*12 AS "SALARIO ANUAL" FROM EMPLOYEES HAVING SUM(SALARY)*12>1000000 GROUP BY DEPARTMENT_ID;

7.- Mostrar una tabla en la que, de acuerdo al código de los cargos que hay en la empresa, se muestre. El número de empleados (#), el salario mínimo (Mínimo), el salario promedio sin decimales (Promedio), la mediana (Mediana), el salario Máximo (Máximo) y la desviación estándar (Desviación). Debe estar ordenado por el código de trabajo de forma alfabética.

SELECT DISTINCT JOB_ID, COUNT(EMPLOYEE_ID) AS "EMPLEADOS", MIN(SALARY) AS "SALARIO MINIMO", ROUND(AVG(SALARY)) AS "PROMEDIO", MEDIAN(SALARY) AS "MEDIANA", MAX(SALARY) AS "SALARIO MAXIMO", STDDEV(SALARY) AS "DESVIACION" FROM EMPLOYEES GROUP BY JOB_ID ORDER BY JOB_ID ASC;


8.- Mostrar el apellido y la comisión de los empleados cuyos apellidos comienzan con la letra “B”. Si el empleado no recibe comisión, mostrar el mensaje “NO APLICABLE”. Ordenar alfabéticamente por apellido.


SELECT LAST_NAME, NVL(TO_CHAR(COMMISSION_PCT), 'NO APLICABLE') AS "COMMISSION" FROM EMPLOYEES WHERE LAST_NAME LIKE 'B%' ORDER BY LAST_NAME ASC;


9.- Mostrar el apellido, el salario y los ingresos de los empleados cuyos apellidos comienzan con “B”. Los ingresos equivalen al salario más la comisión establecida para cada empleado. Redondear los valores numéricos a cero decimales


SELECT LAST_NAME, SALARY,
NVL(TO_CHAR(ROUND(SALARY+SALARY*COMMISSION_PCT)), SALARY) AS "INGRESOS" FROM EMPLOYEES WHERE LAST_NAME LIKE 'B%';


10.- Mostrar los nuevos salarios de los empleados propuestos para tres cargos diferentes. Para PU_CLERK el aumento es del 10%, para SH_CLERK es del 15% y ST_CLERK es del 20%.


SELECT JOB_ID, SALARY, CASE JOB_ID WHEN 'PU_CLERK' THEN SALARY+SALARY*0.1 WHEN 'SH_CLERK' THEN SALARY+SALARY*0.15 WHEN 'ST_CLERK' THEN SALARY+SALARY*0.2 ELSE SALARY END "NUEVO SALARIO" FROM EMPLOYEES WHERE JOB_ID IN ('PU_CLERK', 'SH_CLERK', 'ST_CLERK');


11.- Mostrar el nombre del país para cada uno de los códigos. Ejemplo si es Br mostrar Brasil, Au mostrar Australia, etc.


SELECT COUNTRY_ID, COUNTRY_NAME FROM COUNTRIES;


12.- Mostrar el nombre y apellido del empleado (una sola columna), la fecha de inicio de labores, el salario y el nuevo salario propuesto para los empleados del departamento de Finanzas en base a: 
  • Si el empleado fue contratado antes del 2002, el aumento es del 15%
  • Si el empleado fue contratado antes del 2005, el aumento es del 10%
  • Si el empleado fue contratado antes del 2001, el aumento es del 5%
  • Caso Contrario mantener el sueldo.



SELECT FIRST_NAME||' '||LAST_NAME, HIRE_DATE, SALARY, CASE WHEN TO_NUMBER(TO_CHAR(HIRE_DATE, 'YYYY'))<2002 THEN SALARY+SALARY*0.15 WHEN TO_NUMBER(TO_CHAR(HIRE_DATE, 'YYYY'))<2005 THEN SALARY+SALARY*0.1 WHEN TO_NUMBER(TO_CHAR(HIRE_DATE, 'YYYY'))<2005 THEN SALARY+SALARY*0.05 ELSE SALARY END "NUEVO SALARIO" FROM EMPLOYEES WHERE DEPARTMENT_ID=100;

Comentarios

Entradas populares de este blog

Paginación de Memoria

Principales herramientas del Banco Central del Ecuador para reducir la oferta de dinero