目录
一、查询数据
1、基本查询语句
语法格式:select { * | <字段列表> } from <表1>,<表2>...... [where <表达式>] [group by] [having] [order by] [limit]
2、查询所有字段
实现方法是使用星号*通配符查表示所有列的名称:select * from 表名;
2、查询指定字段
语法格式:select 字段1,字段2,....字段n from 表名;
3、查询指定记录 where
通过where子句可以对数据进行过滤,语法格式为:select 字段名 from 表名 where 查询条件
4、带in关键字的查询
in操作符用来查询满足指定范围内的条件的记录。
查询user_name为admin和admin1的记录:select user_name,passwords from users where user_name in ('admin','admin1');
相反,使用not in()用来检索不在条件范围内的记录:
5、带between and的范围查询
between and用来查询某个范围内的值,需要两个参数,即开始值和结束值。
查询id字段值1到3范围内的值:select * from users where id between 1 and 3;
6、带like的字符匹配查询
如要查询包含某个字符的值时,使用通配符进行匹配查找。
%号:匹配任意长度的字符。_号:匹配任意一个字符
demo:select * from users where user_name like 'admin_';
demo:select * from users where user_name like '%1';
7、查询空值
在select 语句中使用is null子句,可以查询某字段内容为空的记录。
查询passwords字段的值为null记录:select * from users where passwords is null;
相反的是not is null。
8、带and的多条件查询
可以使用and连接两个甚至多个查询条件。
查询user_name字段值为admin开头的值,并且 id大于等于4:
select * from users where user_name like 'admin_' and id >= 4;
8、带or的多条件查询
与and相反,使用or操作符,只要满足其中一个条件即可返回。
select * from users where user_name like 'admin_' or id >= 4;
9、查询结果不重复
语法格式为:select distinct 字段名 from 表名
过滤重复值:
10、对结果进行排序
使用order by子句对查询结果进行排序。
select * from users order by user_name desc;
11、分组查询
分组查询是对数据按照某个或多个字段进行分组,使用group by进行分组:[group by 字段] [having <条件表达式>]
group by关键字通过和集合函数一起使用,例如:max()、mix()、count()、sum()、avg()等。
select user_name,count(*) as aa from users group by user_name;
12、使用limit限制查询结果的数量
语法格式:limit [位置偏移量,] 行数 位置偏移量:从哪行开始
显示前两行:
显示从第二行开始的一行
二、使用聚合函数查询
函数 | 作用 |
---|---|
avg() | 返回某列的平均值 |
count() | 返回某列的行数 |
max() | 返回某列的最大值 |
mix() | 返回某列的最小值 |
sum() | 返回某列的和 |
demo:计算表中总的行数:
查找id字段最小的值
三、合并查询结果union
利用union关键字,可以给出多条select语句,并将它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。