11-10SQLserver基础--数据库之视图
视图
视图实际就是对表的连接展现出来的结果建成的虚拟表。简单来说,视图实际上就是一个虚拟的表,通过表与表之间的关系连接起来,方便查询时使用。
首先,将需要连接的语句存储到数据库中,定义新的视图名代替连接的这段语句;
然后,每次查询这个新的视图名的时候,实际上是执行了表连接的代码查询。
1、将两个表(student,score表)联合写成一个表来用,形成一个新的表。
(select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno) as --作为一个新表,方便查询时使用
2、创建视图
方法一:通过视图---新建视图来操作。
步骤1:在“对象资源管理器” 选择想要建视图的数据库(xinxibiao)名下,点击“+”号后,
在子目录中选中“视图”,右键“新建视图”。
步骤2:在弹出的“添加表”对话框中,选择想要建立关系的表,然后点击“添加”,关闭即可。

步骤3:当两个或几个表建立好关系之后,发现它们之间存在主键与外键的关系,下图就是它们之间的关系表。

步骤4:建立好关系后,完成创建视图,就会显示想要的结果。

方法二:通过代码创建视图
书写格式:
create +(视图英文名)+创建的视图名称 ---类似表的创建格式
as
建立两个或多个表之间的关系的查询语句
go
例:create view studentscore ----创建视图
as
select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno ---建立student,score 表的关系语句
go
select*from studentscore ----查询结果的语句

【注意事项】视图里面不存在order by, 聚合函数,in,not in 关系运算等语句,它不是一个真正的表,是虚拟的表,数据来源在student,score表中,只能使用表连接的join...on组合数据,方便查询使用。
练习题1:

3、删除视图
方法1:

方法2:通过代码删除
drop view+视图名称
例如: drop view studentscore
4、修改视图
alter view studentscore ---相当于删除视图重写
as
(
select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno
)
go
【注意事项】同一个关系视图只能建一次,修改之后需重新建立关系,视图本身就是虚拟的不存在,只是为了查询方便使用。
11-10SQLserver基础--数据库之视图的更多相关文章
- day 53-1 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- day 67 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- MySQL数据库之视图
1 引言 为了简化复杂SQL语句编写,以及提高数据库安全性,MySQL数据库视图特性.视图是一张虚拟表,不在数据库中以储存的数据值形式存在.在开发中,开发者往往只对某些特定数据和所负责的特定任务感兴趣 ...
- MySQL/MariaDB数据库的视图(VIEW)
MySQL/MariaDB数据库的视图(VIEW) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.视图概述 1>.什么是视图 视图就是一个虚拟的表,保存有实表的查询结果 ...
- iOS系列 基础篇 05 视图鼻祖 - UIView
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...
- 在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option
在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option hostdr:[/ho ...
- Oracle数据库之视图与索引
Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...
- [SQL基础教程] 5-1视图
[SQL基础教程] 5-1视图 视图和表 从SQL角度看视图就是一张表 视图与表的差别 表保存了实际的数据,视图保存的是SELECT语句: 视图的优点 节省存储空间: 将常用的Select 语句保存成 ...
- 小程序开发基础-swiper 滑块视图容器
小编 / 达叔小生 参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/ 小程序开发基础-swiper 滑块视图容器 根 ...
随机推荐
- 机器学习三剑客之Numpy
Numpy NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效 ...
- 【转】移动oracle LOB索引到其他表空间
http://blog.chinaunix.net/uid-22948773-id-3451103.html
- 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它
dpkg应用程序被占用 错误提示: E: 无法获得锁 /var/lib/dpkg/lock – open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他 ...
- ThreadPool(线程池)
WPF使用ThreadPool.QueueUserWorkItem线程池防界面假死 时间:2012-01-09 20:44来源:http://luacloud.com 作者:luacloud 点击:1 ...
- JAVA中列表,集合之间的区别
整体来看List,Set,Map都是实现了Collection接口的接口. 重复性: List允许存在重复的元素,也就是说List中可以在不影响现有元素的值及其索引的同时插入新的重复元素. Set不允 ...
- java学习笔记 --- 多线程(1)
1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在. 2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进 ...
- Mac 系统安装redis服务
1.首先去http://www.redis.io/下载最新的redis文件,现在最新的是redis-2.8.19 2.进行解压缩 tar -zxvf redis-2.8.19.tar.gz 3.移动重 ...
- Gym - 100502G Outing (强连通缩点+树形依赖背包)
题目链接 问题:有n个人,最多选k个,如果选了某个人就必须选他指定的另一个人,问最多能选多少个人. 将每个人所指定的人向他连一条单向边,则每一个点都有唯一的前驱,形成的图是个基环树森林,在同一个强连通 ...
- CodeForces - 1025F:Disjoint Triangles (几何)
A point belongs to a triangle if it lies inside the triangle or on one of its sides. Two triangles a ...
- SQL夯实基础(五):索引的数据结构
数据量达到十万级别以上的时候,索引的设置就显得异常重要,而如何才能更好的建立索引,需要了解索引的结构等基础知识.本文我们就来讨论索引的结构. 二叉搜索树:binary search tree 1.所有 ...