MySQL视图、事务

view(视图):
虚拟表
主要用来看(查)数据
基表的数据变化会在视图中体现出来

权限控制
将多表查询的结果整合在视图中方便用户查看

create view v1 as select ...查询语句
WITH CHECK OPTION 选项-- 插入后的数据,通过视图能够查询出来就符合WITH CHECK OPTION 否则就不符合

DROP VIEW IF EXISTS t_student;
CREATE VIEW t_student AS
SELECT * FROM student
WITH CHECK OPTION;
该视图是查询student表中的所有记录,进行更新的语句如下。
1 INSERT INTO `t_student` VALUES (‘10004‘, ‘赵六‘, 22, ‘wang123‘); -- 插入时如果其他未设置的字段有默认值,可以插入,如果没有就报错
2 UPDATE t_student SET name=‘赵六2‘ where id=‘10004‘; -- 更新可以
3 DELETE FROM t_student WHERE id = ‘10004‘; -- 删除也可以

统计信息、函数的结果均可做成视图

show tables; 查看有哪些视图
show create view v1\G
drop view if exists v1;

==========================================
事务
begin 开始一个事务
rollback 事务回滚
commit 事务确认
MySQL提供了多用户并发访问数据的能力, 对数据的一致性、完整性形成了巨大的挑战.
不同的数据库管理系统均提供了并发控制功能.
不同的开发工具往往也提供了实现数据库并发控制的命令.

begin
savepoint test; 保存某个点
rollback to savepoint test;

transaction(事务):
事务是并发控制的基本单位
只有innodb/BDB存储引擎支持事务show engines\G
注意建表时用innodb存储引擎
事务的4个特性:
原子性(Atomicity): 原子意为最小的粒子, 或者说不能再分的事物,组成事务的所有语句必须要么全部执行, 要么全部取消
隔离性(Isolation): 某个事务的操作对其他事务不可见
持久性(Durability): 当事务完成后, 其影响应该保留下来, 不能撤消
一致性(Consistency): 指数据的规则, 在事务前/后应保持一致
s1读数据, s2也访问同一数据, 修改了它, s1再读, 得到的数据不一样了, 违反了一致性

set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交

时间: 2024-12-07 23:04:55

MySQL视图、事务的相关文章

mysql 视图 事务 索引

为什么需要有视图 * 对于复杂的查询,往往是有多个数据表进行关联查询而得到,而这种语句往往比较复杂,也可能非常频繁的使用. 比如这样的SQL语句 select goods.name,goods_cates.name,goods_brands.name from goods join goods_cates on goods.cate_id = goods_cates.id join goods_brands on goods.brand_id = goods_brands.id; 为了简化用户复

MySQL的事务

MySQL的事务 1.事务:事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这一系列操作要么全部执行,要么全部放弃执行. 2.事务具备的四个特性(简称为ACID性): (1)原子性(Atomicity): 事务是应用中最小的执行单位,具有不可再分的特征,事务是应用中最小的逻辑执行体: (2)一致性(Consistency): 事务执行的结果必须使数据库从一个一致性状态转变到另一个一致性的状态.当数据库只包含事务成功提交的结果时,数据库处于一致性状态.如果系统运行发生中断,某个事务尚未完成而

子查询&视图&事务

联合分组 # 数据来源:在单表emp下 # 联合分组:按多个字段综合结果进行分组 # 按 area与port组合后的结果进行分组,只有组合后的结果还一致,才认为是一组 select group_concat(name),area,port from emp group by area,port; 子查询 # 增:insert into 表 select子查询 # 删:delete from 表 条件是select子查询(表不能与delete表相同) # 查:select 字段 from 表 条件

子查询|视图事务

子查询|视图|事务 一.子查询 增:insert into 表 select子查询 删:delete from 表 条件是select子查询(表不能与delete表相同) 查:select 字段 from 表 条件是select子查询 改:update 表 set 字段=值 条件是select子查询(表不能与update表相同) # 数据来源:在单表emp下 # 子查询:将一条查询sql的结果作为另一条sql的条件 # 思考:每个部门最高薪资的那个人所有信息 # 子查询的sql select d

MySQL视图、存储过程与存储引擎

MySQL视图.存储过程与存储引擎 一.前言 ? 前面的文章已经介绍了MySQL的索引与事务以及MySQL的备份与恢复的相关的内容,本文将对MySQL视图及存储过程以及存储引擎进行讲述. 二.MySQL视图 2.1问题引出--视图的概念 ? 我们在使用SQL语句进行多表查询的时候的命令是非常冗长而麻烦的,如果说这样的操作还非常多的使用的情况下就会加大工作人员的工作量,毕竟不能保证如此长的代码不会写错,并且多次进行如此复杂的查询也会造成服务器资源占用比变大的问题,那么我们有什么好的办法解决这样的问

MySQL的事务与事务隔离

MySQL中自从引入InnoDB引擎后,在MySQL中就支持事务,事务就是一组原子性的查询语句,也即将多个查询当作一个独立的工作单元,平时通过提交工作单元来完成在事务中的相应的查询或修改,在能支持事务的数据库中必须要满足ACID测试,即事务的四个特性: A:Atomicity,原子性(都执行或者都不执行) C:Consistency,一致性(从一个一致性状态转到另外一个一致性状态) I:Isolaction,隔离性(一个事务的所有修改操作在提交前对其他事务时不可见的) D: Durability

mysql之事务

我们先来说说什么是事务: 事务就是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功,要不全都失败.一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败. mysql的事务支持不是绑定在mysql服务器本身,而是与存储引擎相关.例如,MyISAM:不支持事务,用于只读程序提高性能:InnoDB:支持ACID事务,行级所,并发:Berkeley DB:支持事务. 事务的

7Python全站之路系列之MySQL视图

Python全栈之路系列之MySQL视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作表来使用. 创建视图 创建一个名称为v1的视图,其功能就是查询color表中的所有数据 CREATE VIEW v1 AS SELECT * FROM color; 查看视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,仅能做查询用. select * from 

MySQL 数据库事务与复制

好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适. 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类. 结合实际工作中碰到的问题,以寻找答案的方式来剖解技术,很多时候我们都不是在创造新技术,而是在应用技术. 为了更有效率与效果的用好技术,我们需要了解一些技术的原理与工作方式. 带着问题从使用者的角度去剖析技术原理,并将开源技术产品和框架作为一类技术的参考实现来讲解. 以讲清原理为主要目的,对于具体实现的技术细节若无特别之处则尽可能点到即止.

第11章 mysql 视图

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql视图学习总结 [6] mysql之视图 [7] mysql之视图详解