MySql数据库视图与事务(九)

xiaoxiao2025-09-17  37

视图

对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情解决:定义视图视图本质就是对查询的一个封装定义视图 create view stuscore as select students.*,scores.score from scores inner join students on scores.stuid=students.id; 视图的用途就是查询 select * from stuscore;

 事务

当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID) 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障要求:表的类型必须是innodb或bdb类型,才可以对此表使用事务查看表的创建语句 show create table students; 修改表的类型 alter table '表名' engine=innodb; 事务语句 开启begin; 提交commit; 回滚rollback;

示例1

步骤1:打开两个终端,连接mysql,使用同一个数据库,操作同一张表 终端1: select * from students; ------------------------ 终端2: begin; insert into students(sname) values('张飞'); 步骤2 终端1: select * from students; 步骤3 终端2: commit; ------------------------ 终端1: select * from students;

示例2

步骤1:打开两个终端,连接mysql,使用同一个数据库,操作同一张表 终端1: select * from students; ------------------------ 终端2: begin; insert into students(sname) values('张飞'); 步骤2 终端1: select * from students; 步骤3 终端2: rollback; ------------------------ 终端1: select * from students;
转载请注明原文地址: https://www.6miu.com/read-5036453.html

最新回复(0)