目录
一:视图
1:视图的定义
视图是由查询结果形成的一张虚拟的表。
视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);
可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制);
2:创建视图
create view tmp as select * from student_info where age=25;
3:查看视图结构
desc tmp;
show create table tmp;
4:删除视图
drop view tmp;
5:修改视图
alter view as select * from ...
可以改变view的值吗?
-- mysql可以对view进行insert的,但是不一定全部的视图都可以进insert
必须满足以下的条件:
a、视图的数据和表一一对应时可以修改 b、视图必须包含表中所有没有默认值的列。
6:应用场景
使用视图的场景在于,在我们需要频繁调用一个结果时,每次都调用一次查询
比较麻烦。
7:作用
1)用于简化查询。
2)用于权限控制。
3)大数据分表。
4)多表合并。(使用union)
8:可以增删改场景
一对一:(视图与基本表数据一模一样)
可以增删改
一对一(视图数据来自表的分组聚合)
不能做增删改,可以查。
一对多(视图与基本表数据一模一样)
可以查 不能增删改
一对多(视图来自基本表的分组聚合)
可以查 不能增删改
二:事务和锁
1:概念
首先,什么是事务?事务就是一段sql 语句的批处理,但是这个批处理是一个atom(原子),不可分割,要么都执行,要么回滚(rollback)都不执行。
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
2:作用
事务用来管理 insert,update,delete 语句
锁是计算机协调多个进程或线程并发访问某一资源的机制。
mysql中如果数据量大,并发访问多或者读写冲突,会出现死锁。表被锁住,不允许操作
sql中的语句不会立即对元数据进行修改而是进入缓冲区
3:执行
begin;
语句
查询是否合格(此时查询的是缓冲区中的数据)验证没问题以后commit,否则就rollbock。