当前位置:网站首页>Mysql_Note3
Mysql_Note3
2022-08-11 02:02:00 【小Pawn爷】
1.where和having的区别
1.1总结
| 优点 | 缺点 | |
|---|---|---|
| where | 先筛选数据再关联,执行效率高 | 不能用分组中的计算函数进行筛选 |
| having | 先连接后筛选,在最后的结果集中进行筛选,执行效率低 | 可以使用分组中的计算函数进行筛选 |
1.2思考题
- HAVING 后面的条件,必须是包含分组中的计算函数的条件,你觉得对吗?为什么?
HAVING后面的条件,必须是包含分组中计算函数的条件。这种说法是有道理的,主要是考虑到查询的效率。因为如果不是分组中的计算函数的条件,那么这个条件应该可以用WHERE而不是用HAVING,查询的效率就不高了
2.聚合函数
2.1总结
| 函数名 | 含义 |
|---|---|
| sum | 指定字段求和 |
| avg | 平均值 |
| max | 最大值 |
| min | 最小值 |
| left(str,n) | 表示返回字符串str最左边的n个字符 |
| count(*) | 统计一共有多少条记录 |
| count(字段) | 统计有多少个不为空的字段 |
2.2思考题
1, 如果用户想要查询一下,在商品信息表中,到底是哪种商品的商品名称有重复,分别重复了几次,该如何查询呢
select goodsname,count(*), from demo.goodsmaster group by goodsname
2.count(*) ,count(1) ,count(列名),这3者的区别
count(*) 意思是统计表中所有的行
count(1) 意思是统计表的行数
count(列名)意思是统计表中列名字段不为NULL的数量
count(*),count(1)稍微高效一些,
如果字段是主键,count(字段)比count(*),count(1)更快些,否者反之
3.时间函数
3.1获取日期时间数据中部分信息的函数
-- 语法:从日期时间数据“date”中抽取“type”指定的部分
EXTRACT(type FROM date)
-- 示例
EXTRACT(HOUR FROM b.transdate)
| 函数 | 含义 |
|---|---|
| YEAR(date) | 获取 date 中的年 |
| MONTH(date) | 获取 date 中的月 |
| DAY(date) | 获取 date 中的日 |
| HOUR(date) | 获取 date 中的小时 |
| MINUTE(date) | 获取 date 中的分 |
| SECOND(date) | 获取 date 中的秒 |
3.2计算日期时间的函数
--语法
DATE_ADD(date, INTERVAL 表达式 type)
--示例
DATE_ADD('2020-12-10', INTERVAL - 1 YEAR);
-- 语法:表示获取日期时间“date”所在月份的最后一天的日期
LAST_DAY(date)
-- 示例,今天是 2020 年 12 月 10 日,获取 2019 年 11月30日
DATE_ADD(LAST_DAY(DATE_ADD(DATE_ADD('2020-12-10', INTERVAL - 1 YEAR),INTERVAL - 1 MONTH)),INTERVAL 1 DAY)
3.3 其他日期时间函数
| 函数 | 含义 |
|---|---|
| CURDATE() | 获取当前的日期,日期格式为“YYYY-MM-DD” |
| DAYOFWEEK(date1) | 获取日期“date”是周几,1 表示周日,2 表示周一,7 表示周六 |
| DATE_FORMAT(date1,格式) | 它表示将日期时间“date”按照指定格式显示,DATE_FORMAT(“2020-12-01 13:25:50”,“%T”),%T表示24 小时制 |
| DATEDIFF(date1,date2) | 计算两个时间相隔的天数 |
-- case语法
CASE 表达式 WHEN 值1 THEN 表达式1 [ WHEN 值2 THEN 表达式2] ELSE 表达式m END
--示例
CASE DAYOFWEEK(CURDATE()) - 1 WHEN 0 THEN 7 ELSE DAYOFWEEK(CURDATE()) - 1 END AS 周几
3.4思考题
1.假如用户想查一下今天是星期几(不能用数值,要用英文显示)你可以写一个简单的查询语句吗?
select date_format(curdate(),'%W ');
2.复杂系统,使用时间函数时,要注意时钟同步
边栏推荐
- 花甲的思考
- 【备战“金九银十”】2022年软件测试面试题最新汇总
- The latest domestic power supply manufacturers and pin-to-pin replacement manuals for specific models are released
- TRCX: doping process analysis
- nvidia-smi详解
- Fatal error in launcher: Unable to create process using xxx --logdir logs(tensorboard使用)
- shell [stdin/stdout/stderr][重定向]
- nvidia-smi:控制你的 GPU
- 两日总结九
- 2022英伟达显卡排名天梯图
猜你喜欢
![[oops-framework] Template project [oops-game-kit] Introduction](/img/09/29faf7626b0bc66e4d016a15e80b8b.png)
[oops-framework] Template project [oops-game-kit] Introduction

wincc如何实现远程监控1200PLC
![报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标](/img/35/650c92ac4c5fc2d5826f3216a09e65.png)
报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标

英伟达 GPU 架构简史

SyntaxError: invalid syntax

Alibaba 最新神作!耗时 182 天肝出来 1015 页分布式全栈手册太香了

FPGA learning column (xinlinx) serial communication -

本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统

测试3年,开口就要25k?面试完最多给15k...

21. Aliyun oss
随机推荐
async和await的理解和用法
Lianshengde W801 series 6-Analyze the Bluetooth communication source code of W801 from the perspective of WeChat applet (indicate method)
C# WebBrower1控件可编辑模式保存时会提示“该文档已被修改,是否保存修改结果”
MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
数据库数据采集利器FlinkCDC
络达开发---自定义BLE服务(二):功能实现
数据的存储(下)——浮点型在内存中的存储
sql 使用到where和groupby时建立索引结果为啥是这样,原理是什么?
ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
颠覆性创新招商,链动2+1是个怎么样的制度模式?
进程间通信方式(2)有名管道
数据存储全方案----详解持久化技术
Deep Learning [Chapter 2]
install dlib library
Detailed explanation of the opkg of OpenWrt
Is container technology really the savior of environmental management?
《QA离业务代码能有多近?》轻量级单元测试方案
软件测试面试题:什么是α测试,β测试?
Inter-process communication method (2) Named pipe