MySQL视图

来源:互联网 发布:centos下lamp环境搭建 编辑:程序博客网 时间:2024/05/01 11:06

MySQL中视图:

1. 视图的列可以来自不同的表;

2. 是由基本表产生的(虚)表;

3. 对视图的create与drop不影响基本表

4. 对view的更新(insert, delete, update)会直接影响基本表;

5. 当view来自多个基本表 或 含有distinct 或 嵌套查询 或 聚集函数 时,则不允许对view进行更新;

6. 若view的字段来自字段表达式或常数时, 不允许insert,update 但可以delete;

7. view中的date来自基本表,一旦基本表中的date变化,那么view中的也随之变化。


注:对view 进行update和delete时,由于在safe mode下直接 update student_view set Sage=20 where Sname='test' 是不被允许的,必须在此之前

       加一条语句: set SQL_SAFE_UPDATES=0;  改变其安全等级才可执行对view的更新。  更新过后,可再次输入:set SQL_SAFE_UPDATES=1;

       恢复其安全性。

 

创建视图:create view view_student

                  as

                  select Sno, Sname, Sage

                  from student (where Sdept='IS');

                  select * from view_student;

用view操作基本数据:

      insert into view_test
          values(20151221,'test0',17,'IS');

      set SQL_SAFE_UPDATES=0;
          delete from view_test
               where Sname='test0';


视图的作用:

1. 简化用户操作;

2. 使用户能从多个角度看待同一组数据;

3. 对重构数据库提供一定程度的逻辑独立性;

4. 对机密数据提供安全保护;

5. 适当利用视图更清晰的表达查询.(例如: 查询“对每个同学找出他获得最高成绩的课程号” 可先定义一个视图,再求出每个同学获得的最高成绩。)








0 0