# 笔者学习过程中不断遇到更复杂更健壮的sql应用,故在此简单记录所见所得,旨在帮助读者完善对MYSQL体系的认识入门,查缺补漏,从简单的增删改查迈向更进一步的学习。
# 愿成长路上与君共勉
1.MYSQL事务
事务用来管理insert update delete操作 事务要满足4个条件
- 原子性:事务中所有操作要么全部完成,要么全部不完成。发生的错误会回滚到事务开始前的状态。
- 一致性:事务开始前后,数据库的完整性不被破坏。
- 隔离性:阻止多个事务并发时导致的数据处理不一致问题。
- 持久性:事务结束后对数据的操作修改永久不丢失。
注意:在MYSQL中事务都是自动提交的,如果需要显示的修改需要使用以下部分命令
2.MYSQL索引
索引是MYSQL的一种数据表结构,分为单列索引与组合索引,用于加快数据库查询速度。
好比字典中的目录,偏旁部首就是索引。
下面简单演示在Navicat中创建索引:
1.选取一张表并选择 设计表
2. 选中索引
3. 给索引取名,并选择你想增加索引的字段
4. 这里选用id举例 选择索引类型时能发现4种类型供选择
- FULLTEXT 用于全文搜索。
- NORMAL 可能是指标准的B树索引,用于提高查询效率。
- SPATIAL 用于空间数据的索引。(空间数据类型(如点、线、多边形等))
- UNIQUE 用于确保字段值的唯一性。
5. 这里选用normal举例 选择索引方法时有两种供选择
6.这里选择BTREE举例 提交完成后一个索引就创建成功了 接下来检验创建的索引。
输入关键词EXPLAIN加上查询索引语句 发现得到以下字段。
每个字段的意思不做赘述 想深入了解可用下图去问AI。
3.MYSQL引擎
在前文中出现的InooDB与MyISAM就是主流的引擎,其中MYSQL默认选择InnoDB。
小白作为了解即可,其中最主要的差别就是InnoDB支持事务管理。
MySQL两种存储引擎: MyISAM和InnoDB 的区别和优缺点_innodb和mysiam的区别和优缺点-CSDN博客
4.MYSQL连接,模糊查询,分组
这里笔者非常推荐菜鸟教程对这几块的讲解,简单明了,仔细阅读定能有所收获。
5.MYSQL定时任务/Navicat事件
1. 如图所示, 此处选择事件可以创建定时任务
2. 来看笔者的实际运用 这里笔者的需求是每一天查询新的通知
AT:指具体触发时间 INTERVAL:触发后的循环周期
EVERY: 循环周期 ENDS:终止时间
6.MYSQL CTE(公共表达式)
在MYSQL中有创建临时表的功能,而此处的CTE指的也是一个临时结果集,笔者这里使用CTE目的是减少查询范围来减少查询时间