#字段控制查询
去除重复记录
去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就 存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记 录,需要使用DISTINCT:
select distinct 字段的名字 from 表的名称;
两列进行运算(为数值类型)
select 列名1+列名2 from 表名;
注意:如果字段中存在null 相加的结果还是null 所以用到了把null转化为0的函数 ifnull
select 列名1+ifnull(列名2,0) from 表名;
给计算后的列名添加别名
select 列名1+ifnull(列名2,0) 别名 from 表名;
#排序 order by
语法 : order by 列名 asc(默认的 升序) 或者 desc (降序)
#聚合函数 sum avg max min count
count 语法
select count(*或者列名) as 别名 from 表名 where 条件语句;
注意,count()函数中给出的是列,那么只统计列非NULL的行数。
sum 和avg 语法
select sum或者avg(列名) from 表名;
max和min 语法
select max或者min(列名) from 表名;
#分组查询 group by
注:凡和聚合函数同时出现的列名,一定要写在group by之后
having 子句
查询工资总和大于9000的部门编号以及工资和:
SELECT deptno, SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal) > 9000;
注:having与where的区别:
1.having是在分组后对数据进行过滤.
where是在分组前对数据进行过滤
2.having后面可以使用聚合函数(统计函数)
where后面不可以使用聚合函数。
WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。
#限制查询 limit
语法:
select * from 表名 limit 起始行,总行数;