目录
基本查询语句顺序
select
from
where
group by
having
order by
limit
select
from
where
group by
having
order by
limit
简单的数据查询
查询所有字段
select * from 表名;
查询指定字段
select 字段名1,字段名2,...字段名n from 表名;
查询指定记录,where设置指定条件
select * from 表名 where 条件;
多条件查询
and关键字(符合所有条件的记录被返回)
select * from 表名 where 条件1 and 条件2;
或
select * from 表名 where 条件1 && 条件2;
or关键字(符合所有条件中的一个即可返回记录)
select * from 表名 where 条件1 or 条件2;
或
select * from 表名 where 条件1 || 条件2;
in关键字(返回字段值等于指定集合中任意一个值的记录)(ps:or关键字的升级版)
select * from 表名 where 字段名 in (字段值1,字段值2,...字段值n);
查询空值
查询为空值的记录 is null
select * from 表名 where 字段名 is null;
查询不为空值的记录 is not null
select * from 表名 where 字段名 is not null;
查询结果去重 distinct
select distinct 字段列表 from 表名;
查询字段值在某个范围的记录between and
select 字段列表 from 表名 where 字段 between 值1 and 值2;
查询字段值不在某个范围的记录 not between and
select 字段列表 from 表名 where 字段 not between 值1 and 值2;
模糊查询(字符匹配查询)like、通配符(%、_)
select * from 表名 where 字段 like '值%'
通配符 % 可以匹配出任意长度的字符,可以在被匹配字符的任意位置。
通配符 _ ,一个只能匹配出一个字符,可以在被匹配字符的任意位置。
‘值n%’:返回以值n开头的。无论值n后面有0个、1个、多个字符都可以。
‘%值n’:返回以值n结尾的。无论值n前面有0个、1个、多个字符都可以。
‘%值n%’:返回只要包含值n的。无论值n后面有0个、1个、多个字符都可以。
‘值n_’:返回以值n开头的。值n后面只能有1个字符的。
‘值n_ ':返回以值n开头的。值n后面只能有2个字符的。
'值n _ ':返回以值n开头的。值n后面只能有3个字符的。
…
‘值n’:返回以值n结尾的。值n前面只能有1个字符的。
’ _ 值n’:返回以值n结尾的。值n前面只能有2个字符的。
’ _ _值n’:返回以值n结尾的。值n前面只能有3个字符的。
…
‘_值n_’:返回包含值n,且值n前面只有一个字符,后面只有一个字符的。
排序查询 order by
单字段排序
select * from table 表名 order by 字段名;
多字段排序
select * from table 表名 order by 字段名1,字段名2,...;
ps:首先按照字段名1的值进行排序,对于字段名1值相同的记录再按照字段名2的值进行排序。
单个字段的升序排序或降序排序
select * from table 表名 order by 字段名 asc|desc;
多个字段的升序排序或降序排序
select * from table 表名 order by 字段名1 asc|desc,字段名2 asc|desc,...;
限制查询结果的数量 limit 起始索引 条数
select * from table 表名 limit 起始索引 条数;