数据库笔记(5)面试常考点:视图、事务、索引

一、视图

1.1 why 视图?

对于复杂的查询,往往是由多个数据表进行关联查询而得到,如果数据库因为需求等原因发生改变,为了保证查询出来的数据与之前的相同,则需要在多个地方进行修改,维护起来非常麻烦,解决办法就是定义视图

1.2 what 视图?

通俗的将,视图就是一条SELECT语句执行后返回的结果集所以我们在创建视图的时候,主要工作落在创建这条SQL语句上。
视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生改变,视图也会跟着改变);
方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性

1.3 定义视图

建议以v_开头

create view 视图名称 as select语句;

select * from goods as g 
left join goods_cates as c on g.cate_name=c.id 
left join goods_brands as b on g.brand_name=b.id;

select g.*,c.name as cates,b.name as brands from goods as g 
left join goods_cates as c on g.cate_name=c.id 
left join goods_brands as b on g.brand_name=b.id;

create view v_goods_info as select g.*,c.name as cates,b.name as brands from goods as g 
left join goods_cates as c on g.cate_name=c.id left join goods_brands as b on g.brand_name=b.id;

1.4 查看视图

show tables;

1.5 使用视图

视图的用途就是查询

select * from v_goods_info;

1.6 删除视图

drop view 视图名称;
例:
drop view v_goods_info;

1.7 总结作用

  • 提高了重用性,就像一个函数
  • 对数据库重构,却不影响程序的执行(是一个虚拟的表)
  • 提高了安全性能,可以对不同的用户
  • 让数据更加清晰

二、事务

2.1、事务是什么

事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。

2、事务的四大特性

  数据库事务 transanction 正确执行的四个基本要素。
  ACID,
- 原子性(Atomicity)、
-  一致性(Correspondence)、
- 隔离性(Isolation)、
- 持久性(Durability)。

  (1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  (2)一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
  (3)隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,  必须串行化或序列化请 求,使得在同一时间仅有一个请求用于同一数据。
  (4)持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

参考:事务及事务的四大特征

猜你喜欢

转载自blog.csdn.net/weixin_44282382/article/details/90233268
今日推荐