36
Comandos SQL 1

Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

Embed Size (px)

Citation preview

Page 1: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

1

Comandos SQL

Page 2: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

2

Comandos SQL - DML

Page 3: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

3

• Os exemplos serão elaborados para o esquema de dados a seguir:

EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor, codigoDepartamento)

DEPARTAMENTO (codigoDepartamento, nome, matriculaGerente, dataInicio)

PROJETO (codigoProjeto, nome, local, codigoDepartamento)

ALOCACAO (matricula, codigoProjeto, horas)

DEPENDENTE (codigoDependente, matricula, nome, sexo)

Comandos SQL - DML

Page 4: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

4

Comandos SQL - DML

• Os exemplos serão elaborados para o esquema de dados a seguir:

Page 5: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

5

• Operações de manipulação:

- SELECT

- INSERT

- UPDATE

- DELETE

Comandos SQL - DML

Page 6: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

6

• O comando SELECT: forma básicaSELECT <lista atributos>

FROM <lista tabelas>

WHERE <condição>

• O resultado de qualquer comando SELECT é uma tabela- O campo FROM realiza produto cartesiano das

tabelas relacionadas- WHERE deve trazer as condições de junção

Comandos SQL - DML

Page 7: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

7

• Q1. Obtenha todos os atributos de todos os empregados

Comandos SQL – DML - Desafio

Page 8: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

8

• Q1. Obtenha todos os atributos de todos os empregadosSELECT *

FROM empregado;

Comandos SQL – DML - Desafio

Page 9: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

9

Comandos SQL – DML - Desafio

• Q2. Selecione as matrículas dos empregados

Page 10: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

10

• Q2. Selecione as matrículas dos empregadosSELECT matricula FROM empregado;

Comandos SQL – DML - Desafio

Page 11: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

11

• Q3. Obtenha o salário do empregado ‘José’

Comandos SQL – DML - Desafio

Page 12: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

12

• Q3. Obtenha o salário do empregado ‘José’SELECT salario FROM empregado WHERE nome = 'José';

Comandos SQL – DML - Desafio

Page 13: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

13

• Q4. Selecione todos os atributos de todos os empregados do departamento código 5

Comandos SQL – DML - Desafio

Page 14: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

14

• Q4. Selecione todos os atributos de todos os empregados do departamento código 5SELECT * FROM empregado WHERE codigoDepartamento = 5;

Comandos SQL – DML - Desafio

Page 15: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

15

• Q5. Faça o produto cartesiano, seguido de projeção de Empregados X Departamento retornando a matrícula do empregado e o nome do departamento

Comandos SQL – DML - Desafio

Page 16: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

16

• Q5. Faça o produto cartesiano, seguido de projeção de Empregados X Departamento retornando a matrícula do empregado e o nome do departamento

SELECT empregado.matricula,

departamento.nome

FROM empregado,

departamento;

A cláusula FROM realiza o produto cartesiano- Departamento.nome é especificado para não haver confusão

com o atributo nome de empregado

- Empregados são relacionados com outros departamentos além daquele em que trabalham

Comandos SQL – DML - Desafio

Page 17: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

17

• Q5. Faça o produto cartesiano, seguido de projeção de Empregados X Departamento retornando a matrícula do empregado e o nome do departamento

SELECT empregado.matricula,

departamento.nome

FROM empregado,

departamento

WHERE empregado.codigoDepertamento = departamento.codigoDepartamento;

A cláusula FROM realiza o produto cartesiano- Departamento.nome é especificado para não haver confusão

com o atributo nome de empregado- Empregados são relacionados com outros departamentos além

daquele em que trabalham (problema resolvido no WHERE)

Comandos SQL – DML - Desafio

Page 18: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

18

• Q6. Selecione o nome e o endereço de todos os empregados que trabalham no departamento de ‘Produção’

Comandos SQL – DML - Desafio

Page 19: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

19

• Q6. Selecione o nome e o endereço de todos os empregados que trabalham no departamento de produção

SELECT e.nome,

e.endereco

FROM empregado e,

departamento d

WHERE d.nome = 'Produção'

AND d.codigoDepartamento = e.codigoDepartamento;

Comandos SQL – DML - Desafio

Page 20: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

20

• Q7. Para cada projeto em ‘Fortaleza’, liste o código do projeto, o departamento que controla o projeto e o nome do gerente com endereço e salário

Comandos SQL – DML - Exemplos

Page 21: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

21

• Q7. Para cada projeto em ‘Fortaleza’, liste o código do projeto, o departamento que controla o projeto e o nome do gerente com endereço e salário

SELECT p.codigoProjeto, d.nome, e.nome, e.endereco, e.salario FROM projeto p, departamento d, empregado e WHERE p.codigoDepartamento = d.codigoDepartamento AND d.matriculaGerente = e.matricula AND p.local = 'Fortaleza';

Comandos SQL – DML - Exemplos

Page 22: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

22

• Q8. Para cada empregado, recupere seu nome e o nome do seu supervisor

Comandos SQL – DML - Exemplos

Page 23: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

23

• Q8. Para cada empregado, recupere seu nome e o nome do seu supervisor

SELECT e.nome, s.nome FROM empregado e s WHERE s.matricula = e.matriculaSupervisor;

Comandos SQL – DML - Exemplos

Page 24: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

24

- Q9. Selecione todos os atributos de todos os empregados do departamento ‘Pessoal’

Comandos SQL – DML - Exemplos

Page 25: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

25

- Q9. Selecione todos os atributos de todos os empregados do departamento ‘Pessoal’

SELECT *

FROM empregado e,

departamento d

WHERE d.nome = 'Pessoal'

AND d.codigoDepartamento =

e.codigoDepartamento;

Comandos SQL – DML - Exemplos

Page 26: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

26

- Q10. Recupere os salários dos empregados

Comandos SQL – DML - Exemplos

Page 27: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

27

- Q10. Recupere os salários dos empregados

SELECT salario FROM empregado;

Comandos SQL – DML - Exemplos

Page 28: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

28

• Algumas vezes surgem duplicatas como resposta a uma query. Podemos eliminá-las usando o comando DISTINCT na cláusula SELECT

- Q11. Selecione os diferentes salários pagos pela empresa aos empregados

Comandos SQL – DML - Exemplos

Page 29: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

29

• Algumas vezes surgem duplicatas como resposta a uma query. Podemos eliminá-las usando o comando DISTINCT na cláusula SELECT

- Q11. Selecione os diferentes salários pagos pela empresa aos empregados

SELECT DISTINCT salario

FROM empregado;

Comandos SQL – DML - Exemplos

Page 30: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

30

• Q12. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como trabalhador

Comandos SQL – DML - Exemplos

Page 31: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

31

• Q12. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como trabalhador

SELECT p.nome FROM projeto p, alocação a, empregado e WHERE p.codigoProjeto = a.codigoProjeto AND e.matricula = a.matricula AND e.nome = 'Silva';

Comandos SQL – DML - Exemplos

Page 32: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

32

• Q13. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como gerente do departamento que controla o projeto

Comandos SQL – DML - Exemplos

Page 33: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

33

• Q13. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como gerente do departamento que controla o projeto

SELECT p.nome FROM projeto p, departamento d, empregado e WHERE d.codigoDepartamento = p.codigoDepartamento

AND d.matriculaGerente = e.matricula AND e.nome = 'Silva‘;

Comandos SQL – DML - Exemplos

Page 34: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

34

• SQL implementa a operação UNIAO da álgebra relacional. É requerido que asrelações sejam compatíveis de união

- Q14. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como trabalhador ou como gerente do departamento que controla o projeto

Comandos SQL – DML - Exemplos

Page 35: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

35

- Q14.

(SELECT p.nome

FROM projeto p,

departamento d,

empregado e

WHERE d.codigoDepartamento = p.codigoDepartamento

AND d.matriculaGerente = e.matricula

AND e.nome = 'Silva')

UNION (SELECT p.nome

FROM projeto p,

alocação a,

empregado e

WHERE p.codigoProjeto = a.codigoProjeto

AND e.matricula = a.matricula

AND e.nome = 'Silva');

Comandos SQL – DML - Exemplos

Page 36: Comandos SQL 1. Comandos SQL - DML 2 Os exemplos serão elaborados para o esquema de dados a seguir: EMPREGADO (matricula, nome, endereco, salario, matriculaSupervisor,

36

• Exercício:

1. Defina as tabelas dos slides 3 e 4 usando SQL;

2. Crie scripts para inserir registros em todas as tabelas;• 15 funcionários (4 supervisores)• 5 dependentes• 6 departamentos• 8 projetos

3. Testes todas as consultas que foram apresentadas em aula.

Comandos SQL - DML