美文网首页sql注入SQL server
SQL查询语句入门篇2-四大常用查询句式

SQL查询语句入门篇2-四大常用查询句式

作者: 数据大作手 | 来源:发表于2020-04-05 08:27 被阅读0次

上次内容讲解了SQL查询需要的基本元素。今天将继续介绍SQL查询的四大常用句式:① where过滤句式 ② group by分组句式 ③ order by排序句式 ④Having过滤句式。

句式1:where过滤句式

一般数据库表存储大量的信息,但是我们查询时并不需要用到所有数据。

这时就可以通过where过滤语句来筛选出指定的数据信息。

where过滤句式可以参考Excel中的筛选框的逻辑

Excel筛选框可以筛选包含、等于、大于小于、介于等功能。

where过滤语句也能实现Excel筛选框的功能,而且相对来说更灵活,并且可以结合函数使用,大大降低了筛选操作的难度。

基本where过滤句式的用法如下:

select 字段1 

from 表名 

where name='张三' #条件

下图是常用的where过滤语句的操作符,联用能应付大部分筛选问题。

例1,现在有一张订单表 order,我们需要查询创建时间(created_time)在2019年1月10号-2019年6月底之间,注册城市(city)是北京、上海、广州这三个城市的订单信息(包括order_id,city,created_time,amount,product等)。

SQL代码如下:

select order_id,city,created_time,amount,product from order 

where created_time>'2019-01-10' and created_time<'2019-07-01' and city in ('北京','上海','广州')

这个案例中我们用到了操作符>、<、and、in等,实现了需要完成的任务。

句式2:Group by 分组句式

就像where 过滤语句需要有操作符搭配运用,那么与Group by 分组语句并肩作战的就是聚合函数。

在学习Goup by 分组语句之前,首先需要了解下聚合函数的意义及用法。

聚合函数就是对对一组值执行计算,并返回一个值。

比如求平均就是一个聚合函数。

常用的聚合函数包含以下这些:

基本Group by 分组句式的用法如下:

select 字段1,字段2,count(*) 聚合函数

from 表名 

group by 字段1,字段2

例2,现在有一张订单表 order,我们需要查询创建时间(created_time)在2019年1月10号-2019年6月底之间,注册城市(city)是北京、上海、广州的订单号数量,统计方式是按每月和城市统计。

SQL代码如下:

select left(created_time,7) 月份,city,count( order_id) 订单号数量 

from order 

where created_time>'2019-01-10' and created_time<'2019-07-01' and city in ('北京','上海','广州') 

group by left(created_time,7) ,city 

这个案例我们用到了count()函数、where过滤语句以及group by 分组语句。

解释下逻辑:

left(created_time,7) 取的是created_time的前7位,也就是年月, 加上city是我们需要分组的字段,count(order_id)  就是对这两个分组字段分别进行计数。

句式3:Order by 排序句式

通常人的阅读习惯是按顺序进行的,比如看新闻或者朋友圈时都是从早到晚的顺序刷新闻。

SQL中的order by 语句就是排序句式,用来实现排序的功能。

排序方法主要有以下2种情形:

基本Order by 排序句式的用法如下:

select 字段1,字段2

from 表名 

order by 字段1,字段2

【小贴示】Order By 语句默认是按照升序排列。

例3,现在有一张订单表 order,我们需要查询创建时间(created_time)在2019年1月10号-2019年6月底之间,注册城市(city)是北京、上海、广州的订单号数量,统计方式是按每月和城市统计,且按月升序排列展示

SQL代码如下:

select left(created_time,7) 月份,city,count( order_id) 订单号数量 

from order 

where created_time>'2019-01-10' and created_time<'2019-07-01' and city in ('北京','上海','广州') 

group by left(created_time,7) ,city 

order by left(created_time,7) #按月份排序,默认是升序排序

这个案例结合了where过滤语句、group by 分组语句和Order by 排序语句。

句式4:Having过滤句式

最后再介绍一种过滤语句-Having过滤语句。

为什么有了Where语句,还要学习Having语句?

主要的原因是WHERE过滤句式无法与聚合函数一起使用。

基本Having 过滤句式的用法如下

select 字段1,字段2

from 表名 

group by 字段1,字段2 

having count(*)>100 #聚合函数 

【小贴士】Having过滤由于要用到分组函数,所以必须要和Group by 分组句式联用。

例4,现在有一张订单表 order,我们需要统计创建时间(created_time)在2019年1月10号-2019年6月底之间,订单数量大于1000的城市名单。

代码如下:

select city,count( order_id) 订单号数量 

from order 

where created_time>'2019-01-10' and created_time<'2019-07-01'

group by city 

having count( order_id)>1000 #订单数大于1000 

总结:

where过滤句式,筛选你想要的信息

Group by分组句式,统计监控必备

Order by排序句式,提高阅读舒适感

Having过滤句式,聚合函数的筛选利器

有兴趣的童鞋可以扫描下方的二维码关注我的微信公众号:数据大作手

定时分享Excel/SQL/Python的一些技巧与心得。

相关文章

  • SQL查询语句入门篇2-四大常用查询句式

    上次内容讲解了SQL查询需要的基本元素。今天将继续介绍SQL查询的四大常用句式:① where过滤句式 ② gro...

  • SQL查询语句

    常用SQL查询语句 一、简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SE...

  • 2017-10-19-常用的SQL语句

    常用的SQL语句 常用的SQL语句 一,简单查询 1,查询like语句:%表示匹配多个字符,_表示匹配一个字符 2...

  • Java自学-JDBC 查询

    在JDBC中使用ResultSet查询SQL语句 执行查询SQL语句 步骤 1 : 查询语句 executeQue...

  • Mysql常用SQL语句收集

    mysql常用sql语句收集 基础篇 //查询时间,友好提示 $sql = "select date_format...

  • mysql数据库查询语句

    1.简单的查询基本表的SQL语句 (1)查询语句 (2)查询语句 Student表的删除SQL语句: 选课表的操作...

  • 搜索

    直接sql查询 用sql语句like查询,复杂的用sql语句拼接。 视图和存储过程查询 简化程序,提高执行效率,维...

  • 《SQL必知必会》笔记6-子查询、联结表join

    1 使用子查询 查询(query):任何SQL语句都是查询,但一般指SELECT语句。 SQL还允许创建子查询(s...

  • SQL 语句

    常用SQL语句 SQL查询语句 连接查询: 自关联:要存储全国三级城市联动这种类型的数据,可以有以下两种解决办法:...

  • SqlServer查询表空间占用情况

    查询sql语句

网友评论

    本文标题:SQL查询语句入门篇2-四大常用查询句式

    本文链接:https://www.haomeiwen.com/subject/gusyphtx.html