数据查询
数据查询分为以下几种:单表查询、连接查询、嵌套查询、集合查询。
语法格式:
select [all | distinct] <目标列表达式>[,<目标列表达式>] …
from <表名或视图名>[, <表名或视图名> ] …
[where <条件表达式> ]
[ group by <列名1> [ having <条件表达式> ] ]
[ order by <列名2> [ asc|desc ] ];
单表查询
单表查询:仅涉及一个表,是一种最简单的查询操作。
select sno, count(cno)
from sc
where grade<60
group by sno
having count(cno)>3
order by count(cno) desc;
功能分析:
这条 SQL 查询的主要功能是找出所有不及格课程数超过3门的学生,列出他们的学生编号及其相应的不及格课程总数,并按这些不及格课程的数量降序排列。
连接查询
连接查询:若一个查询同时涉及两个以上的表,则称之为连接查询。
select sname, cno, grade
from sc, s
where s.sno=sc.sno and grade>90;
功能分析:
这段代码的功能是从学生选课信息表中选择出成绩大于90分的学生的姓名、所获课程编号以及对应的成绩。
嵌套查询
嵌套查询:将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
select sname
from s
where sno in
(select sno
from sc
where cno= ‘002’);
集合查询
集合查询:对多个SELECT语句的结果进行集合操作,并操作UNION
,交操作INTERSECT
和差操作MINUS
。
select sno
from sc
where cno='001'
intersect
select sno
from sc
where cno='003';
功能分析:
这段代码的功能是找出既选修了课程 ‘001’ 又选修了课程 ‘003’ 的学生编号。
暂时还没有更新完,后续会进行更新