全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
592 0
2020-07-07
数据分析MySQL707(上)

数据查询语言DQL

单表查询:

全表查询:select * from 表名;

查询指定列:select 字段1[,字段2,…] from 表名;

别名的设置:select 字段名[ as] 列别名 from 原表名 [as ]表别名;

查询不重复的记录:select distinct 字段名 from 表名;

条件查询:select 字段1[,字段2,…] from 表名 where 查询条件;

空值查询:select 字段1[,字段2,…] from 表名 where 空值字段 is[ not] null;

模糊查询: select 字段1[,字段2,…] from 表名 where 字符串字段[ not] like 通配符;

百分号(%)通配符:匹配多个字符

下划线(_)通配符:匹配一个字符

模糊查询只能用于字符串类型的字段



查询结果排序:select 字段1[,字段2,…] from 表名 order by 字段1[ 排序方向,字段2 排序方向,…];

多字段排序时,先按第一个字段排序,第一个字段值相同时再按第二个字段排序

指定排序方向:asc升序,desc降序(没有指定排序方向时,默认是asc升序)

限制查询结果数量:select 字段1[,字段2,…] from 表名 limit [偏移量,] 行数;

limit接受一个或两个数字参数,参数必须是一个整数常量

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

如果只给定一个参数,表示返回最大的记录行数目

初始记录行的偏移量是0(而不是1)



聚合查询

分组结果中只能显示分组字段、聚合字段以及跟分组字段一一对应的字段

聚合函数:SUM() 对一个数值字段求和

                 AVG() 对一个数值字段求平均值

           MAX() 对一个数值或日期时间字段求最大值

           MIN() 对一个数值或日期时间字段求最小值

           COUNT() 对一个或多个字段计数



分组查询:select 字段1[,字段2,…] from 表名[ where 查询条件] group by 分组字段1[,分组字段2,…];

将查询结果按照一个或多个字段进行分组,字段值相同的为一组,对每个组进行聚合计算

分组后筛选:select 字段1[,字段2,…] from 表名[ where 查询条件][ group by 分组字段1[,分组字段2,…]] having 筛选条件;

where与having的区别:

where子句作用于表,having子句作用于组。

where条件查询的作用域是针对数据表进行筛选,而having条件查询则是对分组结果进行过滤。

where在分组和聚合计算之前筛选行,而having 在分组和聚合之后筛选分组的行,因此where子句不能包含聚合函数。



select语句书写顺序

select -- from -- where -- group by -- having --order by--limit

select语句执行顺序

FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY --> LIMIT
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群