本篇文章主要讲如何写SQL,虽然我在之前有篇文章中写到过数据库的操作和概念,其中有讲到数据库和表的操作语句以及有哪些函数和查询关键字(本篇不赘述),但毕竟理解概念和会实践书写是两码事。。
身为一名测试人员,我在工作中用到最多的sql语句是查询即select,于是用多了就发现写select 远不止想的这么简单,在实际场景中我们最好是能根据不同的需求写出多样的select ,从而提高自己的工作效率,还只会用select * from merchant
语句的已经out了,我们应该学习更多的关键字哦~
sql中关键字的书写顺序
首先我们要知道SQL语句中的关键字是有固定顺序的,只有关键字的位置写对了,我们才能写出正确的sql。如下就是最常用select 语句:
select distinct(去重) 需查询的字段名或者函数 (查询展示全部字段可用*)
from 表名(这里的表名和前面的字段名 可以取别名使用)
left/right join 要连接查询的表名 on 连接条件的等值判断
where 子查询的字段过滤条件,不能包含聚合函数的条件
group by 分组的依据 having 分组后信息的过滤条件,可包含聚合函数的条件
order by 排序的字段 limit 限制展示行数
select语句书写示例:
//查询merchant表并展示全部字段
select * from merchant;
//给merchant表取别名为m,查询m表中merchant_id ==110的企业名称并放在第一列,同时展示m表的全部字段
select m.merchant_name,m.* from merchant m where merchant_id = 110;
//统计每个admin下有多少个企业,共展示两列--admin和count(admin)
select admin,count(admin) from merchant group by admin;
//筛选出企业个数大于10的admin并按企业创建时间的倒序排列,共展示两列--admin和count(admin)
select admin,count(admin) from merchant group by admin having count(admin)>10 order by creat_time desc;
我相信记住了select语句中使用的上述关键字的顺序和用法,大家都能很顺利的写出符合心意的sql语句啦,赶快自己试着写起来吧~
sql中关键字的执行顺序
我们知道sql中关键字的书写顺序,我们还需清楚sql中关键字的执行顺序,才能更好的理解sql的使用。如下是执行顺序:
sql中的聚合函数
聚合函数概念:函数作用于一组数据,并返回一个值。
AVG 和 SUM :适用于数值类型
例如:select avg(salary),sum(salary)*2 from employees;
MIN 和 MAX :适用于数值型,字符串型,日期时间类型
例如:select min(salary),max(hire_date) from employees;
COUNT :用于统计个数或者行数
例如:select count(id) from employees;
统计总数的方法总共有三种,其中count(*) 和 count(1) 都可以正确的统计总条数,但count(字段名)统计的总数可能有误差,因为在count(字段名)在统计时不计算NULL值。
搭配聚合函数使用的关键字
group by:
其中select子句中的字段必须来自group by 后的分组字段。
例如:
select job_id,avg(salary) from emplyees group by job_id;
having:
只能声明在group by的后面,且字段/函数来源于select子句中。
例如:
select job_id,max(salary) from emplyees group by job_id having max(salary) >100;