MySqL(事务、索引、视图)

事务

业务层面上不可分割的最小单位
– DML:insert、delete、update - 对数据库的修改操作才必须要事务
– DQL:select 可以不需要事务

MySQL:事务是自动提交的
– 提交(commit):操作生效
– 回滚(rollback):恢复到操作之前的数据

事务并发问题(重要)
– 脏读:一个事务读取到了另一个事务未提交的数据
– 幻读:一个事务两次读取,数据的数量、个数不同 insert delete
– 不可重复读:一个事务两次读取,数据内容不同 update

事务隔离级别
– 读未提交:read uncommitted(都不能解决)
– 读已提交:read committed(只能解决脏读(Oracle)
– 可重复读:repeatable read(不能解决幻读(MySqL)
– 串行化:serializable(都可解决)(隔离级别最高,性能最差,安全性最高)

索引 - index

index - 提高查询效率
– 列:主键约束、unique约束,自动添加索引(唯一索引)

唯一索引(unique index)
普通索引(index)
区别:有没有唯一约束

– 经常出现在where、distinct、表连接条件的列,可以添加索引
– 数据量很大的表推荐添加索引,数据量小的表不推荐添加索引
经常需要DML操作的表,不建议添加索引
– 删除一些不必要的索引

select * from emp where empno = 7369;

-- 创建普通索引
create index index_empno on emp(empno);
-- 创建唯一索引
create unique index index_empno on emp(empno);

-- 创建组合索引
create index index_e on emp(ename, sal);

-- 在where条件后,按索引添加的顺序使用条件,就会自动使用索引
select * from emp where ename like '' and sal < 3000;

--使用强索引查询
select * from emp force index(index_empno) where empno = 1005;

-- 删除索引
alter table emp drop index index_empno;
alter table emp drop index index_e;

视图

临时的表 - 提高查询效率
– 将频繁使用的查询结果,做成视图
– 查询出的结果,本身不在任何基表中,不可以对数据进行修改操作

-- 创建视图
create view dept_avgsal
as
select deptno, avg(sal) avg_sal from emp group by deptno;

-- 删除视图
drop view dept_avgSal;

-- 使用视图进行查询
-- 工资比部门平均工资高的员工信息
select 
	* 
from 
	emp e 
join
	dept_avgSal d
on 
	e.deptno = d.deptno
where
	e.sal > d.avg_sal;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值