常用SQL语句详解02
1、DQL 数据查询语句:查询数据记录
1、查询语法;
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
2、基本查询;
情况1:查询所有;
select * from 表名称;
情况2:查询部分;
select id,name from user;
select 列名称1,列名称2 from 表名称;
情况3:计算查询;
select 数学成绩,语文成绩,ifnull(数学成绩,0)+ifnull(语文成绩,0) as 总成绩 from 表名称;
3、运算符;
> 、< 、<= 、>= 、= 、<>
BETWEEN...AND(在什么和什么之间,有[]的意思)
IN( 集合)
LIKE:模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL(判断是否为空)
and 或 &&(与)
or 或 || (或)
not 或 !(非)
4、条件查询;
情况1:使用> 、< 、<= 、>= 、= 、<>(不等于)比较符;
select * from 表名称 where 列名称(int)[> 、< 、<= 、>= 、= 、<>] ?;
情况2:使用模糊查询;
-- 前后有任意一个字符
select * from 表名称 where 列名称(varchar) like "_?_";
-- 前面有0-n个任意字符,后面有一个任意字符
select * from 表名称 where 列名称(varchar) like "%?_";
-- 前面有一个任意字符,后面有0-n个任意字符
select * from 表名称 where 列名称(varchar) like "_?%";
-- 前后有0-n个任意字符
select * from 表名称 where 列名称(varchar) like "%?%";
情况3:使用between…and;
select * from 表名称 where 列名称 between ? and ?;
select * from user where id between 1 and 6;
情况4:使用集合in();
select * from 表名称 where 列名称 in (集合);
select * from user where id in (1,2);
情况5:使用and 或 &&(与)、 or 或 || (或)、not 或 !(非);
select * from 表名称 where 列名称1=? and 列名称2=?;
select * from 表名称 where 列名称1=? or 列名称2=?;
select * from 表名称 where not 列名称1=?;
情况5:使用 is null;
select * from 表名称 where 列名称 is null;
5、查询分组;
情况1:无条件分组;
select 需要显示的列名称,使用的聚合函数 from 表名称 group by 按照那一列分组(列名称);
情况2:有条件分组;
select 列名称,聚合函数 from 表名称 where 条件 group by (列名称)having 分组后条件;
6、分页查询;
limit offset,size
-- offset 起始行数int(0-N),从 0 开始计数,不写,默认就是 0
-- size 每页展示的记录数 int(0-N)
select * from 列名称 limit offset,size;
7、排序查询;
情况1:连用;
1.排序方式有2种:升序 asc 降序 desc ,默认升序
2.如 字段1 和 字段2 排序有冲突,字段1 优先满足。
3.如字段1数据相同,再按照字段2的排序方式排序。
select * from 表名称 order by 列名称1 asc,列名称2 desc,列名称3 asc;
情况2:分开使用;
select * from 表名称 order by 列名称 asc;
select * from 表名称 order by 列名称 desc;
8、聚合函数;
count 统计个数
select count(列名称) from 表名称;
max 求最大值
select max(列名称) from 表名称;
min 求最小值
select min(列名称) from 表名称;
sum 求和
select sum(列名称1+列名称2) from 表名称;
avg 求平均值
select avg(列名称) from 表名称;
9、补充;
一般group by与聚合函数连用,group by单独使用没有太大意义,如果有多条数据它只显示分组后的每组的第一条数据。