SQL常用命令及顺序:
顺序:
from-where-groupby-having-select-orderby-limit
select * (必须)
from 表1
join 表2
where 条件
group by 字段
having 条件
order by 字段
limit ...
2.1 检索数据(select语句)
去重检索:"订单表”中的销售人员有哪些
select distinct sales_name
from spm_order
2.2 限定条件(where)
从订单表中筛选出"北上广深杭"这五个城市,利润大于等于0,并且产品名称包含笔的所有订单
select * from spm_order
where city in ('北京','上海','广州','深圳','杭州')
and profit >= 0 and product_name like '%笔%'
3 SQL创建计算字段
3.1 计算字段(加减乘除)
在订单表中加入新字段:平均销售额(销售额/数量)
select *,
sales/quantity as '平均销售额'
from spm_order
3.2 拼接字段(concat)
在订单表中加入新拼接字段,把城市和销售拼接起来作为新拼接字段
select CONCAT(city,'-',sales_name)
from spm_order
4.数据分组、过滤与排序
4.1数据分组(group by)
计算销售人员在2018年的销售额和利润
select sales_name,sum(sales),sum(profit)
from spm_order
where order_date BETWEEN '2018-01-01' and '2018-12-31'
GROUP BY sales_name
4.2 数据过滤(having)
计算销售人员在2018年的销售额和利润,并且只显示利润大于10w的销售人员
select sales_name,sum(sales),sum(profit)
from spm_order
where order_date BETWEEN '2018-01-01' and '2018-12-31'
GROUP BY sales_name
having sum(profit) > 100000
4.3 结果排序(order by .... desc)
计算销售人员在2018年的销售额和利润,并且只显示利润大于10w的销售人员,按销售额降序排列
select sales_name,sum(sales),sum(profit)
from spm_order
where order_date BETWEEN '2018-01-01' and '2018-12-31'
GROUP BY sales_name
having sum(profit) > 100000
order by sum(sales) desc
常见日期命令
在订单表增加一个“送货天数”的新字段
select order_date,ship_date,DATEDIFF(ship_date,order_date) as "送货天数"
from spm_order
在订单表增加一个“订单月份”的新字段
select order_date, DATE_FORMAT(order_date,'%Y-%m') as "订单月份"
from spm_order