Consultas SQL com JOIN e Subconsultas no Oracle

Classificado em Inglês

Escrito em em português com um tamanho de 3,76 KB

Exercícios de SQL: Consultas com Tabelas EMP e DEPT

Questão 1 – Nome, salário e departamento dos empregados em DALLAS

Mostrar o nome, o salário e o departamento dos empregados localizados em DALLAS.

SELECT E.ENAME, E.SAL, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND D.LOC = 'DALLAS';

OU

SELECT E.ENAME, E.SAL, D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE D.LOC = 'DALLAS';

Questão 2 – Inserir um novo departamento na tabela DEPT

Adicione um novo departamento na tabela DEPT.

INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES (50, 'SALES', 'MIAMI');

Observação: os dados para inserção eram de criação livre; o único impedimento era que o número do departamento não fosse de um já existente.

Questão 3 – Descrição do departamento e quantidade de funcionários

Listar a descrição do departamento e a quantidade de funcionários.

SELECT D.DNAME, COUNT(*) FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO GROUP BY D.DNAME;

OU

SELECT D.DNAME, COUNT(*) FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO GROUP BY D.DNAME;

Questão 4 – Nome, número e departamento de todos os funcionários

Crie uma consulta para exibir o nome, o número e o nome do departamento de todos os funcionários.

SELECT E.ENAME, E.EMPNO, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO;

OU

SELECT E.ENAME, E.EMPNO, D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO;

Questão 5 – Funcionários que recebem comissão

Crie uma consulta para exibir o nome do funcionário, o nome do departamento e a localização do departamento de todos os funcionários que recebem comissão.

SELECT E.ENAME, D.DNAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND NVL(E.COMM, 0) > 0;

OU

SELECT E.ENAME, D.DNAME, D.LOC FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE NVL(E.COMM, 0) > 0;

Questão 6 – Funcionários com a letra “A” no nome

Exiba o nome do funcionário e o nome do departamento para todos os funcionários que possuem a letra “A” em seus nomes.

SELECT E.ENAME, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND UPPER(E.ENAME) LIKE '%A%';

OU

SELECT E.ENAME, D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE UPPER(E.ENAME) LIKE '%A%';

Questão 7 – Nome e data de admissão ordenados por nome

Crie uma consulta para exibir o nome e a data de admissão de todos os funcionários, ordenada pelo nome do funcionário.

SELECT E.ENAME, E.HIREDATE FROM EMP E ORDER BY E.ENAME;

Questão 8 – Funcionários admitidos após “Blake”

Crie uma consulta para exibir o nome e a data de admissão de qualquer funcionário admitido após o funcionário “Blake”, ordenada pelo nome do funcionário.

Em um único comando:

SELECT E.ENAME, E.HIREDATE FROM EMP E WHERE E.HIREDATE > (SELECT HIREDATE FROM EMP WHERE TRIM(UPPER(ENAME)) = 'BLAKE') ORDER BY E.ENAME;

Ou em dois passos:

Primeiro, descobrir a data de admissão de Blake:

SELECT HIREDATE FROM EMP WHERE TRIM(UPPER(ENAME)) = 'BLAKE';

Depois, executar a consulta com a data obtida:

SELECT E.ENAME, E.HIREDATE FROM EMP E WHERE E.HIREDATE > TO_DATE('01/05/1981', 'DD/MM/YYYY') ORDER BY E.ENAME;

Entradas relacionadas: