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、什么是视图?