SQL学习(4)视图

视图就是向导出一个关系,这个关系是根据我们的一些条件导出来的,是一个虚表,对其是无法建立索引的,也无法对其执行一些操作,这样保证了数据的安全性,同时也很方便的便于我们查看一些数据。

定义视图:CREATE VIEW

基本语句格式

<span style="font-size:18px;">CREATE VIEW<视图名>[列名清单]
AS <子查询>
[WITH CHECK OPTION];</span>

子查询就是通过select选择出来符合要求的数据,将查询出来的数据已视图的形式直观的展现出来,后面的WITH CHECK OPTION 是我们在对视图中的数据进行删除和修改操作的时候,其会自动执行,判断修改后的数据是否和之前的符合,如果不符合将会将其在视图中删除掉。

代码实例:

<span style="font-size:18px;">CREATE VIEW STUDENT_2
AS 
SELECT *
FROM STUDENT
WHERE CNO = 2
WITH CHECK OPTION;</span>
上面是来挑选出二班的学生,并将其创建一个视图,当一个学生的班级号,改变之后,学生的视图就会自动被修改。同时在视图中也可以添加一些之前没有的属性,派生属性

代码实例

<span style="font-size:18px;">CREATE VIEW STUDENT_2(NAME,IN_AGE)
AS 
SELECT NAME,AGE-10
FROM STUDENT
WHERE CNO = 2
WITH CHECK OPTION;
</span>

将学生的年龄减去10表示入学年龄。

删除视图 DELETE VIEW

基本语句格式

DROP VIEW <视图名>;

视图的查询

DBMS对视图查询操作的处理

1.从数据字典中取出对于当前视图的定义

2.将对当前视图的查询和视图的子查询相结合然后在基本表中进行查询

3..执行基本表的查询,然后将其显示出来

写到这不由得要思考,视图在我们平常的应用中看到的是哪一个部分,对基本表的查询又存在哪里,如何对其进行调用,视图又是怎样进行显现的????(待解决)之前的问题还没解决。

视图的更新

对于视图的更新操作和查询其实都是将其转化为对基本表的修改和查询,因为视图是一个虚表,其本身是不存在数据的存储的,

对于视图的操作和对基本表的数据操作是一样的,语法基本格式,所以不在这里写了。

视图的可更新性

并不是所有的视图,在这里有几种不可以更新的情况:

1.视图中的列是由表达式或者常数表示的。

2.视图中的列是用集函数定义的

3.视图定义中有distinct选项(?)

4.视图定义中有嵌套查询,且内外来源于一个表(?)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值