目录
增删改查
增
删
改
查
常用函数
分组查询
模糊查询
分页
左连接查询/右连接查询/内连接查询/外连接查询
左连接查询 left join ... on
右连接查询 right join ... on
内连接查询 inner join ... on
全连接查询 full outer join .... on
其他英文字段说明
insert into + 表名(列名字段)value(列名对应值)
如:insert into student(id,name,sex)value('1','小白','男');
delete from +表名 where +条件;
如:delete from bm_act_spot_check_audit where id = '2612' ;
update +表名 set 列名字段 改为 值 where +条件;
如:update bm_act_spot_check_audit set `city_id`='110100' where `id`='2612' ;
select * from +表名 where + 条件
如:select * from bm_act_spot_check_audit where `rider_name`='测试' ;
select 列名字段 from +表名 where + 条件 即 只查询 该列数据
如:select act_type from bm_act_spot_check_audit where `rider_name`='测试' ;
求平均值 avg(列名字段)
select avg(plan_id) from bm_act_spot_check_audit where `rider_name`='测试' and `act_type`='2' ;
求最小绝对值 min(列名字段)
select min(plan_id) from bm_act_spot_check_audit where `rider_name`='测试' and `act_type`='2' ;
求最大绝对值 max(列名字段)
select max(plan_id) from bm_act_spot_check_audit where `rider_name`='测试' and `act_type`='2' ;
求和 sum(列名字段)
select sum(plan_id) from bm_act_spot_check_audit where `rider_name`='测试' and `act_type`='2' ;
求计算条数 count(*)
select count(*) from `bm_act_spot_check_audit` where `rider_name`='测试' and `act_type`>1;
升序查询 order by +列名字段 +asc
如:select * from `bm_act_spot_check_audit` where `rider_name`='测试' order by `act_type` ASC ;
降序查询 order by +列名字段 +desc
如:select * from `bm_act_spot_check_audit` where `rider_name`='测试' order by `act_type` desc ;
group by 列名字段
如:select * from bm_act_spot_check_audit where `rider_name`='测试' group by act_type ;
带条件分组
group by 列名字段 having +条件
如:select * from bm_act_spot_check_audit where `rider_name`='测试' group by act_type having `act_type`>1 ;
%a 即字符串前不限长度,只有后边包含 a即符合查询条件
如:select * from bm_act_spot_check_audit where `rider_name` like '%测试' ;
_a 即查询字符a前只有一个字符的 结果符合查询条件,如 _ab _ac _ade
如:select * from bm_act_spot_check_audit where `rider_name` like '_测试' ;
[abc]d 即 查询出结果为 ad bd cd 符合查询结果
如:select * from bm_act_spot_check_audit where `rider_name` like 'TEST[1-9]' ;
[^ABC]D 即 查询出非AD BD CD 的符合条件的结果
如:select * from bm_act_spot_check_audit where `rider_name` like '测试[^4-6]' ;
limit 0,5; 即 展示1到第5行
如:select * from bm_act_spot_check_audit where `rider_mobile`='14000000000' limit 0,5 ;
假设 有 学生表student
id | name |
1 | 张三 |
2 | 李四 |
3 | 王五 |
4 | 婉婉 |
成绩表achievement
id | asid | english |
1 | 1 | 90 |
2 | 1 | 78 |
3 | 3 | 99 |
4 | 4 | 70 |
5 | 5 | 100 |
即 把左边表的数据全拿出来,右边没有的 为空,
如:查询出每个学生的英语成绩
select s.name,a.english from student s left join achievement a on s.id=a.asid;
其结果如下
name | english |
张三 | 90 |
张三 | 78 |
李四 | |
王五 | 99 |
婉婉 | 70 |
即把右边的表数据全拿出来,左边表的数据若没有,可以为空,同样,若左边的数据多余的也不展示
如:查询参加英语考试的每个学生的成绩
select s.name,a.english from student s right join achievement a on s.id=a.asid;
其结果如下
name | english |
张三 | 90 |
张三 | 78 |
王五 | 99 |
婉婉 | 70 |
即 两表都有的数据展示,其他数据不展示
如:select s.name,a.english from student s inner join achievement a on s.id=a.asid;
其结果如下
name | english |
张三 | 90 |
张三 | 78 |
王五 | 99 |
婉婉 | 70 |
即 两张表的数据全部展示,无对应的数据展示空
如:select s.name,a.english from student s full outer join achievement a on s.id=a.asid ;
其结果如下
name | english |
张三 | 90 |
张三 | 78 |
李四 | |
王五 | 99 |
婉婉 | 70 |
100 |
and 相当于 且 必须满足
如:select * from bm_act_spot_check_audit where `rider_name` ='测试' and `act_type`='2';
or 相当于 或 不需要满足
如:select * from bm_act_spot_check_audit where `rider_name` ='测试' or `act_type`='2';