教学思路SQL之入门习题《学生成绩》 五、使用视图完成多表查询-阿里云开发者社区

开发者社区> 科技探索者> 正文

教学思路SQL之入门习题《学生成绩》 五、使用视图完成多表查询

简介:
+关注继续查看
视图的概念:
  • 视图对象是一个虚拟的表,虚拟表所包含的结果集是对一个或多个表的查询。
  • 视图本身不保存这个结果集,而是保存查询的定义。
  • 视图的定义是对已经存在表的查询。
  • 使用视图和使用表很类似,可以把视图当做一个表来查询,SQL Server动态执行视图的定义得到的结果集。
视图与表的区别:
  • 视图能为用户集中组织数据
        数据库表中所包含的列并不一定都是用户所需要的数据,有些列多用户是无用的,而有些用户需要的列又被分散在多个不同的表中。使用视图可以把用户需要的列组织起来给用户使用。
  • 视图可以隐藏数据库的复杂性
        如果没有视图对象,用户就需要了解数据库的实体关系的模型,了解每个表的设计等等,然后通过复杂的查询语句获得需要的数据。创建视图后,用户无需再了解表的设计和表间的关系,只要使用简单的语句:“select * from 视图名称”,就能得到所需要的数据了。
  • 简化用户权限的管理
        当源表中的部分列是敏感数据,例如身份证、信用卡号码等的时候,管理员需要对列设置权限,这对权限管理来说不是很方便。利用视图,可以把有权限的列放到视图中,然后同统一为视图对象授权。
  • 为应用程序组织和输出数据
        在应用程序中既可以直接查询表,也可以查询视图。但是查询表会有如下潜在的问题:
        不利于开发:对应用程序开发人员来说,需要详细了解数据库中所有表的设计。这对应用程序开发者来说要求比较高,也比利于生产力的提高。
        不利于维护:当数据库的设计更改的时候,因公程序也需要重新编写,不利于程序后期的维护。使用视图组织数据可以避免这两个问题。
创建单表视图:
create view  学生表视图  as select * from student where sex='男'
利用视图插入数据
insert into 学生表视图 (name,sex,age,diqu)values('臭小子','男',23,'太原')
利用视图修改数据
update 学生表视图 set  age=21 where name='臭小子' 
利用视图删除数据
delete from 学生表视图 where name='臭小子' 
建立本库四个表的视图的脚本语言为:
ContractedBlock.gif建立视图的脚本
  因为四个表中存在多个主外键关系,所有不能利用视图插入或删除源表数据,我们使用视图来完成部分第3节查询脚本。
--1、查询出所有大连地区的学生的成绩。
select score from alltable where diqu='大连'
--2、查询有考试成绩纪录的学生的信息.
select name,age,sex,平均分=avg(score) from alltable group by name,age,sex
--3、将所有大连地区学生的课程编号为3的课程成绩加10分。
update alltable set score=score+3 where scorenumber=3
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/185774如需转载请自行联系原作者

叶子文文

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL数据库学习之路(四)
要求:通过SQL语句创建以下基本表:    教师关系 T(T#, TNAME,TITLE)    课程关系 C(C#,CNAME,T#)    学生关系 S(S#,SNAME,AGE,SEX)    选课关系SC(S#,C#,SCORE)    班级关系CLASS(CLASSID,CLASSNAME)    其中红色粗体为主键,带下划线的属性为外键。
706 0
SQL数据库学习之路(八)
数据库介绍: 在网页上的主程序中进行注册操作,然后把数据发送给人,人传递这些数据到数据库当中。   为什么学ADO.NET:之前我们所学的只能在查询分析器中查看数据,操作数据。
775 0
Oracle学习笔记之与权限相关的视图
Oracle学习笔记之与权限相关的视图
106 0
MySQL 基础---多表数据查询
多表数据记录查询: 关系数据的各种操作 内连接查询 外连接查询 子查询 关系数据操作 传统的运算: 并(UNION) 笛卡尔积(CARTESIAN PRODUCT) 专门针对数据库操作的运算---连接(JOIN) (1) 并(UNION) “并”就是把具有相同字段数目和字段类型的表合并到一起。
691 0
Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念、发展历程、适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源。原文发表于我的技术博客 1. Ionic 简介 在前端技术发展越来越快的今天,Hybrid App 开发技术也受到了很大的影响。
1285 0
SSM框架之关于使用JSP作为视图展示问题解决方案
JSP作为视图层展示数据,已经有很长一段时间了,不管是在校学习还是企业工作,总会或多或少接触这个。特别是对于一些传统中小型或者一些几年前的企业而言,有很多使用JSP作为视图展示层。 JSP本质是就是Servlet,Servlet可以说也是JSP。
1521 0
4073
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载