数据表中数据常用的查询操作
查询操作,在增删改查操作中,是属于操作频率最高,同时操作方式最多样的,包含单表的操作以及多表关联的操作。
1、 单表查询
基于单个数据表的数据查询操作,我们称为单表查询,单表查询是高级查询的基础,也是项目中在进行****数据测试时****使用最多的sql语句。
1.1、 全表查询
基本操作语法:(在工作中不推荐)
格式: SELECT * FROM 表名;
1.2、 指定字段查询
基本操作语法:
1.3、 剔重字段查询
基本操作语法:
1.4、 单条件比较查询
基本操作语法:
1.5、 多条件逻辑与查询
基本操作语法:
1.6、 多条件逻辑或查询
基本操作 语法:
1.7、 BETWEEN…AND范围查询
基本操作语法:
1.8、 IN 范围查询
基本操作语法:
1.9、 IS NULL 空值查询
基本操作语法:
1.10、 模糊查询
%: 任意位的任意字符 类似于正则 .*
_: 一位任意字符 .
语法: SELECT * FROM 表名 WHERE 字段 like ‘’;
基本操作语法:
1.11、 排序查询
格式: SELECT * FROM 表名 ORDER BY 字段名 [asc|desc];
asc: 升序排序 默认值
desc: 降序排序
– 多字段排序
SELECT * FROM 表名 ORDER BY 字段名 [asc|desc],字段名 [asc|desc];
基本操作语法:
1.12、 分页查询
格式: SELECT * FROM 表名 LIMIT 跳过前几条数据,获取数据的条数;
第一个参数可以省略不写,省略不写从头开始取数据
每页3条数据,
第一页: 0,3
第二页:3,3
第三页:6,3
第四页:9,3
(n-1)* 每页数据的条数
基本操作语法:
查询一下 奖金最高的三个人
1.13、 分组查询
基本操作语法:
2、 聚合查询
聚合查询,是通过MySQL内建的聚合函数,完成数据库中查询数据的聚合运算结果,如求和、求平均值等
2.1、 count()
按照指定的条件,查询数据表中的所有记录数
按照指定列查询记录数
分组查询不同小组的记录数
2.2、 sum()
求和函数,查询指定列的所有数据的和,查询所有员工的奖金总和
2.3、 avg()
求平均数函数,查询指定列的所有数据的平均值,查询所有员工的平均奖金
2.4、 max()
查询指定列中的最大值数据,查询奖金最高的员工
2.5、 min()
查询指定列中的最小值数据,查询奖金最少的员工
补充: sql 语句执行流程
SELECT * FROM 表名 WHERE 条件 分组 排序 分页;
6 1 2 3 4 5
3、IF语句查询
基本语法:IF ( expr1 , expr2 , expr3 )
expr1 的值为 TRUE,则返回值为 expr2
expr1 的值为FALSE,则返回值为 expr3
案例操作:查询员工表中,奖金大于10000的人为有钱人,否则为打工人
mysql> select empname,if( comm>10000,"有钱人","打工人") as a from employee;
+-----------+-------------------+
| empname | a |
+-----------+-----------+
| 宋江 | 有钱人 |
| 卢俊义 | 有钱人 |
| 吴用 | 有钱人 |
| 林冲 | 打工人 |
| 秦明 | 打工人 |
| 呼延灼 | 打工人 |
| 董平 | 打工人 |
4 CASE…WHEN语句查询
4.1 简单函数
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END;
示例:查询员工表中,上级编号0的是老大,为1的是二把手,为1201的是三把手,其他为小兵。
select empname,case mgr when 0 then “老大” when 1 then ‘二把手’ when 1201 then “三把手” else ‘小兵’ end as 级别from employee;
4.2 搜索函数
CASE WHEN [expr] THEN [result1]…ELSE [default] END;
示例:查询员工表中,奖金大于20000的人为地主,10000-20000为富农,1000-10000为中农,其余为贫农.