mysql之视图
一、什么是视图
视图是一个虚拟表(逻辑表),它不在数据库中以存储形式保存(本身包含数据),是在使用视图的时候动态生成。
二、视图作用
1、查询数据库中的非常复的数据
例如:多表,子查询,编写的复杂,通过创建视图,避免每次都写合表的sql语句,避免出现错误,提高查询的效率
2、为了安全,在公司中有写字段保密,我们可以创建视图,限制对某些字段的操作
三、视图的优缺点:
1、提高查询效率
在数据库中非常复杂的数据,可以通过创建视图避免多次编写sql语句出现的错误
2、安全
有些保密字段,通过创建视图来实现对对某些字段进行操作
3、简单
不需要关系后面表对应的结构
缺点:
1、性能差
把视图查询结果转换成对表的查询
2、修改限制
修改视图数据,必须把他转化为对基础表的修改
=======================================================
二、视图的使用
1、show tables 查看所有表
2、创建视图
格式:create view 视图名称 as (SQL语句)
案例:create view st as (select * from dept INNER JOIN emp on dept.dept1=emp.dept2)
3、查看视图:
格式:select * from 视图名称;
案例:select * from st;
4、查看创建的视图;
格式:show create VIEW 视图名称;
案例:show create VIEW st ;
截图:
5、删除视图
格式:drop view 视图名称
案例:drop VIEW st ;
===========================================
三、视图的特点
1、视图时由基础表产生虚拟表
2、视图的创建和删除不影响基础表
3、视图的数据更新和删除直接影响基础表
案例1:UPDATE st set name=‘小钱’ where sid=1568 视图更新,基础表也更新
案例2:delete FROM st2 where dept1=101 单表数据可以删除,多表的数据就无法删除
4、视图不能修改字段(报错)
alter table st2 change dept1 detpt3 int(10) # ‘dcs.st2’ is not BASE TABLE
5、基础表修改数据,视图也修改
===========================================
面试题:
1、数据库你会吗?你会拿一些?
会,数据的增删改查,单表,多表,视图,索引,存储、外键等
2、讲下如何创建视图?
3、视图的作用?
(1)安全,保密字段
(2)优惠sql语句
4、如何查询视图
5、如何删除一个视图
6、视图和基础表的关系?
7、什么是视图?