修改后.docx
- 文档编号:26931373
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:29
- 大小:729.60KB
修改后.docx
《修改后.docx》由会员分享,可在线阅读,更多相关《修改后.docx(29页珍藏版)》请在冰豆网上搜索。
修改后
-1.学生表
Student(Sid,Sname,Sage,Ssex)--Sid学生编号,Sname学生姓名,Sage出生年月,Ssex学生性别
--2.课程表
Course(Cid,Cname,Tid)--Cid--课程编号,Cname课程名称,Tid教师编号
--3.教师表
Teacher(Tid,Tname)--Tid教师编号,Tname教师姓名
--4.成绩表
SC(Sid,Cid,score)--Sid学生编号,Cid课程编号,score分数
*/
--1、查询在所学的课程中"101"课程比"102"课程成绩高的学生的信息及课程分数
selectstudent.*,sc1.score,sc2.scorefromStudent,SCassc1,SCassc2
wherestudent.Sid=sc1.Sidandstudent.Sid=sc2.Sidandsc1.Cid='101'andsc2.Cid='102'andsc1.score>sc2.score;
--2、查询在所学的课程中"101"课程比"102"课程成绩低的学生的信息及课程分数
selectstudent.*,sc1.score,sc2.scorefromStudent,SCassc1,SCassc2
wherestudent.Sid=sc1.Sidandstudent.Sid=sc2.Sidandsc1.Cid='101'andsc2.Cid='102'andsc1.score --3、查询平均成绩大于等于75分的同学的学生编号和学生姓名和平均成绩 selectStudent.Sid,Student.Sname,avg(sc.score) fromStudent,sc whereStudent.Sid=sc.Sid groupbyStudent.Sid,Student.Sname havingavg(sc.score)>=75; --4、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩 selectStudent.Sid,Student.Sname,count(SC.Cid),sum(score) fromStudentleftjoinSC onStudent.Sid=SC.Sid groupbyStudent.Sid,Student.Sname; --5、查询"李"姓老师的数量 selectcount(Tname)fromTeacherwhereTnamelike'李%'; --6、查询学过"张三"老师授课的同学的信息 selectdistinctStudent.*fromStudent,SC,Course,Teacher whereStudent.Sid=SC.SidandSC.Cid=Course.CidandCourse.Tid=Teacher.TidandTeacher.Tname='张三'; --7、查询学过编号为"101"并且也学过编号为"102"的课程的同学的信息 selectStudent.*fromStudent,SCwhereStudent.Sid=SC.SidandSC.Cid='101'andexists(Select1fromSCasSC1whereSC1.Sid=SC.SidandSC1.Cid='102')orderbyStudent.Sid; --8、查询学过编号为"101"但是没有学过编号为"102"的课程的同学的信息 selectStudent.*fromStudent,SCwhereStudent.Sid=SC.SidandSC.Cid='101'andnotexists(Select1fromSCasSC1whereSC1.Sid=SC.SidandSC1.Cid='102')orderbyStudent.Sid; --9、查询没有学全所有课程的同学的信息 selectStudent.* fromStudent,SC whereStudent.Sid=SC.Sid groupbyStudent.Sid,Student.Sname,Student.Sage,Student.Ssexhavingcount(Cid)<(selectcount(Cid)fromCourse); --10、查询没学过"张三"老师讲授的任一门课程的学生姓名 selectstudent.*fromstudentwherestudent.Sidnotin (selectdistinctsc.Sidfromsc,course,teacherwheresc.Cid=course.Cidandcourse.Tid=teacher.Tidandteacher.tname='张三'); --11、查询两门及其以上低于78分课程的同学的学号,姓名及其平均成绩 selectstudent.Sid,student.sname,avg(score)fromstudent,sc wherestudent.Sid=SC.Sidandstudent.Sidin(selectSidfromSCwherescore<78groupbySidhavingcount (1)>=2) groupbystudent.Sid,student.sname; --12、检索"101"课程分数小于80,按分数降序排列的学生信息 selectstudent.*,sc.Cid,sc.scorefromstudent,sc wherestudent.Sid=SC.Sidandsc.score<80andsc.Cid='101' orderbysc.scoredesc; --13、查询不同老师所教不同课程平均分从高到低显示 selectTeacher.Tid,Teacher.Tname,avg(SC.score) fromTeacher,Course,SC whereTeacher.Tid=Course.TidandCourse.Cid=SC.Cid groupbyTeacher.Tid,Teacher.Tname orderbyavg(SC.score)desc; --14、查询每门课程被选修的学生数 selectCid,count(Sid)fromscgroupbyCid; --15、查询出只有两门课程的全部学生的学号和姓名 selectStudent.Sid,Student.Sname fromStudent,SC whereStudent.Sid=SC.Sid groupbyStudent.Sid,Student.Sname havingcount(SC.Cid)=2 orderbyStudent.Sid; --16、查询名字中含有"林"字的学生信息 select*fromstudentwheresnamelike'%林%'; --17、查询同名同性学生名单,并统计同名人数 selectSname,count(*)fromStudentgroupbySnamehavingcount(*)>1; --18、查询1980年出生的学生名单(注: Student表中Sage列的类型是datetime) select*fromStudentwhereyear(sage)=1980; --19、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列 selectCourse.Cid,Course.Cname,avg(SC.score) fromCourse,SC whereCourse.Cid=SC.Cid groupbyCourse.Cid,Course.Cname orderbyavg(SC.score)desc,Course.Cidasc; --20、查询平均成绩大于等于80的所有学生的学号、姓名和平均成绩 selectStudent.Sid,Student.Sname,avg(SC.score) fromStudent,SC whereStudent.Sid=SC.Sid groupbyStudent.Sid,Student.Sname havingavg(SC.score)>=80; --21、查询课程名称为"计算机基础",且分数低于77的学生姓名和分数 selectSname,score fromStudent,SC,Course whereSC.Sid=Student.SidandSC.Cid=Course.CidandCourse.Cname='计算机基础'andscore<77; --22、查询所有学生的课程及分数情况; selectStudent.*,Course.Cname,SC.Cid,SC.score fromStudent,SC,Course whereStudent.Sid=SC.SidandSC.Cid=Course.Cid; --23、查询任何一门课程成绩在76分以上的姓名、课程名称和分数; selectStudent.*,Course.Cname,SC.Cid,SC.score fromStudent,SC,Course whereStudent.Sid=SC.SidandSC.Cid=Course.CidandSC.score>76; --24、查询成绩低于65分的课程 selectStudent.*,Course.Cname,SC.Cid,SC.score fromStudent,SC,Course whereStudent.Sid=SC.SidandSC.Cid=Course.CidandSC.score<65; --25、查询课程编号为101且课程成绩在80分以上的学生的学号和姓名; selectStudent.*,Course.Cname,SC.Cid,SC.score fromStudent,SC,Course whereStudent.Sid=SC.SidandSC.Cid=Course.CidandSC.Cid='101'andSC.score>80; --26、求每门课程的学生人数 selectCourse.Cid,Course.Cname,count(*) fromCourse,SC whereCourse.Cid=SC.Cid groupbyCourse.Cid,Course.Cname; --27、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩 selectSC.*fromSC,(selectCid,scorefromSCgroupbyCid,scorehavingcount (1)>1)asn whereSC.Cid=n.CidandSC.score=n.score; --28、统计每门课程的学生选修人数(超过5人的课程才统计)。 要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列 selectCourse.Cid,Course.Cname,count(*) fromCourse,SC whereCourse.Cid=SC.Cid groupbyCourse.Cid,Course.Cname havingcount(*)>=5; --29、检索至少选修两门课程的学生学号 selectstudent.Sid,student.Sname fromstudent,SC wherestudent.Sid=SC.Sid groupbystudent.Sid,student.Sname havingcount (1)>=2; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1.向xscj数据库的表student(表中列包括sid,sname,szy,ssex,sage,sscore,sinfo)中插入如下的一行: 081101,王林,计算机,1,1990-02-10,50,NULL insertintostudent (sid,sname,szy,ssex,sage,sscore,sinfo) values('081101','王林','计算机',1,'1990-02-10',50,NULL); 2.将XSCJ数据库的student表中sscore小于50的所有行删除。 deletefromstudentwheresscore<50; 3.将XSCJ数据库的student表中的所有学生的总学分都增加10。 将姓名为“罗琳琳”的同学的备注改为“转专业学习”,学号改为“081251”。 updatestudentsetsscore=sscore+10; updatestudentsetsinfo='转专业学习', sid=081251wheresname='罗琳琳'; 4.用DESCRIBE语句查看STUDENT表的列的信息。 Descstudent; 5.查看STUDENT表sid列的信息。 descstudentsid; 6.查询XSCJ数据库的STUDENT表中各个同学的sname,szy和sscore。 selectsname,szy,sscorefromstudent; 7.查询STUDENT表中计算机系各同学的学号、姓名和总学分,对其总学分按以下规则进行替换: 若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。 列标题更改为“等级”。 selectsid,sname,case whensscoreisnullthen'尚未选课' whensscore<=50then'不及格' whensscore>=50andsscore<=52then'合格' else'优秀'endas等级 fromstudentwhereszy='计算机'; 8.按120分计算成绩,显示SC表中学号为001101的学生课程信息。 selectsid,cid,score*1.20asscorefromscwheresid='001101'; 9.对XSCJ数据库的STUDENT表只选择szy和sscore,消除结果集中的重复行。 selectdistinctszy,sscorefromstudent; 10.求学生的总人数。 selectcount(*)fromstudent; 11.统计备注不为空的学生数目。 selectcount(*)fromstudentwheresinfoisnotnull; 12.统计总学分在50分以上的人数。 selectcount(*)fromstudentwheresscore>=50; 13.求选修101课程的学生的最高分和最低分。 selectmax(score),min(score)fromscwherecid='101'; 14.求学号001101的学生所学课程的总成绩。 selectsum(score)fromscwheresid='001101'; 15.求选修101课程的学生的平均成绩。 selectavg(score)fromscwherecid='101'; 16.求选修了206课程的学生的学号。 selectsidfromscwherecid='206'; 17.查找XSCJ数据库中所有学生选过的课程名和课程号 selectdistinctame,sc.cidfromcourse,scwheresc.cid=course.cid; 18.用FROM子句的JOIN关键字表达下列查询: 查找选修了206课程且成绩在80分以上的学生姓名及成绩。 selectsname,scorefromstudentjoinsconstudent.sid=sc.sidwherecid='206'andscore>=80; 19.用FROM的JOIN关键字表达下列查询: 查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。 selectstudent.sid,sname,cname,scorefromstudentjoinsconstudent.sid=sc.sidjoincourseonsc.cid=course.cidwherecname='计算机基础'andscore>=80; 20.查找XSCJ数据库中课程不同、成绩相同的学生的学号、课程号和成绩。 selecta.sid,a.cid,b.cid,a.scorefromscasajoinscasbona.score=b.scoreanda.sid=b.sidanda.cid! =b.cid; 21.使用Using语句,查找COURSE表中所有学生选过的课程名。 selectdistinctcnamefromcoursejoinscusing(cid); 22.使用左连接,查找所有学生的姓名及他们选修的课程号,若学生未选修任何课,也要包括其情况。 selectstudent.*,cidfromstudentleftouterjoinsconstudent.sid=sc.sid; 23.使用右连接,查找被选修了的课程的选修情况和所有开设的课程名。 selectsc.*,cnamefromscrightjoincourseonsc.cid=course.cid; 24.查询XSCJ数据库STUDENT表中学号为001101的学生的情况。 select*fromstudentwheresid='001101'; 25.查询STUDENT表中总学分大于50的学生的情况。 select*fromstudentwheresscore>50; 26.查询STUDENT表中备注为空的同学的情况。 select*fromstudentwheresinfo<=>null; 27.查询STUDENT表中专业为计算机,性别为女(0)的同学的情况。 select*fromstudentwhereszy='计算机'andssex='0'; 28.查询XSCJ数据库STUDENT表中姓“王”的学生学号、姓名及性别。 selectsid,sname,ssexfromstudentwheresnamelike'王%'; 29.查询XSCJ数据库STUDENT表中学号倒数第二个数字为0的学生学号、姓名及专业名。 selectsid,sname,szyfromstudentwheresidlike'%0_'; 30.查询姓李的同学的学号、姓名和专业名。 (1)selectsid,sname,szyfromstudentwheresnamelike'李%'; (2)selectsid,sname,szyfromstudentwheresnameregexp'^李'; 31.查询学号里包含4、5、6的学生学号、姓名和专业名。 selectsid,sname,szyfromstudentwheresidregexp'[4,5,6]'; 32.查询XSCJ数据库STUDENT表中不在1989年出生的学生情况。 selectsid,sname,szy,sagefromstudentwheresagenotbetween'1989-1-1'and'1989-12-31'; 33.查询STUDENT表中专业名为“计算机”、“通信工程”或“无线电”的学生的情况。 select*fromstudentwhereszyin('计算机','通信工程','无线电'); 34.查询XSCJ数据库中总学分尚不定的学生情况。 select*fromstudentwheresscoreisnull; 35.查找在XSCJ数据库中选修了课程号为206的课程的学生的姓名、学号。 selectsname,sidfromstudentwheresidin(selectsidfromscwherecid='206'); 36.查找未选修离散数学的学生的姓名、学号、专业名。 selectsname,sid,szyfromstudentwheresidnotin(selectsidfromscwherecidin(selectcidfromcoursewherecname='离散数学')); 37.查找选修了离散数学的学生学号。 selectsidfromscwherecid=(selectcidfromcoursewherecname='离散数学'); 38.查找STUDENT表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。 selectsid,sname,szy,sagefromstudentwheresa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 修改
![提示](https://static.bdocx.com/images/bang_tan.gif)