2022-09-11mysql引擎,视图

一、引擎

1.三种引擎

①myisam
②innodb
③memory

2.说明

①myisam不支持事务,也不支持外键,但访问速度快,对事务完整性没有要求
②innodb具有提交,回滚,和崩溃恢复能力的事务安全,但是比起myisam,innodb写的效率差一些,并且会占用更多的磁盘空间来保留数据和索引
③memory使用存在内存中的内容来创建表,访问表速度非常快

3.修改表的存储引擎

alter table 表名 engine= 引擎名

二、如何选择引擎

1.如果你的应用不需要事务,处理的只是基本的crud操作,选择myisam
2.如果需要支持事务,选择innodb
3.memory用作比如用户的在线状态,在服务器重启后就会消失

三、视图

(一)、视图概述

当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。视图中列可以来自于表里的不同列,这些列都是用户所感兴趣的数据列。视图与表不同,它在物理上不是真实存在的,而是一个虚表。在数据库里仅存放视图的定义,而不存放视图对应的数据。视图中的这些数据存放在其对应的表中,如果表中的数据发生了变化,从视图中查询出的数据也会随之发生改变。从这个意义来看,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。每一次查看视图或引用视图的的时候,都会运行一次视图上的查询。

(二)、视图说明

1.视图是根据基表(可以是多个基表)来创建的,视图是虚拟的表
2.视图也有列,数据来自基表
3.通过视图可以修改基表的数据
4.基表的改变,也会影响到视图的数据

(三)、单表操作视图
创建视图
create view emp_view01 as select `name`,job,deptno from emp
查看视图
desc emp_view01
select * from emp_view01
查看视图指令
show create view emp_view01
删除视图
drop view emp_view01


select * from emp
修改视图数据,基表数据也会改变
update emp_view01 set job = 'manager' where `name` = 'jimi'

视图中还可以创建视图
create view emp_view02 as select `name`,job from emp_view01
(四)、多表创建视图
从emp表和dept表创建视图,可以显示员工编号,姓名,部门名
1.先显示员工编号,姓名,部门名
select id,`name`,dname from emp,dept where emp.deptno=dept.deptno
2.再创建视图
CREATE VIEW emp_view03 AS SELECT
id,
`name`,
dname 
FROM
    emp,
    dept 
WHERE
    emp.deptno = dept.deptno
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容