视图的概念:
  • 视图对象是一个虚拟的表,虚拟表所包含的结果集是对一个或多个表的查询。
  • 视图本身不保存这个结果集,而是保存查询的定义。
  • 视图的定义是对已经存在表的查询。
  • 使用视图和使用表很类似,可以把视图当做一个表来查询,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='臭小子'

建立本库四个表的视图的脚本语言为:
建立视图的脚本
SELECT     dbo.teacherinfo.teachername, dbo.score.kemu, dbo.student.number AS Expr1, dbo.student.name AS Expr2, dbo.student.sex AS Expr3,
                      dbo.student.age AS Expr4, dbo.student.*, dbo.chengji.score, dbo.teacherinfo.teacherid, dbo.score.scorenumber
FROM         dbo.chengji INNER JOIN
                      dbo.score ON dbo.chengji.scorenumber = dbo.score.scorenumber INNER JOIN
                      dbo.student ON dbo.chengji.number = dbo.student.number INNER JOIN
                      dbo.teacherinfo ON dbo.score.teacherid = dbo.teacherinfo.teacherid
因为四个表中存在多个主外键关系,所有不能利用视图插入或删除源表数据,我们使用视图来完成部分第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博客作者叶子文文的原创作品,如需转载,请与作者联系,否则将追究法律责任
SQL 视图 学生成绩 .NET教案

0

分享

微博 QQ 微信

收藏

上一篇:教学思路SQL之预备课程学习 建... 下一篇:教学思路SQL之入门习题《学生成...
叶子文文

160篇文章,147W+人气,12粉丝

关注

Ctrl+Enter 发布

发布

取消

推荐专栏更多

十年老兵教你练一套正宗的MySQL降龙十八掌

MySQL全通晓

共18章 | 张甦

¥51.00 402人订阅

订   阅

负载均衡高手炼成记

高并发架构之路

共15章 | sery

¥51.00 507人订阅

订   阅

猜你喜欢

我的友情链接 XX阅读平台-性能分析调研 IntelliJ Idea 常用快捷键列表 用Kibana和logstash快速搭建实时日志查询、收集与分析系统 Windows路由表详解 标准SQL的update语句三种用法 常用邮箱、网盘地址列表 oracle表分区详解 SQL自动审核-自助上线平台 V2.0 最权威的×××号码的正则表达式 某酒店2000W条数据如何打开及查询 希捷硬盘保修时间查询 PostgreSQL的B-tree索引 PostgreSQL pg_rewind实例--could not find previous WA redis geo 地理位置系应用战案例 PostgreSQL逻辑备份pg_dump使用及其原理解析 PostgreSQL如何删除不使用的xlog文件 PostgreSQL pg_ctl start超时分析 Greenplum -- segment 死机后恢复 postgresql 主备及切换-恢复方案

扫一扫,领取大礼包

0

分享

关注

叶子文文

转载于:https://blog.51cto.com/leafwf/185774

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

  1. 教学思路SQL之入门习题《学生成绩》 二、基础单表查询

    根据查询要求,写出SQL脚本: 1.    查询学生信息表,查找学生的姓名,性别,并将查询结果按姓名进行排序. 2.查询学生信息表,查找地区在大连的学生,显示其姓名,联系电话,地区. 3.    查询 ...

  2. 教学思路SQL之入门习题《学员成绩》 一、建表

      习题一学员成绩: 1.创建一个名为学员成绩的数据库, 主要数据文件初始大小为10MB,最大空间为30MB,文件增长幅度为5MB,日志文件初始大小为5MB,最大为20MB,文件增长幅度为3MB,请自 ...

  3. 教学思路SQL之入门习题《学员成绩》 三、多表复杂子查询

    1.查询出所有大连地区的学生的成绩. 2.查询从来没有参加任何考试的学生的信息. 3.查询有考试成绩纪录的学生的信息. 4.将所有大连地区学生的课程编号为3的课程成绩加10分. 5.删除所有C#课的成 ...

  4. Problem B: C语言习题 学生成绩输入和输出

    Problem B: C语言习题 学生成绩输入和输出 Description 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num(学号).name(姓名 ...

  5. java和数据库成绩管理系统,基于java与sql数据库技术的学生成绩管理系统 (4).doc...

    基于java与sql数据库技术的学生成绩管理系统 (4).doc 还剩 34页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! ...

  6. C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

    目录 一.创建数据库表和配置SQL数据库连接信息 1.创建数据库表 2.配置数据库连接信息 二.配置程序代码 1.StudentAccount类 2.Student类 3.TeacherAccount ...

  7. 数据结构实验入门:学生成绩统计排序系统

    笔者最近在学校开始学习数据结构,这门课程作为计算机专业的最核心课程需要重点掌握,下面是数据结构实验课上的第一次作业内容,笔者在这里分享一下自己的想法和见解 一.实验内容 设计程序实现统计一个班的学生成 ...

  8. 教学思路C#之入门一 认识简单的C#结构

    从今天开始我们要来学习微软.NET平台下的一门推广及发展迅速的语言C#,"#"的发音为英文sharp"啥普",意思是锐利的,微软的想法是:希望把这门语言发展成为 ...

  9. sql统计-关于学生成绩

    学生成绩表(stuscore): 问题: 计算每个人的总成绩并排名(要求显示字段:姓名,总成绩) 计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩) 计算每个人单科的最高成绩(要求显示字段 ...

最新文章

  1. UITableView当数据很少的时候,去掉多余的cell分割线
  2. 终端连接mysql是出现error 2003_远程连接MySQL报错ERROR 2003解决办法
  3. (转载)各Linux发行版本 网络配置文件
  4. 定位导致物化视图无法快速刷新的原因
  5. 好代码是管出来的——C#的代码规范
  6. C++(9)--裸指针、智能指针、引用
  7. E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法
  8. 内存管理:Linux Memory Management:MMU、段、分页、PAE、Cache、TLB
  9. 谷歌新玩具Vision Kit,带你DIY一个能识别千种物体的AI摄像头
  10. Android 自定义组合控件小结
  11. 2019年创业做什么有前景?
  12. 1024程序员节,一份精华合辑送给你
  13. 单例模式(饥汉式、懒汉式)
  14. 中文汉字注音,汉字转拼音,支持图片识别文字,支持结果转图下载,附上小程序核心源码
  15. nvme协议 sata接口_nvme和sata协议游戏测评
  16. 高德地图 zoom地图级别无效问题
  17. WiFi辅助的地磁匹配室内定位方法
  18. 直播平台源码开发 网上为什么那么多人求购直播源码
  19. win10向日葵远程黑屏/卡屏不能控制的解决办法
  20. C++小游戏——恋爱指数测试器O(∩_∩)O

热门文章

  1. ubuntu上传代码到github教程--token
  2. 智能车单车组平衡控制之扰动补偿仿真
  3. 用户注册登录-交互设计分析
  4. 太牛了!知识图谱原理与实战
  5. Mysql的原理解析
  6. 梅科尔工作室——深度学习第五课
  7. unity入门项目Ruby‘s Adventure
  8. aliyun yum
  9. iOS代码编写利器AppCode
  10. Centos安装KDE或GNOME