讲DML查询语句之前我们先建一个数据库存入数据用于查询,为了方便说明我们都暂且都用int类型,不用字符串类型
查询记录
select * from 表名; (*可以换成字段名)
查询不重复的记录
SELECT distinct field1,field2 FROM 表名;
只要field1,field2任何一个字段有不同就会选择(一般使用distinct只筛选一个字段)
如果每个字段里面的字段值有重复相同的那么就选其中一个做代表就行,总之把一个字段里的不同字段值的情况全部列出来
条件查询
在自定义限定的范围内查询不重复的记录
条件字段比较符号: =,<,>,>=,<=,!= 等比较运算符,多个条件之间可以使用or and 等
where 后面接条件
select * from 表名 where 条件
排序和限制
排序:
- asc: 由低到高,也是默认值
select * from employee order by salary asc;
- desc: 由高到低
select * from employee order by salary desc;
- 多个字段排序
select * from employee order by salary desc,id desc;
限制:
在语句的最后面加上 limit 数字,数字来进行查询数量的限制,
limit 数字n,数字m 数字n代表从第几条记录开始取(从0开始计),数字m代表取几条
聚合
- sum求和
select sum(字段名) from 表名;
- count 记录总数
select count( * 或 字段名) from 表名;
- max最大值
select max(字段名) from 表名;
- min最小值
select min(字段名) from 表名;
- GROUP BY 分类聚合(按部门对员工工资分组求和)
select department,sum(salary) from employee group by department;
- WITH ROLLUP 分类聚合后的结果进行再汇总(把按部门分组求和的结果再总的求和)
select sum(salary) from employee group by department with rollup;
- HAVING(把每个部门员工的总工资分组求和后 筛选总工资符合条件的部门)
注意:having 和 where 的区别,having 是对聚合后的结果进行条件过滤,而where是在聚合前就对记录进行过滤,
应该尽可能的使用where
select sum(salary) from employee group by department having sum(salary)>1000
上面函数可以一起使用,总和评估: