数据应用达人之SQL基础教程分享12-视图

第四章 SQL的其他特性

(本章会向大家简单的介绍下SQL里的视图、事务管理、游标等内容,至于他们的实际应用,大家还是要根据具体的DBMS再做进一步的了解与学习)


鹰眼般的视角-视图

1.视图

1、视图是什么

【知识点介绍】

SQL中,我们把视图VIEW定义为一个基于SQL语句结果的可视化的表,本身不含数据,数据都是动态生成的。
视图包含了虚拟的行和列,类似一个虚拟的表,也叫虚表。我们可以对视图添加函数、进行SQL操作等等,且这并不会影响到原来的表。
那么视图到底有什么用呢?
我们在学习本章之前,机器人又为我们扩充了一张表StUnion(学生会表),它包含了学号ID、学生会编号UID、姓名SName、职务Post(数据类型是是VARCHAR(20)):



 

假如我们现在要查询有干事Officer职务的学生的ID、姓名、学分信息,我们需要连接student表和StUnion表进行查询。

Sql代码 
  1. SELECT student.ID,student.SName,stunion.Post,student.Credit FROM student,stunion  
  2. WHERE student.ID = stunion.ID  
  3. AND stunion.Post = 'Officer';  

 

 

那么如果我们把整个查询包装到一个视图里,查询就变的十分简单了。
创建怎样的视图?又如何创建呢?
点击进入下一课吧。

(Access不支持视图,SQLite只支持只读视图)

2、创建、使用视图

【知识点介绍】

创建视图和创建表的语法类似,都是使用CREATE进行创建。
语法如下:

Sql代码 
  1. CREATE VIEW 视图名 AS  
  2. SELECT语句;  

 

 

根据上一节的例子,机器人帮我们把原来的SQL创建成视图:

Sql代码 
  1. CREATE VIEW myview AS  
  2. SELECT student.ID,student.SName,stunion.Post,student.Credit FROM student,stunion  
  3. WHERE student.ID = stunion.ID;  

 

 

这个时候再用myview去查询之前要求的内容就方便多了。
实际上这个时候myview就是一张虚拟的表,它的内容是这样的(不使用的时候myview是没有数据的):



【任务】

试着使用myview来完成查询。

【提示】

Sql代码 
  1. SELECT * FROM myview  
  2. WHERE Post = 'Officer';  

 

【校验】

使用视图查询则为成功。

【代码模板】

Sql代码 
  1. SELECT  
  2. WHERE Post = 'Officer';  

 

3、修改删除视图

【知识点介绍】

修改删除视图,很多内容实际上跟操作表是一致的。

Sql代码 
  1. CREATE OR REPLACE VIEW 视图 AS  
  2. SELECT[子句]  
  3. FROM 表  
  4. WHERE[子句];  
  5. -- 更新视图  
  6.   
  7. DROP VIEW 视图;  
  8. -- 删除视图  

 

而实际上,想要创建、修改、删除视图,在大多数DBMS上是可以很直观的进行操作的。

4、小结

【知识点介绍】

视图是一张虚拟表,实际上是一个查询语句,总的来说,使用视图有这些好处:
视图的使用可以简化复杂的表联结;
可以将检索的数据格式化输出;
可以过滤掉不想要的数据。

如果你想了解更多有关视图的内容,不妨按你的需求去查找相应的数据库软件的视图资料吧,比较视图在不同的DBMS里用法是有所不同的。

 

下文待续。。。。。。

 

欢迎大家前往访问我们的官网:

http://www.datanew.com/datanew/homepage

http://www.lechuangzhe.com/homepage

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值