`
网盛数新
  • 浏览: 10120 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

第四章 SQL的其他特性

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


鹰眼般的视角-视图

1.视图

1、视图是什么

【知识点介绍】

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



 

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

SELECT student.ID,student.SName,stunion.Post,student.Credit FROM student,stunion
WHERE student.ID = stunion.ID
AND stunion.Post = 'Officer';

 

 

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

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

2、创建、使用视图

【知识点介绍】

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

CREATE VIEW 视图名 AS
SELECT语句;

 

 

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

CREATE VIEW myview AS
SELECT student.ID,student.SName,stunion.Post,student.Credit FROM student,stunion
WHERE student.ID = stunion.ID;

 

 

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



 

【任务】

试着使用myview来完成查询。

【提示】

SELECT * FROM myview
WHERE Post = 'Officer';

 

【校验】

使用视图查询则为成功。

【代码模板】

SELECT
WHERE Post = 'Officer';

 

3、修改删除视图

【知识点介绍】

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

CREATE OR REPLACE VIEW 视图 AS
SELECT[子句]
FROM 表
WHERE[子句];
-- 更新视图

DROP VIEW 视图;
-- 删除视图

 

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

4、小结

【知识点介绍】

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

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

 

下文待续。。。。。。

 

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

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

http://www.lechuangzhe.com/homepage

  • 大小: 13.9 KB
  • 大小: 14.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics