SQL语句-常用函数讲解
<pre><code>Sum
求和,函数返回数字列的总和。
例:查询所有员工基本工资总和
select sum(sal) from emp;
Avg
平均值。
例:查出员工基本工资水平
select avg(sal) form emp;
Count
统计行数。
例:求出有奖金的员工人数
select count(empno) from emp where comm>0;
Min
最小值。
例:展示基本工资最低的员工信息
select *,min(sal) from emp;
Max
最大值。
例:展示基本工资最高的,职业为clerk的员工信息
select *,max(sal) from emp where job=clerk;
as
别名,查询出信息后,将字段值以其他名称展示。
例:查询学生的数学平均分及总人数,并将数学平均分列展示为’数学平均分’,总人数列展示为’总人数’
Select avg(math) as ‘数学平均分’,count(id) as ‘总人数' from emp;
Null
空值,表示未知数据。
插入数据时可以选择列插入,这时未选择的列数值未知,则会自动用NULL值填充。
NUll特征:
1.不能对Null值使用比较运算符。
2.任何值和null一起运算时,结果都为null。
在需要对Null进行处理时需要用到is Null和is not null操作符。
例:查询出没有奖金的员工
select * from emp where comm is null;
is null
为空值。
is not null
不为空值。
例:查询出没有奖金的员工
select * from emp where comm is null;
ifnull(字段值,m)
在运算时遇到空值的处理。
当字段值为null,则将值置为m。
当字段值不为null,则值为它本身。
例:查询出员工的总工资
select sal+isnull(comm,0) from emp;
group by
分组,将查询结果按照某个字段进行分组,字段值相同的为一组。
例:统计出student表中男生/女生的人数
Select count(id) from student group by sex;
Having
对分组后的数据进行条件过滤。
用在分组查询后指定一些条件来对分组查询结果进行再过滤。
having 子句中使用到的每一个字段必须出现在select列表中;有些数据库例外,如oracle。
例:找出student表中语文成绩>90分的人数在2人以上的班级
select count(chineses) from student where chineses >90 group by class having count(chineses)>2;
length
统计字符个数。
where和having的区别
1.执行顺序不一致:where>分组\聚合函数>having。
1.where后不能跟聚合函数,因为where执行顺序>聚合函数;having后可以跟聚合函数。
即:有聚合函数和分组操作时,需用having进行过滤。
2.where语句在group by语句之前;SQL会在分组之前执行where语句;
2.having语句在group by语句之后;SQL会在分组之后执行having语句;
即:分组后一定要用having;没有分组的话,用having或者用where都可以</code></pre>