SQL基础查询语句

sql一定要多练习,这学期学校太忙,终于有时间了再把sql基础语句整理一遍,复杂的查询语句大多数都是这些基础语句的组合使用。

###############################基础查询
# 检索列
SELECT order_id,product_id FROM spm_order

# 查找销售人员
select distinct sales_name from spm_order

# 前100行数据
select * from spm_order limit 100

# where语句
select * from spm_order where city in ('北京', '上海', '广州', '深圳', '杭州') and profit > 0 and product_name like '%笔%'


############################## 计算字段
# 平均销售额(销售额/数量)
select *, sales/quantity as '平均销售额' from spm_order

# 拼接字段(concat)
select concat(city, '-', sales_name) as '销售' from spm_order


############################## 分组 过滤 排序
# 分组(group by)
select sales_name, sum(sales), sum(profit) from spm_order where order_date like '2018%' group by sales_name 

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)
select sales_name, sum(sales), sum(profit) from spm_order where order_date like '2018%' group by sales_name having sum(profit) > 100000

# 结果排序(order by)
select sales_name, sum(sales), sum(profit) from spm_order where order_date like '2018%' group by sales_name having sum(profit) > 100000 order by sum(sales) desc 

############################# 函数
# 数值型函数
-- 求和            sum() 
-- 平均值          avg() 
-- 最小值          min() 
-- 最大值          max() 
-- 行数            count(列) 
-- 被选行数        count(*) 
-- 不同结果的数目  count(distinct 列)
-- 绝对值          abs()
-- 平方            sqrt()

# 表的行数
select count(*) from spm_order

# 产品名称行数
select count(product_id) from spm_order

# 城市数量
select count(distinct city) from spm_order

# 总销售额等等
select sum(sales), sum(profit), avg(quantity), min(profit), max(profit) from spm_order

# 利润与绝对利润
select profit, abs(profit) from spm_order

# 时间日期性型函数
-- 当前日期和时间                 now()
-- 当前日期                       curdate()
-- 当前时间                       curtime()
-- 提取日期或时间表达式的日期部分 date()
-- 按单独部分返回时或日期         extract()
-- 给日期添加指定的时间间隔       date_add()
-- 给日期减去指定的时间间隔       date_sub()
-- 返回两个日期之间的天数         datediff()
-- 用不同格式显示日期时间         date——format()

select
now(), # 当前日期和时间
date(now()), # 日期格式
month(now()),
year(now()),
date_format(now(), '%Y-%m-%d'), # 年月日格式
date_format(now(), '%Y-%m'), # 年月格式 大写为英文 小写为汉字
date_add(now(), interval 1 day), # 日期相加 加一天 一周等等
date_sub(now(), interval 1 day) # 日期相减 减一天 一周等等

# 日期间隔
select datediff('2019-08-31','2019-01-01')

# 现在的日期时间
select now()

# 现在的日期
select curdate()

# 送货天数
select order_date, ship_date, datediff(ship_date, order_date) as '送货天数' from spm_order

# 订单月份
select order_date, month(order_date) as '订单月份' from spm_order
select order_date, date_format(order_date, '%Y-%m') as '订单月份' from spm_order

# 2018年所有订单
select * from spm_order where order_date like '2018%'
select * from spm_order where order_date between '2018-01-01' and '2018-12-31'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值