MySQL视图

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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值