comandos sql 1. comandos sql - dml 2 os exemplos serão elaborados para o esquema de dados a seguir:...
TRANSCRIPT
![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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/1.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/2.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/3.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/4.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/5.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/6.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/7.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/8.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/9.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/10.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/11.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/12.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/13.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/14.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/15.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/16.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/17.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/18.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/19.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/20.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/21.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/22.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/23.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/24.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/25.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/26.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/27.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/28.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/29.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/30.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/31.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/32.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/33.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/34.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/35.jpg)
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,](https://reader036.vdocuments.pub/reader036/viewer/2022062312/552fc166497959413d8eadd4/html5/thumbnails/36.jpg)
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