Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
Exercício	
  de	
  fixação	
  	
  
Crie	
  os	
  seguintes	
  registros	
  nas	
  tabelas	
  do	
  banco	
  de	
  dados	
  “matricula”	
  disponibilizado	
  no	
  material	
  de	
  apoio.	
  	
  
Tabela	
  Pessoa	
  	
  
Id	
   Nome	
   Data_nascimento	
   Cpf	
  
1	
   Marcos	
  Miguel	
   31/08/1977	
   03188888801	
  
2	
   Melissa	
  Miguel	
   31/08/2000	
   64085274101	
  
3	
   José	
  da	
  Silva	
   25/01/1950	
   12345678901	
  
4	
   Maria	
  da	
  Silva	
   01/01/1960	
   12385274196	
  
5	
   Giuliano	
  Prado	
   01/01/1930	
   04185274122	
  
	
  
Tabela	
  Aluno	
  	
  
Id_pessoa	
   Matricula	
   Ano_inicio	
   Semestre_inicio	
  
2	
   2013011	
   2013	
   1	
  
3	
   2000011	
   2000	
   1	
  
4	
   2000012	
   2001	
   2	
  
	
  
Tabela	
  Professor	
  	
  
Id_pessoa	
   Titulação_maxima	
   Matricula	
  
1	
   3	
   20011	
  
5	
   4	
   20011	
  
	
  
Tabela	
  Instituição	
  
Id	
   CNPJ	
   Nome	
  
1	
   642587524000121	
   UNIVERSO	
  
2	
   642587524000122	
   UNIVERSIDADE	
  X	
  –	
  (Xavier)	
  
	
  
Tabela	
  Turma	
  
Id	
   Numero	
   Ano	
   Semestre	
   Descrição	
   Id_instituição	
  
1	
   25412541	
   2000	
   1	
   TURMA	
  1	
  	
   1	
  
2	
   56445656	
   2000	
   2	
   TURMA	
  2	
   1	
  
3	
   65455654	
   2013	
   1	
   TURMA	
  3	
   1	
  
4	
   46556555	
   2012	
   1	
   TURMA	
  AB	
   2	
  
	
  
Tabela	
  Professor_turma	
  	
  
	
  	
  	
  	
  
	
  
	
  
	
  
Tabela	
  aluno_turma	
  	
  
	
  
	
  
	
  
	
  
	
   	
  
Id_pessoa	
   Id_turma	
  
1	
   1	
  
5	
   1	
  
1	
   2	
  
1	
   3	
  
1	
   4	
  
5	
   2	
  
5	
   3	
  
Id_aluno	
   Id_turma	
  
2	
   1	
  
3	
   2	
  
4	
   3	
  
2	
   4	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
Questões	
  
1) Liste	
  todos	
  os	
  alunos	
  matriculados	
  na	
  turma	
  2.	
  
2) Liste	
  todos	
  os	
  professores	
  que	
  dão	
  aula	
  para	
  os	
  alunos	
  Melissa	
  Miguel	
  e	
  Maria	
  da	
  Silva.	
  
3) Liste	
  todas	
  as	
  turmas	
  e	
  alunos	
  da	
  UNIVERSIDADE	
  X	
  –	
  (Xavier).	
  
4) Liste	
  todos	
  os	
  professores	
  nascidos	
  antes	
  de	
  1978.	
  
5) Liste	
  todos	
  os	
  alunos	
  da	
  família	
  Silva.	
  	
  
6) Liste	
  todos	
  os	
  alunos	
  da	
  família	
  Miguel.	
  
7) Liste	
  todas	
  as	
  pessoas	
  que	
  tenham	
  o	
  CPF	
  começado	
  com	
  “021”.	
  
8) Liste	
  o	
  total	
  de	
  pessoas	
  cadastradas	
  no	
  sistema.	
  	
  
9) Liste	
  o	
  Professor	
  com	
  o	
  maior	
  ID	
  do	
  sistema.	
  	
  
10) Liste	
  o	
  Aluno	
  com	
  o	
  maior	
  ID	
  do	
  sistema.	
  	
  
11) Liste	
  o	
  total	
  de	
  turmas	
  de	
  cada	
  professor.	
  
12) Liste	
  o	
  total	
  de	
  alunos	
  de	
  cada	
  	
  professor.	
  	
  
13) Liste	
  todos	
  os	
  alunos	
  que	
  iniciaram	
  a	
  faculdade	
  em	
  2013.	
  
	
  
	
  
	
  
	
  
	
  
Obs:	
  Deve-­‐se	
  gerar	
  para	
  entrega	
  um	
  arquivo	
  SQL	
  para	
  cada	
  questão.	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
Resolução	
  da	
  lista	
  	
  
1)	
  
SELECT	
  DISTINCT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  aluno	
  AS	
  a	
  ON	
  a.id_pessoa	
  =	
  p.id	
  
INNER	
  JOIN	
  aluno_turma	
  AS	
  at	
  ON	
  at.id_aluno	
  =	
  a.id_pessoa	
  
WHERE	
  at.id_turma	
  =	
  2	
  
	
  
	
  
	
  
	
  
	
  
2)	
  	
  
SELECT	
  DISTINCT	
  p1.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  aluno	
  AS	
  a	
  ON	
  a.id_pessoa	
  =	
  p.id	
  
INNER	
  JOIN	
  aluno_turma	
  AS	
  at	
  ON	
  at.id_aluno	
  =	
  a.id_pessoa	
  
A	
  clausula	
  DISTINCT	
  	
  elimina	
  as	
  duplicidades	
  dos	
  campos	
  resultantes,	
  
caso	
  existam.	
  	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
INNER	
  JOIN	
  professor_turma	
  AS	
  pt	
  ON	
  pt.id_turma	
  =	
  at.id_turma	
  	
  
INNER	
  JOIN	
  professor	
  AS	
  prof	
  ON	
  prof.id_pessoa	
  =	
  pt.id_pessoa	
  
INNER	
  JOIN	
  pessoa	
  AS	
  p1	
  ON	
  p1.id	
  =	
  prof.id_pessoa	
  
WHERE	
  p.nome	
  =	
  'Melissa	
  Miguel'	
  OR	
  p.nome	
  =	
  'Maria	
  da	
  Silva'	
  
	
  
3)	
  	
  
SELECT	
  p.*,	
  t.*	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  aluno	
  AS	
  a	
  ON	
  a.id_pessoa	
  =	
  p.id	
  
INNER	
  JOIN	
  aluno_turma	
  AS	
  at	
  ON	
  at.id_aluno	
  =	
  a.id_pessoa	
  
INNER	
  JOIN	
  turma	
  as	
  t	
  ON	
  t.id	
  =	
  at.id_turma	
  	
  
INNER	
  JOIN	
  instituicao	
  AS	
  i	
  ON	
  i.id	
  =	
  t.id_instituicao	
  	
  
WHERE	
  i.nome	
  like	
  '%UNIVERSIDADE	
  X%'	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
4)	
  	
  
SELECT	
  DISTINCT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  professor	
  AS	
  prof	
  ON	
  prof.id_pessoa	
  =	
  p.id	
  
WHERE	
  year(p.data_nascimento)	
  <	
  1978	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
5)	
  
SELECT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  aluno	
  AS	
  a	
  ON	
  a.id_pessoa	
  =	
  p.id	
  
WHERE	
  	
  
p.nome	
  LIKE	
  '%Silva'	
  
	
  
	
  
6)	
  
SELECT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  aluno	
  AS	
  a	
  ON	
  a.id_pessoa	
  =	
  p.id	
  
WHERE	
  	
  
p.nome	
  LIKE	
  '%Miguel’	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
	
  
7)	
  
SELECT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
WHERE	
  	
  
p.cpf	
  LIKE	
  '021%'	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
8)	
  	
  
SELECT	
  count(*)	
  FROM	
  pessoa	
  AS	
  p	
  
	
  
9)	
  
SELECT	
  p.nome	
  FROM	
  pessoa	
  AS	
  p	
  	
  
INNER	
  JOIN	
  professor	
  AS	
  prof	
  ON	
  prof.id_pessoa	
  =	
  p.id	
  
WHERE	
  prof.id_pessoa	
  =	
  (select	
  max(profx.id_pessoa)	
  from	
  professor	
  AS	
  profx)	
  
	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
10)	
  
SELECT	
  p.nome	
  FROM	
  aluno	
  AS	
  a	
  	
  
INNER	
  JOIN	
  pessoa	
  AS	
  p	
  ON	
  p.id	
  =	
  a.id_pessoa	
  
WHERE	
  a.id_pessoa	
  =	
  (select	
  max(ax.id_pessoa)	
  from	
  aluno	
  AS	
  ax)	
  
	
  
	
  
	
  
11)	
  	
  
SELECT	
  p.nome,	
  count(	
  pt.id_turma	
  )	
  	
  
FROM	
  professor_turma	
  pt	
  
INNER	
  JOIN	
  pessoa	
  AS	
  p	
  ON	
  p.id	
  =	
  pt.id_pessoa	
  
GROUP	
  BY	
  p.nome	
  
	
   	
  
A	
  Clausula	
  Group	
  by	
  é	
  um	
  agrupador	
  de	
  valores.	
  Em	
  conjunto	
  com	
  as	
  clausulas	
  count,	
  avg,	
  max,	
  min,	
  sum	
  permite	
  
gerar	
  valores	
  agrupados	
  pelo	
  campo	
  desejado.	
  
Em	
  nosso	
  exemplo	
  	
  somamos	
  o	
  total	
  de	
  turmas	
  	
  e	
  queremos	
  que	
  os	
  mesmos	
  sejam	
  agrupados	
  pelo	
  professor.	
  	
  
Caso	
  seja	
  omitido,	
  	
  o	
  somatórioserá	
  de	
  todos	
  os	
  registros	
  e	
  o	
  resultado,	
  portanto,	
  errado.	
  	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
	
  
Segunda	
  opção	
  	
  
SELECT	
  p.nome,	
  (SELECT	
  COUNT(	
  pt.id_turma	
  )	
  FROM	
  	
  professor_turma	
  AS	
  pt	
  WHERE	
  pt.id_pessoa	
  =	
  p.id)	
  
FROM	
  pessoa	
  p	
  
	
  
	
  
SUBSELECT	
  –	
  A	
  partir	
  de	
  um	
  comando	
  SELECT	
  qualquer,	
  podemos	
  gerar	
  outros	
  
comandos	
  SELECT	
  	
  chamados	
  de	
  SUBSELECT,	
  que	
  fazem	
  outra	
  busca	
  no	
  banco	
  para	
  
trazer	
  um	
  único	
  registro	
  que,	
  de	
  acordo	
  com	
  as	
  especificações	
  e	
  condições	
  do	
  WHERE,	
  
pertencem	
  ao	
  dado	
  corrente.	
  	
  
No	
  exemplo	
  acima	
  ao	
  busca	
  o	
  nome	
  da	
  pessoa	
  o	
  SUBSELECT	
  vai	
  ao	
  banco	
  de	
  dados	
  e	
  busca	
  o	
  total	
  de	
  turmas	
  que	
  
essa	
  pessoa	
  possui	
  filtrados	
  na	
  condição	
  WHERE	
  pelo	
  ID	
  da	
  pessoa	
  corrente.	
  	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
	
  
	
  
	
  
12)	
  	
  
SELECT	
  p.nome,	
  count(at.id_aluno)	
  from	
  aluno_turma	
  AS	
  at	
  	
  
INNER	
  JOIN	
  professor_turma	
  AS	
  pt	
  ON	
  pt.id_turma	
  =	
  at.id_turma	
  	
  
INNER	
  JOIN	
  pessoa	
  AS	
  p	
  on	
  p.id	
  =	
  pt.id_pessoa	
  	
  
GROUP	
  BY	
  p.nome	
  
	
  
	
  
	
  
	
  
	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll	
  
	
  
	
  
13)	
  
SELECT	
  p.nome,	
  t.ano	
  	
  FROM	
  aluno_turma	
  AS	
  at	
  	
  
INNER	
  JOIN	
  turma	
  AS	
  t	
  ON	
  	
  t.id	
  =	
  at.id_turma	
  	
  
INNER	
  JOIN	
  pessoa	
  AS	
  p	
  ON	
  p.id	
  =	
  at.id_aluno	
  	
  
WHERE	
  	
  t.ano	
  =	
  2013	
  
Universidade	
  Salgado	
  de	
  Oliveira	
  –	
  UNIVERSO	
  
	
  
CURSO	
  DE	
  ANALISE	
  DE	
  SISTEMAS	
  
Disciplina:	
  Banco	
  de	
  Dados	
  ll

Mais conteúdos dessa disciplina