select语句的顺序:
select xxx列 from 表名 where xxx条件 group by xxx条件 having xxx条件 order by (ASC|DESC)
一定要注意出现的位置!!!
注意:目标列表达式的顺序可以与表中的顺序不一致。
说明:注意次序,是top 5 * ※在最后面!
(图片上面的字打错了:distinct)
放在列名前或星号前
查找学生表中系为计算机系的所有学生
重点:like的用法
注意:between and 是含等号的包含!
(不在:not between and)
重难点:如何使用like模糊查找?
注意:方括号[]的用途!!一个一个遍历!
delete from 顾客 where 顾客编号 like '__10' or 顾客编号 like '__11'
注意:是两个顾客编号 like xxx 不能只写一个,每次or后面都要把主语跟上!
注意:只能用is null 或者 is not null !
即:如果在一个条件相同的情况下,按下一个条件进行排序。
说明:order by xxx (desc|asc) , xxx (desc|asc) 就不用再加order by了!
注意:count()用于统计元组个数或者是该列的列值个数(只要是一个列值就要统计,包含重复值!)
说明:可以在count()函数中加入distinct xxx,来达到去除重复值的目的!
错误!不能这么写:计算函数不能出现在where子句中!
说明:count(*)是返回表中的记录数,一行即为一个记录!
group by cno:以cno进行分组,不同的课程号分为一组!
注意:group by后面的属性名必须出现在前面的select后面!!!!!
Group By的特殊用法: 想用聚合函数查找但where不能用怎么办?
可以加一个group by 语句,因为group by 语句后面可以用 having having后面可以跟上聚合函数!
例:
查询平均成绩大于80的学生的学号?
注意:在Having 后面可以直接用聚合函数,但是在where 后面不行!!
注意Having的用法!
用了group by就必须使用集合函数,但是用了集合函数不一定需要用group by!
具体:
1、当select语句后面只有聚合函数时则不需要添加group by语句。
2、当select语句后面既有聚合又有非聚合语句时要在最末加上group by(非聚合)。
同时:group by后面的列名必须出现在前面的select语句后。
where 一般在 group by 前,having 在group by 后,where后不能有集合函数(select可以有),having后可以跟集合函数。