最后,再补充一些:
分组group
常用于统计时,如分组查总数: select gender,count(sno) from students group by gender (查看男女学生各有多少)
注意:从哪种角度分组就从哪列\
对于多重分组,只需将分组规则罗列。比如查询各届各专业的男女同学人数 ,那么分组规则有:届别(grade)、专业(mno)和性别(gender),所以有\
select grade, mno, gender, count(*) from students
group by grade, mno, gender
通常group还和having联用,比如查询1门课以上不及格的
学生,则按学号(sno)分类有:
select sno,count(*) from grades where markgroup by sno having count(*)>1
6.UNION联合
合并查询结果,如:
SELECT * FROM students WHERE name like ‘张%’ UNION [ALL]
SELECT * FROM students WHERE name like ‘李%’
7.多表查询
a.内连接
select g.sno,s.name,ursename
from grades g JOIN students s ON g.sno=s.sno
JOIN courses c ON o=o (注意可以引用别名) b.外连接 b1.左连接
select o,max(coursename),count(sno) from courses LEFT JOIN grades ON o=o group by o
左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。
左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。
b2.右连接
与左连接类似
b3.全连接
select sno,name,major
from students FULL JOIN majors ON students.mno=majors.mno
两边表中的内容全部显示
c.自身连接
select o,ursename,c1.pno,ursename from courses c1,courses c2 where c1.pno=o
采用别名解决问题。
d.交叉连接
select lastname+firstname from lastname firstanme
CROSS JOIN
相关推荐: