本课题主要概括了Mysql数据库的视图和事务,大概需要5min阅读时间。
目录
1.视图
视图:对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来非常麻烦,我们用定义视图来解决这个复杂的查询。
1.1 定义视图
create view 视图名称 as select语句;
1.2 查看视图
show tables;
1.3 使用视图
select * from v_stu_score;
1.4 删除视图
drop view 视图名称;
1.5 视图的作用
提高了重用性,就像一个函数
对数据库重构,却不影响程序的运行
提高了安全性能,可以对不同的用户
让数据更加清晰
2.事务
事务:它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
2.1 事务四大特性(简称ACID)
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
2.1.1 原子性(atomicity)
一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性
2.1.2 一致性(Consistency)
数据库总是从一个一致性的状态转换到另一个一致性的状态,要么全部提交成功,要么全部失败回滚。
2.1.3 隔离性(Isolation)
一个事务所做的修改在最终提交以前,对其他事务是不可见的。
2.1.4 持久性(Durability)
一旦事务提交,则其所做的修改会永久保存到数据库, 即使系统崩溃,修改的数据也不会丢失。
2.2 事物令
事物令:表的引擎类型必须是
innodb
类型才可以使用事务,这是mysql
表的默认引擎。
2.2.1 查看表的创建语句
/*查看表的创建语句,可以看到engine=innodb*/
-- 选择数据库
use python_test;
-- 查看students表
show create table students;
2.2.2 开启事务
开启事务:开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中
begin;
或者
start transaction;
2.2.3 提交事务
提交事务:将缓存中的数据变更维护到物理表中
commit;
2.2.4 回滚事务
回滚事务 :放弃缓存中变更的数据
rollback;