1.视图:
1.什么是视图,有什么用?
视图是通过select查询出来的结果集,是一个虚拟的表,当在查看复杂的表时
可创建视图方便二次查看,视图封装了对多张基本表的复杂操作,简化用户操作
2.视图的特点:
视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的
数据(基本表数据发生了改变,视图也会跟着改变)
3.定义视图:
语法:create view 视图名称 as 查询语句
例:create view v_goods as (select g.id,g.name,c.name as "cate_name",b.name as "brand_name",g.price,g.is_show from goods as g inner join goods_cates as c inner join goods_brands as b on g.cate_id=c.id and g.brand_id=b.id);
4.使用视图:
1.使用视图: select * from 视图名称
2.删除视图:drop view 视图名称
5.视图的优缺点:(面试题)
1.优点:
1.简化查询操作,对于复杂的查询,往往是由多个数据表进行关联而得到,
对于这个复杂的查询结果保存为一个视图,便于下一次查询时简化查询操作
2.逻辑上的独立性,屏蔽了真实表结构更改带来的影响
3.视图能够对机密数据提供一定的安全保护,因为视图是虚拟的,物理上是
不存在的,我们可以将基表中重要的字段不给用户查看
2.不足:
1.性能差,对视图的查询最终转换为对基表的查询,如果这个视图由多个复
杂的表查询所定义,那么即使是视图查询一个简单的,也会花费一定时间
2.额外增加数据库的复杂度,比如有50个基本表,就得要50 个视图 一共
就有100个表了
2.事物:
1.事物是什么?
事物是一个操作序列,这些操作要么都执行,要么都不执行,他是一个不可分割
的执行单位
2.事物的ACID特性(面试题)
1.原子性(Atomic):语句不可分割,要么同时执行,要么同时不执行
2.一致性(Consistency):数据库总是从一个一致性的状态转换到另一个一致性
的状态,(也可以说是从一个预期性的状态到另一个预期性的状态,比如银行取钱,两个账户预期总和都是600,一个用户有100,另一个有500,现在要从有500的用户转100给另一个100的用户,到最后他们两者的预期总和应该还是600,这就是所谓的一致性,要么都有,要么都没有)
3.隔离性(lsolation):一个事物所做的修改在最终提交前,对其他事物是不可
见的
4.持久性(Durability):一旦事物提交,其所做的修改会永久保存到数据库中
3.mysql事物的使用:
1.在python访问mysql数据库中,默认开启事物,所以对于增删改。只要提交事
物即可(connection.commit)
2.开启事物命令:
1.start transaction;
2.begin;
3.提交事物命令:commit:把修改的数据持久化的存储在数据库中
4.事物的回滚:
rollback:回滚到事物执行的初始状态(指还没有持久性的存储在数据库
中,只是在缓存区中)
当我们不需要mysql命令行自动提交的时候 键入set autocommit=0即可
5.原子的ACID特性
事务有原子性、一致性、隔离性、持久性
原子性强调事务中的多个操作时一个整体
一致性强调数据库中不会保存不一致状态
隔离性强调数据库中事务之间相互不可见
持久性强调数据库能永久保存数据,一旦提交就不可撤销
3.索引:
1.何为索引:
索引是一种特殊的文件(innoDB数据表上的索引是表空间的一个组成部分),他们
包含着对数据表中所有的记录的引用指针,作用是能够加快数据库的查询速度
2.索引的原理:
内部具体实现方案:B+数
3.索引使用:
1.查看索引:
show index from 表名;
show index from goods;
2.创建索引:
create index 索引名称 on 表名(字段名称(长度))
create index name_index on goods(name(150))
3.删除索引:
drop index 索引名称 on 表名字
drop index name_index on goods;
4.索引的注意点(面试题):
1.索引最主要解决的问题:当数据量较大时,且这些数据不需要经常修改,
使用索引来加快查询速度
2.对于较小的表,查询开销不是很大,也没有必要建立另外的索引
3.建立太多索引将会影响更新和插入的速度,因为他需要同样更新每个索引
文件
4.对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的
where字句单独建立索引
5.建立索引会占用磁盘空间
视图、事物、索引
最新推荐文章于 2022-07-29 15:30:41 发布