最近把时间都放在了回顾SQL语言上,因为能够按照需求在数据库中提取数据是非常重要的,太久没有去碰SQL,所以就花了一段时间去重新总结关于MySQL中的查询,希望下面简单的总结可以帮助大家理解SQL的查询。

一、基础查询

基础查询就是我们最简单的查询,对应一个表,我们想查询表中的某些字段所使用的查询:

1、语法 :select 查询列表 from 表名;

2、特点:查询列表可以是(多个)字段、常量、表达式、函数,且查询结果是一个虚拟表。

下面就介绍基础查询的各种使用情况:
(1)、查询单个字段 select 字段名 from 表名
(2)、查询多个字段 select 字段名1,字段名2,.... from 表名
(3)、查询所有字段 select * from 表名
(4)、查询常量 比如 select 100 ,如果查询的常量为字符类型或者日期,就需要单引号括住
(5)、查询函数 select 函数名(参数列表)
(6)、查询表达式 select 100/6
(7)、去重 select distinct 字段名 from 表名
(8)、给字段起别名: select A as a from 表名

二、条件查询

条件查询是在基础查询的过程中,加入筛选条件,就像是excel中的筛选条件然后查询符合条件的记录:

1、语法:select 查询列表 from 表名 where 筛选条件

2、筛选条件的细分:
(1)、简单的运算符 > 、<、 =、 <>、 != 、>= 、<=,其中<>和!=表示不等于
(2)、逻辑运算符 and 、or、 not
(3)、模糊查询 : like: 识别相似的值,一般搭配通配符使用,可以判断字符型或者数值型。通配符:%表示任意多个字符,_表示任意单个字符between a and b:查询符合值在两者间的记录,类似于a<=x<=bis null / is not null:用于判断是否为null值

三、排序查询

排序查询也很好理解,就是按照某些字段排序,查询排序后的结果,excel也比较常见多个字段的排序:

1、语法:select 查询列表 from 表 【where】 order by 排序列表 【asc|desc】

2、使用方法:
(1)、asc:升序,如果不写默认升序,desc为降序
(2)、排序列表支持单个字段、多个字段、函数、表达式、别名
(3)、order by 的位置处于整个查询语句的最后(limit语句除外)

四、函数

在MySQL中,函数主要分为单行函数和分组函数,下面就详细地了解两类函数的细分。

1、单行函数

(1)、字符函数
concat():连接字符
substr():截取字符子串
upper()/lower():大小写
replace():替换目标字符
length():获取字节长度
trim():去除前后空格
lpad():左填充
rpad():右填充
instr():获取子串第一次出现的索引

(2)、数学函数
ceil():向上取整
round():四舍五入
mod():取模
floor():向下取整
truncate():保留指定小位数
rand():获取随机数,返回0-1之间的小数

(3)、日期函数
now():返回当前日期和时间
year()/month()/day():返回年/月/日
hour()/minute()/second():返回小时/分组/秒
date_format():将日期转换成字符
curdate()/curtime():返回当前日期/时间
str_to_date():将字符转换成日期
datefiff():返回两个日期相差的天数
monthname():以英文形式返回月份

(4)、流程控制函数
if(条件表达式,表达式1,表达式2)
case函数:
· case 变量【表达式】【字段】when 常量1 then 值1
when 变量2 then 值2
....else 值nend

·case
when 常量1 then 值1
when 常量2 then 值2
....
else 值n
end

2、分组函数

(1)、分类max() 最大值min() 最小值sum() 求和avg() 平均值count() 计数

(2)、特点
①支持类型:sum和avg一般用于处理数值型,max、min和count可以处理任何数据类型
②5个分组函数都可以忽略null
③5个分组函数都可以搭配distinct使用,实现去重统计
④count(字段)表示统计该字段非空值的个数,count(*)表示统计结果集的行数
和分组函数一同查询的字段,要求是group by 语句后出现,后面提到分组查询会说明。

五、分组查询

分组查询的查询结果就好像excel的数据透视表一样,根据某些字段进行分类汇总,汇总的数据计算方式可以是求和、求平均、最大或者最小等等。

1、语法:

select 分组函数,分组后的字段 from 表
【where 筛选条件】group by 分组后的字段
having 分组后的筛选字段】
【order by 排序列表】

2、where和having的区别

where和having都是起到筛选的作用的,而where筛选条件中使用的字段为原始表中的字段,但当我们想对分组函数计算得到的新字段进行计算时,你会发现使用where语句会报错的,正确的方法是使用having语句,having语句与where语句一样,后面跟筛选条件,但使用的字段为分组后产生的新字段。

goland gorm分组查询统计_MySQL·查询(一)相关推荐

  1. goland gorm分组查询统计_golang gorm 计算字段和获取sum()值的实现

    计算表lb_ytt_user_money_log 中,字段money的和 代码如下: var total_money []int sqlstr := `select SUM(money) as tot ...

  2. mysql查询关键字_MySQL查询关键词

    1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--where--group by--having--order by 其中select和from是必须的,其他关键词 ...

  3. mysql复杂连接查询语句_MySQL查询语句之复杂查询

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  4. MySQL 查询统计 日期查询

    文章目录 1. 查询前7天的日期 2. 查询订单表出现日期,成交额总和 3 根据日期统计数据 1. 查询前7天的日期 select a.click_date from (SELECT date_sub ...

  5. mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询

    最近有个需求,要修改现有存储结构,涉及查询条件和查询效率的考量,看了几篇索引和HBase相关的文章,回忆了相关知识,结合项目需求,说说自己的理解和总结. 总体目录如下,上篇介绍了前3小节,分析了索引为 ...

  6. mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询

    1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select 字段1,字段2,字段3 from ...

  7. mysql多表查询语句_mysql查询语句 和 多表关联查询 以及 子查询

    1.查询一张表:select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select字段1,字段2,字段3 frome ...

  8. mysql 查询语句_MySQL查询语句之复杂查询

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.在MySQL中经常会有很多复杂的查询,为了节约大家的时间,小编总 ...

  9. 查询排序_MySQL查询性能优化

    MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下我们从数据库的索引和查询 ...

  10. mysql 主键查询性能_MySQL查询性能优化(精)

    MySQL查询性能优化 MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下 ...

最新文章

  1. php用户类,php用户登陆类
  2. python和excel的区别-Python与Excel 不得不说的事情
  3. 关于主机的思维导图_几张思维导图,让你清楚的知道ip地址怎么回事?
  4. [html] 简述下html5的离线储存原理,同时说明如何使用?
  5. (23)npm项目发布
  6. java http 返回值_java发送http请求,无需等待返回结果
  7. 这篇带你深入理解SpringBoot中的自动装配(好文精读)
  8. ftk学习记(list篇)
  9. python 刷票_Python刷票器的简单实现
  10. 电商网站详情页系统架构
  11. 左耳朵耗子:公司监控员工行为,这事逻辑就不对
  12. latex排版:合并表格的多行多列
  13. 算法的陷阱:超级平台、算法垄断与场景欺骗
  14. SQL进阶篇之多表联查
  15. 2021年秋互联网思维期末考试
  16. react.createContext
  17. 思科关闭日志_详解Cisco(思科)路由器的故障日志
  18. 拒绝跟风,谈谈几种算法岗的区别和体验
  19. 安卓listview默认布局总结
  20. 做数据分析,连趋势分析法都不会,就白混了!

热门文章

  1. UEditor使用说明
  2. 使用Emit反射建立运行时模型
  3. 微信jsapi开发教程全
  4. php’s explode() 函数
  5. 成员函数指针有多态的效果吗?
  6. 13、XSI,信号量简介
  7. SortedList 用法
  8. 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)...
  9. Linux C编程与Shell编程在开发实用工具方面的相同点总结
  10. 20171001~08总结