Comandos SQL – Exercícios Exercícios 1 28 de junho de 2010 alinebossi 99 Comentários Olá pessoal, como prometido, prometido, colocarei aqui alguns exercícios exercícios e suas resolu!es" resolu!es" #stes exercícios eu $i% em aula com o &ro$" Carrilho da 'atec (mericana" Crie uma base de dados )ni*ersidade com as tabelas a seguir+ (lunos -(, nome, endereo, cidade. /isciplinas CO//C, nomedisc, cargahor. &ro$essores CO/&-O', nome, endereo, cidade. 3urma CO//C, CO// C, CO/3)-4(, CO/&-O', (5O, horário. 6ist7rico -(, CO//C, CO/3)-4(, CO/&-O', CO/&-O', (5O, $reqncia, $reqncia, nota. (p7s criar esta tabelas, e incluir alguns dados neslas, poderemos :brincar; e testar todos os comando que aprendemos nos artigos anteirores 1" #ncontre o -( dos alunos com nota em em 2010 menor que = obs+ > c7digo da disciplinas." SELECT ra FROM HISTORICO WHERE cod_disc='BD' AND ano=2010 AND noa !"
2" 'ornea o -(, nome e nota dos alunos com nota menor que = em em 2010" SELECT a#RA$ a#NOME$ a#NOME %ro& HISTORICO $ AL(NOS a )*r* cod_disc='BD' and ano=2010 and noa !" and a#RA=#RA
?" 'ornea o nome dos pro$essores de em 2010" SELECT disinc+,#NOME%ro& .ROFESSORES ,$ T(RMA )*r* ,#COD_.ROF=#COD_.ROF and #ANO=2010 and #COD_DISC='BD'
@" #ncontre o nome, endereo, cidade dos alunos e c7digo das disciplinas onde os alunos ti*eram nota menor que = em 2010" SELECT a#no&*$ a#ENDERECO$ a#CIDADE$ #COD_DISC %ro& AL(NOS a$ HISTORICO )*r* a#RA = #RA and #NOTA!" and #ano=2010
=" Obtenha o nome e -( dos alunos do pro$essor em 2010" SELECT disinc a#NOME$ a#RA %ro& AL(NOS a$ .ROFESSORES ,$ HISTORICO )*r* #RA=a#RA and #COD_.ROF = ,#COD_.ROF and ,#NOME /i* 'NOME' and #ANO = 2010
A" Bocali%e o nome e -( dos alunos do pro$essor OD em 2010 ou 2009 que ti*eram aulas com o pro$essor 4(-CO em algum ano" SELECT disinc a#NOME$ a#RA %ro& AL(NOS a$ .ROFESSORES ,$ HISTORICO )*r* #RA=a#RA and #COD_.ROF = ,#COD_.ROF and ,#NOME /i* 'OS3' and +#ANO = 2010 or #ANO = 2004AND A#RA in +s*/*c H#RA %ro& HISTORICO $ .ROFESSORES , )*r* #COD_.ROF = ,#COD_.ROF and ,#no&* /i* 'MARCOS'-
E" 'ornea o hist7rico escolar do aluno de nome (lex, ou seja, seu -(, nome, a lista de disciplinas que ele já cursou contendo o c7digo e nome da disciplina, $reqncia e nota e ano que o aluno a cursou" s*/*c a#RA$ a#NOME$ #COD_DISC$ d#NOME_DISC$ #ANO$ #FRE5(ENCIA$ #NOTA %ro& HISTORICO $ AL(NOS a$ DISCI.LINAS d )*r* a#RA = #RA and #COD_DISC = d#COD_DISC and a#NOME /i* 'ALE6'
8" #ncontre o nome e endereo dos alunos e pro$essores de Campinas" s*/*c a#NOME $a#ENDERECO$ 'a/7no' %ro& AL(NOS a )*r* a#CIDADE='CAM.INAS' 7nion s*/*c ,#NOME $,#ENDERECO$ ',ro%' %ro& .ROFESSORES , )*r* ,#CIDADE='CAM.INAS'
as i,o
9" 'ornea o nome dos alunos que cursaram disciplinas com carga horária menor que A0 horas, bem como os respecti*os pro$essores que as lecionaram" s*/*c a#NOME$ ,#NOME %ro& AL(NOS a$ DISCI.LINAS d$ .ROFESSORES ,$ HISTORICO )*r* a#RA = #RA and d#COD_DISC = #COD_DISC and ,#COD_.ROF = #COD_.ROF and d#CAR8A_HOR!90
10" Bocali%e o nome dos pro$essores que lecionaram matFrias nas quais o aluno :&edro &aulo Cunha; $oi repro*ado" nota G =. s*/*c ,#NOME %ro& AL(NOS a$ .ROFESSORES ,$ HISTORICO )*r* a#RA = #ra and ,#COD_.ROF = #COD_.ROF and 7,,*r+a#NOME- = '.EDRO .A(LO C(NHA' AND #NOTA!"
11" #ncontre o -( dos alunos que já cursaram todas as disciplinas lecionadas pelo pro$"oHo" S*/*c disinc a#NOME$ a#Ra %ro& AL(NOS a )*r* no *:iss +s*/*c Cod_disc %ro& .ROFESSORES ,$ T(RMA )*r* ,#COD_.ROF = #COD_.ROF and .#NOME /i* 'O;O' and Cod_disc no in +s*/*c cod_disc %ro& HISTORICO )*r* a#RA = #RA--
12" #ncontre o -a, nome e mFdia das notas dos alunos que cursaram todas as matFrias lecionadas por pro$essores de Campinas" S*/*c disinc A#RA$ A#NOME$ A<8+noa%ro& AL(NOS A $ HISTORICO )*r* A#RA= #RA and no *:iss +s*/*c Cod_disc %ro& .ROFESSORES ,$ T(RMA )*r* ,#CIDADE = 'CAM.INAS'and Cod_disc no in +s*/*c cod_disc %ro& HISTORICO )*r* A#RA = #RA-ro7, >? A#RA$ A#NOME
1?" Bocali%e o -( e nome dos alunos com nota menor que qualquer uma das notas do aluno de -( 20090121" s*/*c a#RA$a#NOME %ro& AL(NOS a$ HISTORICO )*r* a#RA = #RA and #NOTA !an? +s*/*c noa %ro& HISTORICO )*r* RA = 20040121-
1@" 'ornea o -a, nome e mFdia das notas por alunos" s*/*c a#RA$ a#NOME$ a@+#NOTA%ro& AL(NOS a$ HISTORICO )*r* a#RA=#RA ro7, >? a#RA$ a#NOME
1=" #ncontre o nome dos alunos que nHo cursaram nenhuma disciplina o$erecida em 2010" s*/*c no&* %ro& AL(NOS )*r* ra no in +s*/*c disinc ra %ro& HISTORICO )*r* ano=2010 -
1A" 'ornea o nome dos pro$essores que somente lecionaram matFrias com carga horária $oi in$erior a A0 horas" S*/*c ,#NOME %ro& .ROFESSORES ,$T(RMA )*r* ,#COD_.ROF = #COD_.ROF and
,#COD_.ROF no in + s*/*c #COD_.ROF %ro& T(RMA $ DISCI.LINAS d )*r* #COD_DISC = d#COD_DISC and CAR8A_HOR =90-
1E" #ncontre o nome dos alunos que nHo $oram repro*ados em nenhuma matFria" s*/*c a#NOME %ro& AL(NOS a )*r* a#RA no in +s*/*c a#RA %ro& HISTORICO $ DISCI.LINAS d )*r* #COD_DISC = d#COD_DISC and #NOTA !9#0-
18" 'ornea o -( e nota dos alunos com nota em em 2010 menor que a mFdia das notas na disciplina" s*/*c a#NOME$ #NOTA %ro& AL(NOS a $ HISTORICO )*r* a#RA = #RA and #COD_DISC='BD' and ano=2010 and noa !a// +s*/*c a@+NOTA%ro& HISTORICO )*r* COD_DISC='BD'and ano=2010-
19" #ncontre o c7digo e nome das disciplinas e media das notas por disciplina, mostre apenas as disciplinas com mFdia de notas maior que ="0" s*/*c d#COD_DISC$ d#NOME_DISC$ a@+noa%ro& DISCI.LINAS d$ HISTORICO )*r* #COD_DISC = d#COD_DISC ro7, >? d#COD_DISC$ d#No&*_DISC a@in a@+noa- "
20" 'ornea o nImero de alunos que $i%eram em 2010" SELECT co7n+- %ro& isrico )*r* cd_disc =>d and ano =2010
21" #ncontre a disciplina com maior mFdia de notas" S*/*c no&*_disc$ a@+noa%ro& Disci,/inas D$ Hisorico H W*r* D#cod_disc = #cod_disc ro7, >? no&*_disc a@in a@+noa- = a//+ S*/*c a@+noa%ro& isorico ro7, >? cod_disc-
22" 'ornea o c7digo das disciplinas com mFdia menor que a mFdia das notas em " S*/*c cod_disc$ A<8+noa%ro& isorico ro7, >? cod_disc a@in a@+noa- ! a// +s*/*c a@+noa%ro& isorico )*r* cod_disc = 'BD'-
2?" 'ornea o nome dos pro$essores que já lecionaram alguma disciplina para o aluno de -( =@00001"
S*/*c .#no&* %ro& .ro%*ssor*s .$ isorico )*r* .#cod_,ro% = H#cod_,ro% and H#RA = "00001
2@" #ncontre o nome das disciplinas com mFdia de $reqncia abaixo de 80J" S*/*c no&*_disc Fro& Disci,/inas D$Hisorico H W*r* H#cod_disc = D#cod_disc ro7, >? no&*_disc$ cara_or a@in a@+%r*7*ncia- ! 0#G cara_oraria
2=" 'ornea o nome dos alunos que ti*eram no mínimo 2 repro*a!es em 2010" S*/*c A#No&* Fro& A/7nos A$ Hisorico H W*r* A#RA = H#RA and ano = 2010 and noa ! 9#0 ro7, >? A#No&* a@in co7n+- = 2
2A" Kuantas *e%es o aluno :osF da il*a; cursou a disciplina de
2E" Kuantos alunos já cursaram a disciplina de
28 'ornea o nome dos alunos que obti*eram mais que 2 repro*a!es em algum ano" s*/*c a#NOME$ #ano$ co7n+%ro& AL(NOS a$ HISTORICO )*r* #RA = #RA and #NOTA!9#0 ro7, >? a#NOME$ #ANO a@in co7n+- 2
29" #ncontre o nome dos pro$essores e das disciplinas onde o nImero de repro*a!es $oi superior a 20 alunos em 2010" s*/*c ,#NOME$ d#NOME_DISC %ro& .ROFESSORES ,$ DISCI.LINAS d$ HISTORICO )*r* #COD_.ROF = ,#COD_.ROF and d#COD_DISC= #COD_DISC and #NOTA!9 and #ANO='2010' ro7, >? ,#NOME$ d#NOME_DISC a@in co7n+- 20
?0" 'ornea o nome dos pro$essores e c7digo das disciplinas lecionadas por ele em 2010 e a media das notas por disciplina"
s*/*c ,#NOME$ #COD_DISC$ a@+#NOTA%ro& .ROFESSORES ,$ HISTORICO )*r* #COD_.ROF=,#COD_.ROF and #ANO = 2010 ro7, >? ,#NOME$ #COD_DISC
Operações Diversas
(gora, iremos $a%er algumas atuali%a!es nas tabelas que criamos acima" 1" nsira seus dados no + tabela de alunos seu nome, -a, endereo, cidade., tabela de hist7rico cursando em 2009 na turma ( com o pro$essor (C e obtendo nota 8"2 e $reqncia 80, e a disciplina de #/( em 2010 na turma ( com o pro$essor -CL e obtendo nota E"= e $reqncia E=" INSERT ino AL(NOS @a/7*s +04122"2$ 'A/in* Bossi'$ 'R7a &ano*/'$ '.iracica>a'INSERT ino HISTORICO @a/7*s +04122"2$'BD'$'A'$'AC'$'2004'$'G0'$'G#2'INSERT ino HISTORICO @a/7*s +04122"2$'EDA'$'A'$'RCS<'$2010$"$#"-
2" nsira todos os alunos da disciplina de
?" (ltere as notas dos alunos de
and ano = '2010' and cod_,ro%='AC'J
@" -emo*a todas as in$orma!es re$erentes ao aluno :orge dos antos; do sistema" d*/** %ro& HISTORICO )*r* RA IN +s*/*c RA %ro& A/7nos )*r* no&*='or* dos Sanos'-J d*/** %ro& AL(NOS )*r* no&* = 'or* dos Sanos'J
=" 'aa uma atuali%aHo na $reqncia dos alunos de em 2010 com o pro$essor C de acordo com a seguinte regra+ N $reqncia abaixo de @=, inclusi*e, acrFscimo de ?"0J N $reqncia acima de @=, acrFscimo de ="0J 7,da* Hisorico s* #FRE5(ENCIA = #FRE5(ENCIA K 0#0" #FRE5(ENCIA )*r* #FRE5(ENCIA " and #COD_DISC='Bd' and #ANO = '2010 and #Cod_,ro% = ACJ 7,da* Hisorico s* #FRE5(ENCIA = #FRE5(ENCIA 1#0 )*r* #FRE5(ENCIA !=" and #COD_DISC='Bd' and #ANO = '2010 and #Cod_,ro% = ACJ
A" nsira os seguintes dados+ (luna de -( 20090?01 obte*e nota 8"0 e $reqncia A0 em #4 2009 CO4 O &-O'#O- (C 5( 3)-4( (." INSERT ino HISTORICO @a/7*s+2004001$ 'BD'$'A'$ 'C'$ 2004$ 90$ G -
E" #xecute todas as opera!es necessárias para substituir o nome do &ro$" oHo &edro por osF &edro, *isto ter ocorrido um erro no momento de cadastrar o nome do pro$essor" 7,da* .ROFESSORES s* no&*='os* .*dro' )*r* no&*='oao .*dro'
8" ubstitua todas as matFrias lecionadas pelo &ro$" -aimundo Claudio Lasconcelos em 2010 pelo &ro$" (C" 7,da* T(RMA s* cod_,ro% = 'AC' )*r* ano = 2010 and cod_,ro% in + s*/*c cod_,ro% %ro& .ROFESSORES )*r* no&* = 'oo-