Monitoria GDI Aula Prática
description
Transcript of Monitoria GDI Aula Prática
![Page 1: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/1.jpg)
1
Monitoria GDIAula Prática
Ambiente de Desenvolvimento
![Page 2: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/2.jpg)
2
Roteiro• Linguagem SQL• Ambiente de Desenvolvimento• Exemplo• Consultas simples
![Page 3: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/3.jpg)
3
SQL• DML – Linguagem de Manipulação de Dados• Linguagem de pesquisa declarativa para banco
de dados relacional
![Page 4: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/4.jpg)
4
IDE SQL• Durante TODA a disciplina, utilizaremos a IDE
(Ambiente de Desenvolvimento Integrado) nativa do Oracle: SQL PLUS
• Existem muitas outras ferramentas para executar consultas e gerenciar os dadoso PL/SQL Developer (Oracle SQL Developer), Visual Studio, pgAdmin,
plugins, etc.o Essas ferramentas fornecem ambientes gráficos de fácil utilização
![Page 5: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/5.jpg)
5
Mas por que utilizar o SQL
PLUS?
![Page 6: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/6.jpg)
6
SQL Plus• Ferramenta didática• Fácil utilização• Semelhante ao MS-DOS• Será o ambiente utilizado nas provas práticas• Na prova escrita, será só você, a caneta e o papel
![Page 7: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/7.jpg)
7
Estudo de caso• Pegar arquivo GDI.zip em
www.cin.ufpe.br/~fmbl/gdi• Descompactar arquivo:
o criacaoTabelas.SQLo povoamentoBD.SQLo Modelo Lógico
• Modelo Logico.jpgo Modelo Conceitual
• Modelo Conceitual.jpg
![Page 8: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/8.jpg)
8
Estudo de caso• Primeiros passos…
o Abrir o SQL Pluso Inserir os dados enviados por e-mail pelo Helpdesko Ao entrar pela primeira vez, será pedido para alterar a senhao IMPORTANTE: o usuário e senha é o mesmo para todos do
grupo. Então, quando alterar, utilize uma senha comum com todos do grupo.
![Page 9: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/9.jpg)
9
Para começar• Criar as tabelas
o Executar script em criacaoTabelas.SQLo @”caminho-do-arquivo/criacaoTabelas.SQL”
• Popular base de dadoso Executar script em povoamento.SQLo @”caminho_do_arquivo/povoamento.SQL”
Observação: apenas uma pessoa por equipe realize essas tarefas para evitar exceções.
![Page 10: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/10.jpg)
10
• Alguns comandos úteiso SELECT * FROM tabs;o DESCRIBE nometabela ou DESC nometabela;o SELECT * FROM user_triggers;o SELECT * FROM user_procedures;o SELECT * FROM user_sequences;o SHOW errors;o SET serveroutput on
Para começar
![Page 11: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/11.jpg)
11
Para começar• Copiar/Colar dentro do SQL Plus:
o Selecione o que você deseja copiar com o botão esquerdo do mouse, mantenha-o pressionado e clique com o botão direito na tela do SQL Plus.
![Page 12: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/12.jpg)
12
Algumas consultas…
![Page 13: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/13.jpg)
13
Modelo Conceitual
![Page 14: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/14.jpg)
14
Modelo Lógico
![Page 15: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/15.jpg)
15
SQL• Estrutura básica de uma consulta SQL
SELECT Coluna1[,Coluna2[,Coluna3[,...]]]FROM Tabela1[,Tabela2[,...]]WHERE Condição
![Page 16: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/16.jpg)
16
SQL• Estrutura genérica de uma consulta SQL
SELECT [DISTINCT|ALL] {*|[Tabela.]Coluna1 [AS Alias1]
[[Tabela.]Coluna2 [AS Alias2] [,...]]}FROM Tabela1[,Tabela2[,...]][WHERE {Condição Simples|Condição de Sub-consulta}][ORDER BY Coluna1 [ASC|DESC] [,Coluna2 [ASC|DESC]
[, ... ]]][GROUP BY Coluna1 [,Coluna2[,...]] [HAVING
Condição]][{UNION|INTERSECT|EXCEPT} SELECT ...]
![Page 17: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/17.jpg)
17
Exercício 1• Selecione a matrícula e o nome de todas as
mulheres, ordenando-as por ordem alfabética.
![Page 18: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/18.jpg)
18
Exercício 1• Selecione a matrícula e o nome de todas as
mulheres, ordenando-as por ordem alfabética.SELECT nome, matricula_pessoa
FROM PessoaWHERE Sexo = 'M'ORDER BY nome;
![Page 19: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/19.jpg)
19
Exercício 1• Selecione a matrícula e o nome de todas as
mulheres, ordenando-as por ordem alfabética.
• Agora, faça a mesma consulta exibindo apenas aquelas que são professoras
SELECT nome, matricula_pessoaFROM PessoaWHERE Sexo = 'M'ORDER BY nome;
![Page 20: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/20.jpg)
20
Exercício 1• Selecione a matrícula e o nome de todas as
mulheres, ordenando-as por ordem alfabética.
• Agora, faça a mesma consulta exibindo apenas aquelas que são professoras
SELECT nome, matricula_pessoaFROM PessoaWHERE Sexo = 'M'ORDER BY nome;
SELECT nome, matricula_pessoaFROM pessoa, professorWHERE matricula_pessoa = matricula_professorAND Sexo = 'M'ORDER BY nome;
![Page 21: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/21.jpg)
21
Exercício 3• Quais são as disciplinas que o professor
'Sirenio Arruda’ está ministrando atualmente?
![Page 22: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/22.jpg)
22
Exercício 3• Quais são as disciplinas que o professor
'Sirenio Arruda’ está ministrando atualmente?
SELECT M.codigo_disciplinaFROM Ministra M, Pessoa P, Professor PRWHERE M.matricula_professor = PR.matricula_professor
AND PR.matricula_professor = P.matricula_pessoaAND P.nome = 'Sirenio Arruda'AND M.ano_semestre = '2010.2';
![Page 23: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/23.jpg)
23
Exercício 4• Repita a consulta anterior utilizando JOIN.
![Page 24: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/24.jpg)
24
Exercício 4• Repita a consulta anterior utilizando JOIN.
SELECT M.codigo_disciplinaFROM Ministra M
INNER JOIN Professor PRON M.matricula_professor =
PR.matricula_professorINNER JOIN Pessoa P
ON PR.matricula_professor = P.matricula_pessoaWHERE P.nome = 'Sirenio Arruda'
AND M.ano_semestre = '2010.2';
![Page 25: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/25.jpg)
25
Exercício 5• Para as disciplinas de código 1, 2 e 3,
mostre quais alunos já foram seus monitores. (Use IN)
![Page 26: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/26.jpg)
26
Exercício 5• Para as disciplinas de código 1, 2 e 3,
mostre quais alunos já foram seus monitores. (Use IN)
SELECT DISTINCT P.nomeFROM Pessoa P
INNER JOIN Aluno AON P.matricula_pessoa = A.matricula_aluno
INNER JOIN Monitoria MON M.matricula_aluno = A.matricula_aluno
WHERE M.codigo_disciplina IN (1,2,3);
![Page 27: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/27.jpg)
27
Exercício 6• Mostre os nomes de TODOS os professores
e, caso existam, os nomes dos seus líderes.
![Page 28: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/28.jpg)
28
Exercício 6• Mostre os nomes de TODOS os professores
e, caso existam, os nomes dos seus líderes.
SELECT P1.nome, P2.nome as liderFROM Pessoa P1
INNER JOIN Professor PRON P1.matricula_pessoa = PR.matricula_professor
LEFT OUTER JOIN Pessoa P2ON PR.matricula_lider = P2.matricula_pessoa;
![Page 29: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/29.jpg)
29
Exercício 7• Mostre os alunos que não têm nenhum
projeto. Exiba também as informações de quando eles pagaram a cadeira. (Use IS NULL)
![Page 30: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/30.jpg)
30
Exercício 7• Mostre os alunos que não têm nenhum
projeto. Exiba também as informações de quando eles pagaram a cadeira. (Use IS NULL)
SELECT a.matricula_aluno,at.codigo_curso,at.codigo_disciplina,at.ano_semestre
FROM aluno a, aluno_turma atWHERE a.matricula_aluno = at.matricula_aluno
AND at.codigo_projeto IS NULLORDER BY a.matricula_aluno, at.ano_semestre;
![Page 31: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/31.jpg)
31
• Selecione todos os professores, exceto aqueles que entraram entre 1995 e 2005. (Use BETWEEN)
Exercício 8
![Page 32: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/32.jpg)
32
• Selecione todos os professores, exceto aqueles que entraram entre 1995 e 2005. (Use BETWEEN)
Exercício 8
SELECT *FROM professorWHERE data_admissao NOT BETWEEN
to_date('1999', 'yyyy') AND to_date('2005', 'yyyy');
![Page 33: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/33.jpg)
33
Exercício 9• Mostre quantas vezes que o professor 'Jose
Alcantara' já esteve a lecionar
![Page 34: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/34.jpg)
34
Exercício 9• Mostre quantas vezes que o professor 'Jose
Alcantara' já esteve a lecionar
SELECT COUNT(M.codigo_disciplina)FROM Pessoa P
INNER JOIN Professor PRON P.matricula_pessoa = PR.matricula_professor
INNER JOIN Ministra MON M.matricula_professor = PR.matricula_professor
WHERE P.nome = 'Jose Alcantara';
![Page 35: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/35.jpg)
35
Exercício 10• Mostre a média das notas dos alunos
agrupadas por período.
![Page 36: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/36.jpg)
36
Exercício 10• Mostre a média das notas dos alunos
agrupadas por período.
SELECT ano_semestre, AVG(nota)FROM ProvaGROUP BY ano_semestre;
![Page 37: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/37.jpg)
37
Exercício 11• Considere um relatório e mostre, numa mesma
consulta, para o semeste '2009.1', os registros dos professores em todas as ministrações que realizaram mais os registros dos alunos nas vezes em que pagaram alguma cadeira.
• Exiba o código da disciplina, o código do curso e a matrícula do professor ou do aluno que realizou a atividade. (Realize SELECTS independentes e use UNION)
![Page 38: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/38.jpg)
38
Exercício 11• Considere um relatório e mostre, numa mesma
consulta, para o semeste '2009.1', os registros dos professores em todas as ministrações que realizaram mais os registros dos alunos nas vezes em que pagaram alguma cadeira.
• Exiba o código da disciplina, o código do curso e a matrícula do professor ou do aluno que realizou a atividade. (Realize SELECTS independentes e use UNION)(SELECT matricula_professor AS matricula,
codigo_disciplina, codigo_curso FROM ministraWHERE ano_semestre = '2009.1')
UNION(SELECT matricula_aluno AS matricula,codigo_disciplina, codigo_curso FROM aluno_turma
WHERE ano_semestre = '2009.1');
![Page 39: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/39.jpg)
39
Na próxima aula…Consultas mais difíceis, PL/SQL
![Page 40: Monitoria GDI Aula Prática](https://reader036.fdocumentos.com/reader036/viewer/2022081506/56814de5550346895dbb5410/html5/thumbnails/40.jpg)
40
TENTEM FAZER AS QUESTÕES ANTES DA
AULA!www.cin.ufpe.br/~fmbl/gdi