Prática de Consultas SQL: Exercícios Resolvidos

Classified in Training and Employment Advise

Written on in English with a size of 3.68 KB

Consultas de Seleção e Ordenação de Dados

  • Liste todas as informações de uma tabela (no caso DEPARTMENTS):
    SELECT * FROM DEPARTMENTS;
  • Liste todos os empregados que têm um salário entre 10.000 e 20.000 (utilize os métodos BETWEEN e AND):
    SELECT * FROM EMPLOYEES WHERE SALARY BETWEEN 10000 AND 20000;
    SELECT * FROM EMPLOYEES WHERE SALARY > 10000 AND SALARY < 20000;
  • Liste os números e nomes dos departamentos ordenados por nome do departamento:
    SELECT DEPARTMENT_ID, DEPARTMENT_NAME FROM DEPARTMENTS ORDER BY DEPARTMENT_NAME;
  • Liste todos os tipos diferentes de funções desempenhadas pelos empregados:
    SELECT DISTINCT JOB_ID FROM EMPLOYEES;
  • Liste a informação detalhada dos empregados dos departamentos 10 e 20 por ordem alfabética do nome:
    SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID IN (10, 20) ORDER BY FIRST_NAME;
  • Liste os nomes e funções de todos os empregados de escritório (SH_CLERK) do departamento 50:
    SELECT FIRST_NAME, JOB_ID FROM EMPLOYEES WHERE JOB_ID = 'SH_CLERK' AND DEPARTMENT_ID = 50;
  • Apresente todos os nomes de empregados que tenham "sh" ou "th":
    SELECT FIRST_NAME FROM EMPLOYEES WHERE FIRST_NAME LIKE '%sh%' OR FIRST_NAME LIKE '%th%';

Cálculos, Condições e Filtros Avançados

  • Liste o nome, função e salário para todos os empregados que tenham um chefe (mgr):
    SELECT FIRST_NAME, JOB_ID, SALARY FROM EMPLOYEES WHERE MANAGER_ID IS NOT NULL;
  • Apresente o nome e a remuneração total (14 vezes o salário) mais a comissão para todos os empregados:
    SELECT FIRST_NAME, (SALARY * 14) + COMMISSION_PCT AS Remuneracao FROM EMPLOYEES;
  • Apresente todos os empregados que foram admitidos durante 1997:
    SELECT FIRST_NAME, DEPARTMENT_ID, HIRE_DATE FROM EMPLOYEES WHERE HIRE_DATE LIKE '%97';
  • Liste o nome, salário anual (12 vezes o salário mensal) e comissão para todo o pessoal de vendas (SA_REP) cujo salário mensal for maior que a comissão:
    SELECT FIRST_NAME, SALARY * 12 AS Sal_anual, COMMISSION_PCT FROM EMPLOYEES WHERE SALARY > COMMISSION_PCT AND JOB_ID = 'SA_REP';

Funções Agregadas e Agrupamentos

  • Encontre o salário mais baixo de todos os empregados:
    SELECT MIN(SALARY) FROM EMPLOYEES;
  • Encontre o salário mais baixo, mais alto e médio de todos os empregados:
    SELECT MIN(SALARY), MAX(SALARY), AVG(SALARY) FROM EMPLOYEES;
  • Determine o salário mais alto e mais baixo de cada tipo de função:
    SELECT JOB_ID, MAX(SALARY), MIN(SALARY) FROM EMPLOYEES GROUP BY JOB_ID;
  • Determine quantos empregados têm a função SA_MAN:
    SELECT COUNT(*) FROM EMPLOYEES WHERE JOB_ID = 'SA_MAN';
  • Determine o salário médio e a remuneração total média (14 vezes o salário mais a comissão) para cada tipo de função. Não se esqueça que os vendedores ganham comissão:
    SELECT JOB_ID, AVG(SALARY), AVG(SALARY * 14 + NVL(COMMISSION_PCT, 0)) FROM EMPLOYEES GROUP BY JOB_ID;
  • Determine a diferença entre o salário mais alto e mais baixo:
    SELECT MAX(SALARY) - MIN(SALARY) FROM EMPLOYEES;

Related entries: