A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Comandos SQL.

Apresentações semelhantes


Apresentação em tema: "Comandos SQL."— Transcrição da apresentação:

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.


Carregar ppt "Comandos SQL."

Apresentações semelhantes


Anúncios Google