Resolução de Exercícios de SQL no Oracle utilizando o Schema HR – Parte 01

Correção de exercícios dados em aula, utilizando o Schema HR do Oracle:

Resolução em SQL:

1 – Selecione todos os ids, nomes e sobremedos de empregados,
que estajam nas faixas de salários de 0 a 2000 e maiores ou iguais a 5000.
De 3 tipos de consultas para resolver esse problema)

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY BETWEEN 0 AND 2000
OR SALARY >= 5000

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE (SALARY >= 0 AND SALARY <= 2000) OR SALARY >= 5000

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY NOT BETWEEN 2001 AND 4999

2 – Selecione todos os ids e nomes de departamentos,
o id do gerente do departamento que estejam no id de locais entre 1500 a 2000;

SELECT DEPARTMENT_ID, DEPARTMENT_NAME,
MANAGER_ID, LOCATION_ID
FROM DEPARTMENTS
WHERE LOCATION_ID BETWEEN 1500 AND 2000;

3 – Selecione todos os nomes de departamentos e nomes dos gerentes de
departamentos onde a cidade de localização seja Sao Paulo
faça pela antiga e nova sintaxa. Se possível, resolva também em algebra relacional)

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME,
L.CITY
FROM DEPARTMENTS D, EMPLOYEES E, LOCATIONS L
WHERE D.MANAGER_ID = E.EMPLOYEE_ID
AND D.LOCATION_ID = L.LOCATION_ID
AND L.CITY = ‘Sao Paulo’

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME,
L.CITY
FROM DEPARTMENTS D
INNER JOIN EMPLOYEES E
ON D.MANAGER_ID = E.EMPLOYEE_ID
INNER JOIN LOCATIONS L
ON D.LOCATION_ID = L.LOCATION_ID
WHERE L.CITY = ‘Sao Paulo’

4 – Selecione todos os ids, nomes e sobrenome de empregados que possuem salario
maior que 5000 (Dê duas soluções para este problema.
Se possível, resolva também em algebra relacional)

WHERE SALARY > 5000

WHERE SALARY NOT BETWEEN 0 AND 4999

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE NOT SALARY < 5000

5 – Selecione todos ids, nomes e sobrenomes (como um único campo – nome completo)
de empregados, a data de admissao (hire date),data de inicio e fim (end_date)
dos determinados serviços (jobs). Obs: um empregado pode ter trabalhado em
mais de um servico em um período de tempo; (Dê 2 soluções para esse problema.
Se possível, resolva também em algebra relacional)

SELECT E.EMPLOYEE_ID,
FIRST_NAME || ‘ ‘ ||LAST_NAME
AS NomeCompleto,
E.HIRE_DATE, JH.START_DATE, JH.END_DATE,
JH.JOB_ID
FROM EMPLOYEES E, JOB_HISTORY JH
WHERE E.EMPLOYEE_ID = JH.EMPLOYEE_ID(+)
ORDER BY E.EMPLOYEE_ID

SELECT E.EMPLOYEE_ID,
FIRST_NAME || ‘ ‘ ||LAST_NAME
AS NomeCompleto,
E.HIRE_DATE, JH.START_DATE, JH.END_DATE,
JH.JOB_ID
FROM EMPLOYEES E
LEFT JOIN JOB_HISTORY JH
ON E.EMPLOYEE_ID = JH.EMPLOYEE_ID

6 – Selecione todos o nome da região, o nome do pais que os nomes de paises
iniciem com as letras A,B,J (Dê 2 soluções para esse problema.
Se possível, resolva também em algebra relacional)

SELECT R.REGION_NAME, C.COUNTRY_NAME
FROM REGIONS R
INNER JOIN COUNTRIES C
ON R.REGION_ID = C.REGION_ID
WHERE C.COUNTRY_NAME LIKE ‘A%’
OR C.COUNTRY_NAME LIKE ‘B%’
OR C.COUNTRY_NAME LIKE ‘J%’

SELECT R.REGION_NAME, C.COUNTRY_NAME
FROM REGIONS R
NATURAL JOIN COUNTRIES C
WHERE C.COUNTRY_NAME LIKE ‘A%’
OR C.COUNTRY_NAME LIKE ‘B%’
OR C.COUNTRY_NAME LIKE ‘J%’

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s