You are on page 1of 11

22/01/2016

ComandosSQLExerccios1|AlineBossi

CrieumabasededadosUniversidadecomastabelasaseguir:
Alunos(RA,nome,endereo,cidade)
Disciplinas(COD_DISC,nome_disc,carga_hor)
Professores(COD_PROF,nome,endereo,cidade)
Turma(COD_DISC,COD_TURMA,COD_PROF,ANO,horrio)
Histrico(RA,COD_DISC,COD_TURMA,COD_PROF,ANO,freqncia,nota)
Apscriarestatabelas,eincluiralgunsdadosneslas,poderemosbrincaretestartodosos
comandoqueaprendemosnosartigosanteirores1.EncontreoRAdosalunoscomnotaem
BDem2010menorque5(obs:BD=cdigodadisciplinas).

SELECTra
FROMHISTORICO
WHEREcod_disc='BD'ANDano=2010ANDnota<5

2.ForneaoRA,nomeenotadosalunoscomnotamenorque5emBDem2010.

SELECTa.RA,a.NOME,a.NOME
fromHISTORICOh,ALUNOSa
wherecod_disc='BD'andano=2010andnota<5anda.RA=h.RA

3.ForneaonomedosprofessoresdeBDem2010.

SELECTdistinct(p.NOME)
fromPROFESSORESp,TURMAt
wherep.COD_PROF=t.COD_PROFandt.ANO=2010andt.COD_DISC='BD'

4.Encontreonome,endereo,cidadedosalunosecdigodasdisciplinasondeosalunos
tiveramnotamenorque5em2010.

SELECTa.nome,a.ENDERECO,a.CIDADE,h.COD_DISC
fromALUNOSa,HISTORICOh
wherea.RA=h.RAandh.NOTA<5andh.ano=2010

5.ObtenhaonomeeRAdosalunosdoprofessorem2010.
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

1/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

SELECTdistincta.NOME,a.RA
fromALUNOSa,PROFESSORESp,HISTORICOh
whereh.RA=a.RAandh.COD_PROF=p.COD_PROF
andp.NOMElike'%NOME%'
andh.ANO=2010

6.LocalizeonomeeRAdosalunosdoprofessorJOSem2010ou2009quetiveramaulas
comoprofessorMARCOSemalgumano.

SELECTdistincta.NOME,a.RA
fromALUNOSa,PROFESSORESp,HISTORICOh
whereh.RA=a.RAandh.COD_PROF=p.COD_PROF
andp.NOMElike'%JOS%'
and(h.ANO=2010orh.ANO=2009)
ANDA.RAin
(selectH.RA
fromHISTORICOh,PROFESSORESp
whereh.COD_PROF=p.COD_PROF
andp.nomelike'%MARCOS%')

7.ForneaohistricoescolardoalunodenomeAlex,ouseja,seuRA,nome,alistade
disciplinasqueelejcursoucontendoocdigoenomedadisciplina,freqnciaenotae
anoqueoalunoacursou.

selecta.RA,a.NOME,
h.COD_DISC,d.NOME_DISC,
h.ANO,h.FREQUENCIA,h.NOTA
fromHISTORICOh,ALUNOSa,DISCIPLINASd
wherea.RA=h.RA
andh.COD_DISC=d.COD_DISC
anda.NOMElike'%ALEX%'

8.EncontreonomeeendereodosalunoseprofessoresdeCampinas.

selecta.NOME,a.ENDERECO,'aluno'astipo
fromALUNOSa
wherea.CIDADE='CAMPINAS'
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

2/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

union
selectp.NOME,p.ENDERECO,'prof'
fromPROFESSORESp
wherep.CIDADE='CAMPINAS'

9.Forneaonomedosalunosquecursaramdisciplinascomcargahorriamenorque60
horas,bemcomoosrespectivosprofessoresqueaslecionaram.

selecta.NOME,p.NOME
fromALUNOSa,DISCIPLINASd,PROFESSORESp,HISTORICOh
where
a.RA=h.RAand
d.COD_DISC=h.COD_DISCand
p.COD_PROF=h.COD_PROFand
d.CARGA_HOR<60

10.LocalizeonomedosprofessoresquelecionarammatriasnasquaisoalunoPedro
PauloCunhafoireprovado.(nota<5)

selectp.NOME
fromALUNOSa,PROFESSORESp,HISTORICOh
where
a.RA=h.raand
p.COD_PROF=h.COD_PROFand
upper(a.NOME)='PEDROPAULOCUNHA'AND
h.NOTA<5

11.EncontreoRAdosalunosquejcursaramtodasasdisciplinaslecionadas
peloprof.Joo.

Selectdistincta.NOME,a.Ra
fromALUNOSa
wherenotexists(selectCod_disc
fromPROFESSORESp,TURMAt
wherep.COD_PROF=t.COD_PROFand
P.NOMElike'%JOO%'
andCod_discnotin(selectcod_disc
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

3/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

fromHISTORICOh
wherea.RA=h.RA))

12.EncontreoRa,nomeemdiadasnotasdosalunosquecursaramtodasasmatrias
lecionadasporprofessoresdeCampinas.

SelectdistinctA.RA,A.NOME,AVG(nota)
fromALUNOSA,HISTORICOhwhereA.RA=h.RAand
notexists
(selectCod_disc
fromPROFESSORESp,TURMAt
wherep.CIDADE='CAMPINAS'andCod_discnotin
(selectcod_disc
fromHISTORICOh
whereA.RA=h.RA))
groupbyA.RA,A.NOME

13.LocalizeoRAenomedosalunoscomnotamenorquequalquerumadasnotasdoaluno
deRA20090121.

selecta.RA,a.NOME
fromALUNOSa,HISTORICOh
wherea.RA=h.RAand
h.NOTA<any
(selectnotafromHISTORICOwhereRA=20090121)

14.ForneaoRa,nomeemdiadasnotasporalunos.

selecta.RA,a.NOME,avg(h.NOTA)
fromALUNOSa,HISTORICOh
wherea.RA=h.RA
groupbya.RA,a.NOME

15.Encontreonomedosalunosquenocursaramnenhumadisciplinaoferecidaem2010.

selectnome
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

4/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

fromALUNOS
whereranotin(selectdistinctrafromHISTORICOwhereano=2010)

16.Forneaonomedosprofessoresquesomentelecionarammatriascomcargahorria
foiinferiora60horas.

Selectp.NOME
fromPROFESSORESp,TURMAt
wherep.COD_PROF=t.COD_PROFand
p.COD_PROFnotin(selectt.COD_PROF
fromTURMAt,DISCIPLINASd
wheret.COD_DISC=d.COD_DISCandCARGA_HOR>=60)

17.Encontreonomedosalunosquenoforamreprovadosemnenhumamatria.

selecta.NOME
fromALUNOSa
wherea.RAnotin(selecta.RA
fromHISTORICOh,DISCIPLINASd
whereh.COD_DISC=d.COD_DISCandh.NOTA<6.0)

18.ForneaoRAenotadosalunoscomnotaemBDem2010menorqueamdiadas
notasnadisciplina.

selecta.NOME,h.NOTA
fromALUNOSa,HISTORICOh
wherea.RA=h.RAandh.COD_DISC='BD'andano=2010
andnota<all(selectavg(NOTA)
fromHISTORICO
whereCOD_DISC='BD'andano=2010)

19.Encontreocdigoenomedasdisciplinasemediadasnotaspordisciplina,mostre
apenasasdisciplinascommdiadenotasmaiorque5.0.

selectd.COD_DISC,d.NOME_DISC,avg(nota)
fromDISCIPLINASd,HISTORICOh
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

5/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

whereh.COD_DISC=d.COD_DISC
groupbyd.COD_DISC,d.Nome_DISChavingavg(nota)>5

20.ForneaonmerodealunosquefizeramBDem2010.

SELECTcount(*)fromhistricowherecd_disc=bdandano=2010

21.Encontreadisciplinacommaiormdiadenotas.

Selectnome_disc,avg(nota)
fromDisciplinasD,HistoricoH
WhereD.cod_disc=h.cod_disc
groupbynome_disc
havingavg(nota)>=all(Selectavg(nota)
fromhistorico
groupbycod_disc)

22.ForneaocdigodasdisciplinascommdiamenorqueamdiadasnotasemBD.

Selectcod_disc,AVG(nota)
fromhistorico
groupbycod_disc
havingavg(nota)<all(selectavg(nota)
fromhistorico
wherecod_disc='BD')

23.Forneaonomedosprofessoresquejlecionaramalgumadisciplinaparaoalunode
RA5400001.

SelectP.nome
fromProfessoresP,historicoh
whereP.cod_prof=H.cod_profandH.RA=5400001

24.Encontreonomedasdisciplinascommdiadefreqnciaabaixode80%.

http://alinebossi.com/2010/06/28/comandosqlexercicios1/

6/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

Selectnome_disc
FromDisciplinasD,HistoricoH
WhereH.cod_disc=D.cod_disc
groupbynome_disc,carga_hor
havingavg(frequencia)<0.8*carga_horaria

25.Forneaonomedosalunosquetiveramnomnimo2reprovaesem2010.

SelectA.Nome
FromAlunosA,HistoricoH
WhereA.RA=H.RAandano=2010andnota<6.0
groupbyA.Nome
havingcount(*)>=2

26.QuantasvezesoalunoJosdaSilvacursouadisciplinadeBancodeDados.

selectcount(*)
fromALUNOSa,HISTORICOh,DISCIPLINASd
wherea.ra=h.ra
andd.COD_DISC=h.COD_DISC
anda.NOME='JosedaSilva'
andd.NOME_DISC='BancodeDados'

27.QuantosalunosjcursaramadisciplinadeBancodeDadosem2009e2010.

selectcount(*)
fromHISTORICOhinnerjoinDISCIPLINASdonD.COD_DISC=h.COD_DISC
whered.NOME_DISC='BancodeDados'and(ano=2009orano=2010)

28Forneaonomedosalunosqueobtiverammaisque2reprovaesemalgumano.

selecta.NOME,h.ano,count(*)
fromALUNOSa,HISTORICOh
whereh.RA=h.RAandh.NOTA<6.0
groupbya.NOME,h.ANO
havingcount(*)>2
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

7/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

29.Encontreonomedosprofessoresedasdisciplinasondeonmerodereprovaesfoi
superiora20alunosem2010.

selectp.NOME,d.NOME_DISC
fromPROFESSORESp,DISCIPLINASd,HISTORICOh
whereh.COD_PROF=p.COD_PROFandd.COD_DISC=h.COD_DISC
andh.NOTA<6andh.ANO='2010'
groupbyp.NOME,d.NOME_DISC
havingcount(*)>20

30.Forneaonomedosprofessoresecdigodasdisciplinaslecionadasporeleem2010e
amediadasnotaspordisciplina.

selectp.NOME,h.COD_DISC,avg(h.NOTA)
fromPROFESSORESp,HISTORICOh
whereh.COD_PROF=p.COD_PROFandh.ANO=2010
groupbyp.NOME,h.COD_DISC

OperaesDiversas
Agora,iremosfazeralgumasatualizaesnastabelasquecriamosacima.
1.InsiraseusdadosnoBD:tabeladealunos(seunome,Ra,endereo,cidade),tabelade
histricocursandoBDem2009naturmaAcomoprofessorJACeobtendonota8.2e
freqncia80,eadisciplinadeEDAem2010naturmaAcomoprofessorRCSVeobtendo
nota7.5efreqncia75.

INSERTintoALUNOS
values(0912252,'AlineBossi','Ruamanoel','Piracicaba')
INSERTintoHISTORICO
values(0912252,'BD','A','JAC','2009','80','8.2')
INSERTintoHISTORICO
values(0912252,'EDA','A','RCSV',2010,75,7.5)

http://alinebossi.com/2010/06/28/comandosqlexercicios1/

8/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

2.InsiratodososalunosdadisciplinadeBD(BancodeDados)em2009etiveramnota>5,
cursandoadisciplinaBDII(BancodeDadosII)em2010comomesmocdigodeturmaeo
mesmoprofessor,mascomfreqnciaenotadesconhecidas.
insertintoHISTORICO

selecth.RA,'BDII',
h.COD_TURMA,h.COD_PROF,
2010,null,null
fromHISTORICOh
whereh.COD_DISC='BD'
andh.ANO=2009andh.NOTA>5

3.AltereasnotasdosalunosdeBancodeDados(BD)em2010comoprofessorJAC
atravsdaseguinteregra:
notasentre[4.0e5.0[ficaramcom4.0(inclusiveaesquerdaeexclusiveadireita).
notasentre[5.0e9.5[teroacrscimode0.5nanota.
notasacimade9.5,inclusive,ficarocom10.0

updateHISTORICO
setnota=4
wherenota>=4andnota<5
andcod_disc='BD'
andano='2010'
andcod_prof='JAC';
updateHISTORICO
setnota=10
wherenota>=9.5andcod_disc='BD'
andano='2010'andcod_prof='JAC';
updateHISTORICO
setnota=nota+0.5
wherenota>=5.0andnota<9.5andcod_disc='BD'
andano='2010'andcod_prof='JAC';

4.RemovatodasasinformaesreferentesaoalunoJorgedosSantosdosistema.

deletefromHISTORICO
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

9/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

whereRAIN
(selectRAfromAlunoswherenome='JorgedosSantos');
deletefromALUNOS
wherenome='JorgedosSantos';

5.FaaumaatualizaonafreqnciadosalunosdeBDem2010comoprofessorJCde
acordocomaseguinteregra:
freqnciaabaixode45,inclusive,acrscimode3.0%
freqnciaacimade45,acrscimode5.0%

updateHistoricoh
seth.FREQUENCIA=h.FREQUENCIA+0.05*h.FREQUENCIA
whereh.FREQUENCIA>45
andh.COD_DISC='Bd'
andh.ANO='2010andh.Cod_prof=JAC;
updateHistoricoh
seth.FREQUENCIA=h.FREQUENCIA*1.03
whereh.FREQUENCIA<=45
andh.COD_DISC='Bd'
andh.ANO='2010
andh.Cod_prof=JAC;

6.Insiraosseguintesdados:AlunadeRA20090301obtevenota8.0efreqncia60emBD
(EM2009COMOPROFESSORJACNATURMAA).

INSERTintoHISTORICO
values(20090301,'BD','A','JC',2009,60,8)

7.ExecutetodasasoperaesnecessriasparasubstituironomedoProf.JooPedropor
JosPedro,vistoterocorridoumerronomomentodecadastraronomedoprofessor.

updatePROFESSORES
setnome='JosePedro'
wherenome='JoaoPedro'

8.SubstituatodasasmatriaslecionadaspeloProf.RaimundoClaudioVasconcelosem
http://alinebossi.com/2010/06/28/comandosqlexercicios1/

10/11

22/01/2016

ComandosSQLExerccios1|AlineBossi

2010peloProf.JAC.

updateTURMA
setcod_prof='JAC'
whereano=2010andcod_profin(selectcod_prof
fromPROFESSORES
wherenome='Joo")

http://alinebossi.com/2010/06/28/comandosqlexercicios1/

11/11

You might also like