Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Comandos SQL
2
Comandos SQL - DML
3
Comandos SQL - DML • 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) CREATE TABLE DEPARTAMENTO ( codigoDepartamento INT NOT NULL, nome VARCHAR(50), matriculaGerente INT, dataInicioula DATE, PRIMARY KEY (codigoDepartamento) ); CREATE TABLE EMPREGADO ( matricula INT NOT NULL, endereco VARCHAR (50), salario DECIMAL, matriculaSupervisor INT, codigoDepartamento INT, PRIMARY KEY (matricula), FOREIGN KEY (matriculaSupervisor) REFERENCES EMPREGADO(matricula), FOREIGN KEY (codigoDepartamento) REFERENCES DEPARTAMENTO(codigoDepartamento) ALTER TABLE DEPARTAMENTO ADD FOREIGN KEY (matriculaGerente) REFERENCES EMPREGADO (matricula);
4
Comandos SQL - DML • Os exemplos serão elaborados para o esquema de dados a seguir: CREATE TABLE DEPARTAMENTO ( codigoDepartamento INT NOT NULL, nome VARCHAR(50), matriculaGerente INT, dataInicioula DATE, PRIMARY KEY (codigoDepartamento) ); CREATE TABLE EMPREGADO ( matricula INT NOT NULL, endereco VARCHAR (50), salario DECIMAL, matriculaSupervisor INT, codigoDepartamento INT, PRIMARY KEY (matricula), FOREIGN KEY (matriculaSupervisor) REFERENCES EMPREGADO(matricula), FOREIGN KEY (codigoDepartamento) REFERENCES DEPARTAMENTO(codigoDepartamento) ALTER TABLE DEPARTAMENTO ADD FOREIGN KEY (matriculaGerente) REFERENCES EMPREGADO (matricula);
5
Comandos SQL - DML • Operações de manipulação: SELECT INSERT UPDATE
DELETE
6
Comandos SQL - DML • O comando SELECT: forma básica
SELECT <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
7
Comandos SQL – DML - Desafio
• Q1. Obtenha todos os atributos de todos os empregados
8
Comandos SQL – DML - Desafio
• Q1. Obtenha todos os atributos de todos os empregados SELECT * FROM empregado;
9
Comandos SQL – DML - Desafio
• Q2. Selecione as matrículas dos empregados
10
Comandos SQL – DML - Desafio
• Q2. Selecione as matrículas dos empregados SELECT matricula FROM empregado;
11
Comandos SQL – DML - Desafio
• Q3. Obtenha o salário do empregado ‘José’
12
Comandos SQL – DML - Desafio
• Q3. Obtenha o salário do empregado ‘José’ SELECT salario FROM empregado WHERE nome = 'José';
13
Comandos SQL – DML - Desafio
• Q4. Selecione todos os atributos de todos os empregados do departamento código 5
14
Comandos SQL – DML - Desafio
• Q4. Selecione todos os atributos de todos os empregados do departamento código 5 SELECT * FROM empregado WHERE codigoDepartamento = 5;
15
Comandos SQL – DML - Desafio
• 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
16
Comandos SQL – DML - Desafio
• 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
17
Comandos SQL – DML - Desafio
• 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)
18
Comandos SQL – DML - Desafio
• Q6. Selecione o nome e o endereço de todos os empregados que trabalham no departamento de ‘Produção’
19
Comandos SQL – DML - Desafio
• 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;
20
Comandos SQL – DML - Exemplos
• 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
21
Comandos SQL – DML - Exemplos
• 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';
22
Comandos SQL – DML - Exemplos
• Q8. Para cada empregado, recupere seu nome e o nome do seu supervisor
23
Comandos SQL – DML - Exemplos
• 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;
24
Comandos SQL – DML - Exemplos
- Q9. Selecione todos os atributos de todos os empregados do departamento ‘Pessoal’
25
Comandos SQL – DML - Exemplos
- 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;
26
Comandos SQL – DML - Exemplos
- Q10. Recupere os salários dos empregados
27
Comandos SQL – DML - Exemplos
- Q10. Recupere os salários dos empregados SELECT salario FROM empregado;
28
Comandos SQL – DML - Exemplos
• 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
29
Comandos SQL – DML - Exemplos
• 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;
30
Comandos SQL – DML - Exemplos
• Q12. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como trabalhador
31
Comandos SQL – DML - Exemplos
• 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';
32
Comandos SQL – DML - Exemplos
• Q13. Liste todos os nomes de projetos que envolvem o empregado ‘Silva’ como gerente do departamento que controla o projeto
33
Comandos SQL – DML - Exemplos
• 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‘;
34
Comandos SQL – DML - Exemplos
• SQL implementa a operação UNIAO da álgebra relacional. É requerido que as relaçõ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
35
Comandos SQL – DML - Exemplos
(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 alocação a, WHERE p.codigoProjeto = a.codigoProjeto AND e.matricula = a.matricula AND e.nome = 'Silva');
36
Comandos SQL - DML • Exercício:
Defina as tabelas dos slides 3 e 4 usando SQL; Crie scripts para inserir registros em todas as tabelas; 15 funcionários (4 supervisores) 5 dependentes 6 departamentos 8 projetos Testes todas as consultas que foram apresentadas em aula.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.