MySQL day03 MySQL多表查询、索引、事务

MySQL多表查询

在这里插入图片描述
表连接查询:

查询员工的信息, 包括所在的部门名称
SELECT * FROM tab_emp, tab_dept;
左表的每条数据和右表的每条数据组合,这种效果称为笛卡尔乘积。
过滤掉没用数据的条件称为表连接条件。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

左外连接: 左表不满足要求的数据也显示。
可以省略OUTER

在这里插入图片描述

右外连接: 右表不满足要求的数据也显示。
可以省略OUTER

子查询:

子查询: 一个查询语句的结果作为另一个查询语句的一部分

在这里插入图片描述

子查询需要放在()中
先执行子查询,将子查询的结果作为父查询的一部分。

子查询的结果是单行单列:
在这里插入图片描述

子查询结果是多行单列:

在这里插入图片描述
子查询的结果是多行多列:

在这里插入图片描述

索引

在这里插入图片描述

索引的使用原则

在数据量大的表上建立索引才有意义(最起码十万级别数据才会考虑索引)
在经常查询的字段上使用索引,用在where子句后面或者是连接条件上的字段建立索引
表中数据修改频率高时,不建议建立索引(每插入、或者修改一条记录MySQL都要维护索引的顺序,这个过程不需要我们参与,但是非常消耗性能)

索引的不足

虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存更新索引文件。建立索引会占用磁盘空间的索引文件。

索引失效

如果条件中有OR,即使其中有条件带索引也不会使用。(例外:OR两边条件都是同一个字段 )
模糊LIKE查询以 '%xxx’开头的不会使用索引,以’xxx%'结尾会使用索引。
WHERE语句中使用不等于 <>和 != 不会使用索引
如果MySQL计算使用全表扫描要比使用索引快,则不使用索引。

事务

由多条SQL语句组成一个功能,这多条SQL语句就组成事务。

1、手动提交事务:
在这里插入图片描述
2、自动提交事务:

MySQL的每一条DML(增删改)语句都是一个单独的事务,每条语句DML执行完毕自动提交事务,MySQL默认开始自动提交事务。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、事务原理
在这里插入图片描述
4、设置回滚点:
在这里插入图片描述
5、事务的隔离级别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

halulu.me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值