|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
事实上,在任何DBaaS中,解决方案提供商对如何管理物理资源都没有控制权,因此MySQL学习教程可能会发现由于DBaaS的局限性使得他们提供给客户的远远小于客户所期望的。server标题2
成绩形貌:
已知干系形式:
S(SNO,SNAME)先生干系。SNO为学号,SNAME为姓名
C(CNO,CNAME,CTEACHER)课程干系。CNO为课程号,CNAME为课程名,CTEACHER为任课教员
SC(SNO,CNO,SCGRADE)选课干系。SCGRADE为成就
请求完成以下5个处置:
1.找出没有选修过“李明”先生教学课程的一切先生姓名
2.列出有二门以上(含两门)不合格课程的先生姓名及其均匀成就
3.列出既学过“1”号课程,又学过“2”号课程的一切先生姓名
4.列出“1”号课成就比“2”号同砚该门课成就高的一切先生的学号
5.列出“1”号课成就比“2”号课成就高的一切先生的学号及其“1”号课和“2”号课的成就
1.找出没有选修过“李明”先生教学课程的一切先生姓名
--完成代码:
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,C
WHERESC.CNO=C.CNO
ANDC.CTEACHER=李明
ANDSC.SNO=S.SNO)
2.列出有二门以上(含两门)不合格课程的先生姓名及其均匀成就
--完成代码:
SELECTS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROMS,SC,(
SELECTSNO
FROMSC
WHERESCGRADE<60
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2
)AWHERES.SNO=A.SNOANDSC.SNO=A.SNO
GROUPBYS.SNO,S.SNAME
3.列出既学过“1”号课程,又学过“2”号课程的一切先生姓名
--完成代码:
SELECTS.SNO,S.SNAME
FROMS,(
SELECTSC.SNO
FROMSC,C
WHERESC.CNO=C.CNO
ANDC.CNAMEIN(1,2)
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)=2
)SCWHERES.SNO=SC.SNO
4.列出“1”号课成就比“2”号同砚该门课成就高的一切先生的学号
--完成代码:
SELECTS.SNO,S.SNAME
FROMS,SCSC1,SCSC2
WHERESC1.CNO=1
ANDSC2.SNO=2
ANDSC1.CNO=S.CNO
ANDSC1.SCGRADE>SC2.SCGRADE
5.列出“1”号课成就比“2”号课成就高的一切先生的学号及其“1”号课和“2”号课的成就
--完成代码:
SELECTSC1.SNO,[1号课成就]=SC1.SCGRADE,[2号课成就]=SC2.SCGRADE
FROMSCSC1,SCSC2
WHERESC1.CNO=1
ANDSC2.CNO=2
ANDSC1.SNO=SC2.SNO
ANDSC1.SCGRADE>SC2.SCGRADE
Trackback:http://tb.blog.csdn.net/TrackBack.aspx?PostId=384993
[点击此处保藏本文]宣布于2005年05月31日17:31:00
十年守候宣布于2005-06-0612:04PMIP:61.186.252.*
你好:
1.找出没有选修过“李明”先生教学课程的一切先生姓名
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,C<=这里是不是要加上S
WHERESC.CNO=C.CNO
ANDCNAME=李明<=应当是CTEACHER=李明吧
ANDSC.SNO=S.SNO)
十年守候宣布于2005-06-0612:47PMIP:61.186.252.*
列出“1”号课成就比“2”号同砚该门课成就高的一切先生的学号
SELECTS.SNO,S.SNAME
FROMS,(
SELECTSC1.SNO
FROMSCSC1,CC1,SCSC2,CC2
WHERESC1.CNO=C1.CNOANDC1.NAME=1
ANDSC2.CNO=C2.CNOANDC2.NAME=2
<=这里仿佛驴唇不对马嘴吧??
<=是ANDSC2.CNO=C2.CNOANDSC2.SNO=2才对吧
ANDSC1.SCGRADE>SC2.SCGRADE
)SCWHERES.SNO=SC.SNO
并且“1”号课,就我的了解是course的ID,也就是CNO,怎样会是CNAME,并且这里你还写成了C1.NAME,这类立场要不得阿
我是老手,一样平常都是上彀查材料的,还好之前学了一点点,否则关于那些一点都不会的人,不是被楼主害逝世了,要末不说,要末就要有仔细的立场,婉言所至,请楼主体谅
ghb宣布于2005-11-1412:04PMIP:61.236.10.*
/*
成绩形貌:
已知干系形式:
S(SNO,SNAME)先生干系。SNO为学号,SNAME为姓名
C(CNO,CNAME,CTEACHER)课程干系。CNO为课程号,CNAME为课程名,CTEACHER为任课教员
SC(SNO,CNO,SCGRADE)选课干系。SCGRADE为成就
请求完成以下5个处置:
1.找出没有选修过“李明”先生教学课程的一切先生姓名
2.列出有二门以上(含两门)不合格课程的先生姓名及其均匀成就
3.列出既学过“1”号课程,又学过“2”号课程的一切先生姓名
4.列出“1”号课成就比“2”号同砚该门课成就高的一切先生的学号
5.列出“1”号课成就比“2”号课成就高的一切先生的学号及其“1”号课和“2”号课的成就
*/
--createtables(snovarchar(10),snamevarchar(20))
--createtablec(cnovarchar(10),cnamevarchar(20),cteachervarchar(20))
--createtablesc(snovarchar(10),cnovarchar(20),scgradeinteger)
insertintos
select1,ghb
unionallselect2,tw
unionallselect3,wkp
insertintoc
select1,语文,李明
unionallselect2,数学,王了
unionallselect3,英语,别的
insertintosc
select1,2,50
unionallselect1,3,52
unionallselect2,1,80
unionallselect2,2,90
unionallselect2,3,59
unionallselect3,1,100
unionallselect3,2,59
unionallselect3,3,70
--deletefromscwheresno=1andcno=1
select*
froms
select*
fromc
select*
fromsc
--1.找出没有选修过“李明”先生教学课程的一切先生姓名
selectsname
froms
wheres.snonotin(selectsc.snofromsc,cwheresc.cno=c.cnoandc.cteacher=李明)
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,C
WHERESC.CNO=C.CNO
ANDC.CTEACHER=李明
ANDSC.SNO=S.SNO)
--2.列出有二门以上(含两门)不合格课程的先生姓名及其均匀成就
selects.sname,avg(sc.scgrade)asavgsc
froms,sc
wheres.sno=sc.snoands.snoin(selectsnofromscwherescgrade<60groupbysnohavingcount(sno)>=2)
groupbys.sname
selects.SNAME,avg(sc.SCGRADE)fromS,scwheresc.SCGRADE<60ands.sno=sc.snogroupbys.SNAMEhavingcount(sc.SCGRADE)>=2
SELECTS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROMS,SC,(
SELECTSNO
FROMSC
WHERESCGRADE<60
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2
)AWHERES.SNO=A.SNOANDSC.SNO=A.SNO
GROUPBYS.SNO,S.SNAME
--3.列出既学过“1”号课程,又学过“2”号课程的一切先生姓名
selecttem.sname
from
(
selects.sname
froms
wheres.snoin(selectsnofromscwherecno=1)
unionall
selects.sname
froms
wheres.snoin(selectsnofromscwherecno=2)
)tem
groupbytem.sname
havingcount(tem.sname)>1
selects.snamefroms,scwheres.sno=sc.snoandsc.cno=1andsc.snoin(selectb.snofromscbwhereb.sno=sc.snoandb.cno=2)
selects.snamefroms,scwheres.sno=sc.snoandsc.cno=1andexists(selectb.snofromscbwhereb.sno=sc.snoandb.cno=2)
SELECTS.SNO,S.SNAME
FROMS,(
SELECTSC.SNO
FROMSC,C
WHERESC.CNO=C.CNO
ANDC.cnoIN(1,2)
GROUPBYSNO
HAVINGCOUNT(DISTINCTc.CNO)=2
)SCWHERES.SNO=SC.SNO
--4.列出“1”号课成就比“2”号同砚该门课成就高的一切先生的学号
selectsc.sno
fromsc
wherecno=1andscgrade>(selectscgradefromscwheresno=2andcno=1)andsno2
SELECTSc.SNOFROMSCwheresc.cno=1andexists(select*fromscbwhereb.sno=sc.snoandsc.scgrade>b.scgradeandb.sno=2)
selects.SNOfroms,scwheres.sno=sc.snoandsc.cno=1andsc.SCGRADE>(selectb.SCGRADEfromscbwhereb.sno=sc.snoandb.cno=2)
SELECTS.SNO,S.SNAME
FROMS,SCSC1,SCSC2
WHERESC1.CNO=1
ANDSC2.SNO=2
ANDSC1.CNO=S.CNO
ANDSC1.SCGRADE>SC2.SCGRADE
selectsc1.sno
fromscsc1,scsc2
wheresc1.cno=1andsc1.sno2andsc2.cno=1andsc2.sno=2andsc1.scgrade>sc2.scgradeandsc1.cno=sc2.cno
--5.列出“1”号课成就比“2”号课成就高的一切先生的学号及其“1”号课和“2”号课的成就
selectsc1.sno,sc1.scgrade,sc2.scgrade
fromscsc1,scsc2
wheresc1.sno=sc2.snoandsc1.cno=1andsc2.cno=2andsc1.scgrade>sc2.scgrade
selecta.SNO,a.SCGRADEfromscawhere(a.CNO=1ora.CNO=2)
anda.snoin
(selects.SNOfroms,scwheres.sno=sc.snoandsc.cno=1andsc.SCGRADE>(selectb.SCGRADEfromscbwhereb.sno=sc.snoandb.cno=2))
SELECTSC1.SNO,[1号课成就]=SC1.SCGRADE,[2号课成就]=SC2.SCGRADE
FROMSCSC1,SCSC2
WHERESC1.CNO=1
ANDSC2.CNO=2
ANDSC1.SNO=SC2.SNO
ANDSC1.SCGRADE>SC2.SCGRADE
droptables
droptablec
droptablesc
shenjane宣布于2006-02-073:13PMIP:210.22.152.*
第4、第五题都有一些毛病
SELECTS.SN,SC1.SCGRADEAS课程1,SC2.SCGRADEas课程2FROMS,SCSC1,SCSC2WHERE
S.SNO=SC1.SNOANDSC1.CNO=0001ANDSC2.CNO=0002
ANDSC1.SNO=SC2.SNOANDSC1.SCGRADE<SC2.SCGRADE
MySQL的支持者们却认为,MySQL所保留的功能都是精华,并且是你部署、MySQL学习教程配置和维护这个数据库所必不可少的一些功能。 |
|