sql基础查询语句运用
来源:互联网 发布:淘宝助理5官方下载 编辑:程序博客网 时间:2024/06/05 01:53
转载自Last updated
暂且 用这个表来做一下sql基本查询知识的总结
Student(S#,Sname,Sage,Ssex) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别
Course(C#,Cname,T#) 课程表 C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩
Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字
问题及答案:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#=’001′) a,(select s#,score
from SC where C#=’002′) b
where a.score>b.score and a.s#=b.s#;
答:a,b作为查询课程的这个结果集的别名
2、查询平均成绩大于60分的同学的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;
答:
avg()是得出平均数的函数
group by是根据查询出来的数据进行分组。例如这里就是根据查询出来的S#这个学号来分组。
having,是用于和函数一起使用的过滤条件(where无法与函数关键字一起用)
***where用于group by 前,而having用于group by之后***
WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
GROUP BY 子句用来分组 WHERE 子句的输出。
HAVING 子句用来从分组的结果中筛选行。
3、查询所有同学的学号、姓名、选课数、总成绩;
select Student.S#,Student.Sname,count(SC.C#),sum(score) fromStudent left
Outer join SC on Student.S#=SC.S# group by Student.S#,Sname
答:count()计算个数,sum()计算总数。
left join 是left Outer join简写,左外连接,将左表的全部查询结果显示,右表根据匹配信息显示,若没有则直接显示null.
4、查询姓“李”的老师的个数;
select count(distinct(Tname))
from Teacher
where Tname like ‘李%’;
答:distinct()返回唯一不同的值,即出现了两个相同的数据,但是只显示一个。
like 操作字,意思为包含,以…. 。
NOT LIKE :不包含
LIKE ‘%d’ :以d结尾的
LIKE ‘d%’ :以d开头的
LIKE ‘%d%’ :包含d的
5、查询没学过“叶平”老师课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’);
答:根据给出的信息Teacher.Tname=’叶平’
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#=’001’and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);
将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
- sql基础查询语句运用
- SQL查询语句基础
- SQL之查询语句的实践运用
- sql server 查询语句基础
- Unity复习之SQL语句基础查询
- SQL基础(四)之查询语句
- 关于mysql查询语句基础SQL
- Oracle中的SQL基础查询语句--下
- SQL语句之查询基础(一)
- SQL语句之查询基础(二)
- sql语句简单运用
- SQL语句运用-高级
- SQL 语句 综合运用
- SQL Select查询原理--查询语句执行原则(基础)
- 常用的SQL语句基础高级sql查询
- Sql Server Alter语句 运用
- SQL语句简单分页运用
- SQL查询语句的书写要点(基础一)
- DES与3DES 加解密实例(c++)
- 面试题-java自动拆箱与装箱
- 面试题-Integer和int的区别
- NOIP2017有感
- JTable 行 列 单元格 操作小结
- sql基础查询语句运用
- [NOIP] [最短路] [拓扑排序] [DP] NOIP2017Day1 逛公园
- 小白成长日记(13)--(c++)文件的输入输出
- 学习日记-WMware安装Mac系统
- 6.18九九乘法表
- 关于坑爹的NDK开发的大坑
- 1004. 成绩排名
- ES6_symbol
- 对有向无环图顶点重新编号使其邻接矩阵变为下三角矩阵