sql查询语句练习(解析版)

sql查询语句练习(解析版)

ID:6336038

大小:145.00 KB

页数:13页

时间:2018-01-10

sql查询语句练习(解析版)_第1页
sql查询语句练习(解析版)_第2页
sql查询语句练习(解析版)_第3页
sql查询语句练习(解析版)_第4页
sql查询语句练习(解析版)_第5页
资源描述:

《sql查询语句练习(解析版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、sql查询语句练习(解析版)BYDD表情况Student(S#,Sname,Sage,Ssex)学生表Course(C#,Cname,T#)课程表SC(S#,C#,score)成绩表Teacher(T#,Tname)教师表createtableStudent(S#varchar2(20),Snamevarchar2(10),Sageint,Ssexvarchar2(2));createtableCourse(C#varchar2(20),Cnamevarchar2(10),scorevarchar2(4));createtableSC(S#varchar2(20),C#varch

2、ar2(20),scorevarchar2(4));createtableTeacher(T#varchar2(20),Tnamevarchar2(10));insertintoStudent(S#,Sname,Sage,Ssex)values('1001','李五','15','男');insertintoStudent(S#,Sname,Sage,Ssex)values('1002','张三','16','女');insertintoStudent(S#,Sname,Sage,Ssex)values('1003','李四','15','女');insertintoStuden

3、t(S#,Sname,Sage,Ssex)values('1004','陈二','14','男');insertintoStudent(S#,Sname,Sage,Ssex)values('1005','小四','15','男');问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号; selecta.S#from(selects#,scorefromSCwhereC#='001')a,(selects#,score fromSCwhereC#='002')b wherea.score>b.scoreanda.s#=b.s#;解析:(selects#,scorefr

4、omSCwhereC#='001')a//从SC中查询C#=001的学生学号和分数,并定义为a表。(selects#,scorefromSCwhereC#='002')b//从SC中查询C#=002的学生学号和分数,并定义为b表。wherea.score>b.scoreanda.s#=b.s#条件,a表与b表中学号相同且分数比b中的高。2、查询平均成绩大于60分的同学的学号和平均成绩;   selectS#,avg(score)romsc   groupbyS#havingavg(score)>60;解析:groupbyS#havingavg(score)>60这里是指平均分数大

5、于60分的学号。使用HAVING子句原因是,WHERE关键字无法与合计函数一起使用。合计函数(比如SUM)常常需要添加GROUPBY语句,根据一个或多个列对结果集进行分组。3、查询所有同学的学号、姓名、选课数、总成绩; selectStudent.S#,Student.Sname,count(SC.C#),sum(score) fromStudentleftOuterjoinSConStudent.S#=SC.S# groupbyStudent.S#,Sname解析:StudentleftOuterjoinSConStudent.S#=SC.S#左外连接,从student表返回所

6、有的行放于左表中,从SC中返回的与左表匹配的行放于右表。Student表中有但SC表中没有的在右表中对应行留空。 groupbyStudent.S#,Sname以Student.S#,Sname分组。4、查询姓“李”的老师的个数; selectcount(distinct(Tname)) fromTeacher whereTnamelike'李%';解析:distinct(Tname) 在表中,可能会包含重复值。DISTINCT用于返回唯一不同的值,这里的作用就是防止返回的Tname出现重复值。 whereTnamelike'李%'模糊查询,"%"代表一或多个字符。5、查询没学过

7、“叶平”老师课的同学的学号、姓名;SelectStudent.S#,Student.Sname   fromStudent    whereS#notin(selectdistinct(SC.S#)fromSC,Course,Teacherwhere SC.C#=Course.C#andTeacher.T#=Course.T#andTeacher.Tname='叶平');解析:notin题目是查询没学过“叶平”老师课的同学的学号、姓名,这里使用notin就表示所要查询的S#不在后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。