外观
单表查询
查询所有字段
语法:
SELECT * FROM 表名;如:
select * from tb1;
查询指定字段
语法:
SELECT 字段名 FROM 表名;如:
select c1,c3 from tb1;
查询指定数据
可以通过使用WHERE子句来设定查询条件。如:
select * from tb1 where c1>1;
带关键字IN的查询
关键字IN可以判断某个字段的值是否在某一集合中,语法:
SELECT * FROM 表名 WHERE 条件 [NOT] IN (元素1,元素2,...);如:
select * from tb1 where c1 in (0,1,2);
带关键字BETWEEN AND的范围查询
关键字BETWEEN AND可以判断某个字段的值是否在指定的范围之内,语法:
SELECT * FROM 表名 WHERE 条件 [NOT] BETWEEN 取值1 AND 取值2;如:
select * from tb1 where c1 between 1 and 3;
带LIKE的字符匹配查询
LIKE是比较常用的比较运算符,可以实现模糊查询,它有“%”、“_”两种通配符。
“%”表示匹配一个或者多个字段,可以代表任意长度的字符串,长度可以为0。
“_”表示只匹配一个字符。
如下面的语句代表查找字段以bc为结尾的数据行:
select * from tb3 where name like '%bc';
用IS NULL查找空值
IS NULL关键字可以判断字段的值是否为空值,语法如下:
IS [NOT] NULL如查找表中不是NULL的字段:
select * from tb3 where name is not null;
带关键字AND的多条件查询
语法:
SELECT * FROM 数据表名 WHERE 条件1 AND 条件2 [...AND 条件表达式n];如:
select * from tb1 where id>0 and id<2;
带OR的多条件查询
语法:
SELECT * FROM 数据表名 WHERE 条件1 OR 条件2[...OR 条件表达式n];如:
select * from tb1 where c1>2 or c2<'b';
用DISTINCT关键字去除结果中的重复行
语法:
SELECT * DISTINCT 字段名 FROM 表名;如:
去重前:

使用DISTINCT去重后:

使用ORDER BY关键字对查询结果排序
语法:
ORDER BY [ASC|DESC]其中,ASC表示按照升序排序,DESC表示按照降序排序。
如:
select * from d order by a asc;
select * from d order by a desc;
用GROUP BY关键字分组查询
- 单独使用GROUP BY关键字分组
如:
select a,count(*) from d group by a;
- GROUP BY关键字和GROUP_CONCAT()函数一起使用
通常情况下,GROUP BY关键字和聚合函数一起使用。
如:
select a,group_concat(a) from d group by a;
- 按多个字段分组
若第一个字段有相同值时再按照第二个字段分组。
select * from d group by b,a;
用LIMIT限制输出结果的数量
如:
select * from d limit 3;