SQL Server创建视图

什么是视图
     大家都知道,我们国家现在“神七”上天了。从美国的月球登月开始,人类上天不再是神话。听说,在美国,你只要出几十万美元,您就可以上一次月球进行太空旅行,所以,我们相信:在不久的将来,上天旅行将走进我们百姓的生活,那是一件多么新鲜神奇的事情啊。好多美国人上天后,他们用望远镜观看我们的地球,结果看到的地球形状各不相同。有的说象绿色的橘子,有的说象白色的大鸭梨,有的说象蓝色的大西瓜。这是为什么呢?你肯定会说:那是因为从不同的角度(视角),看到的不同形状而已。那么,从不同的视角,将看到不同的“图形”,这就是我们马上讲到的视图。我们的学员信息也是如此:对于学员的信息和成绩,老师比较关心学员成绩以及是否参加考试,包括姓名、学号、笔试、机试、是否通过等。班主任则比较关心学生档案,包括姓名、学号、性别和年龄。
其实,视图就是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上
•          视图中并不存放数据,而是存放在视图所引用的原始表(基表)中
•          同一张原始表,根据不同用户的不同需求,可以创建不同的视图

视图的用途
–         筛选表中的行
–         防止未经许可的用户访问敏感数据
–         降低数据库的复杂程度
–         将多个物理数据库抽象为一个逻辑数据库

使用视图可以给用户和开发人员带来很多好处。具体为:
1.对最终用户的好处
(1)结果更容易理解
创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容。在视图中修改列名不会影响基表的列名。
(2)获得数据更容易
很多人对SQL不太了解,因此对他们来说创建对多个表的复杂查询很困难。可以通过创建视图来方便用户访问多个表中的数据。

2.对开发人员的好处
(1)限制数据检索更容易
开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一个表或其他表中的其他数据的安全性。要实现这一目标,可以在创建视图时将要对用户保密的列排除在外。
(2)维护应用程序更方便
     调试视图比调试查询更容易。跟踪视图中过程的各个步骤中的错误更为容易,这是因为所有的步骤都是视图的组成部分。

如何创建视图
•          使用T-SQL语句创建视图的语法
CREATE VIEW view_name
   AS
    <select语句>
IF EXISTS (SELECT * FROM sysobjects WHERE /*检测是否存在*/
                         name = ‘view_stuInfo_stuMarks‘)
     DROP VIEW view_stuInfo_stuMarks /*删除视图*/
GO
CREATE VIEW view_stuInfo_stuMarks /*创建视图*/
  AS
    SELECT 姓名=stuName,学号=stuInfo.stuNo,
      笔试成绩 =writtenExam,  机试成绩=labExam,
            平均分=(writtenExam+labExam)/2
               FROM stuInfo LEFT JOIN stuMarks
                     ON stuInfo.stuNo=stuMarks.stuNo
GO
SELECT * FROM view_stuInfo_stuMarks /*使用视图*/

从一个或者多个表或视图中导出的虚拟表,其结构和数据是建立在对表的查询基础上的。
理论上它可以像普通的物理表一样使用,例如增、删、改、查等,修改视图中的数据实际上是修改
原始数据表。因为修改视图有许多限制,所以在实际开发中一般视图仅做查询使用。
 
时间: 2024-08-05 10:00:23

SQL Server创建视图的相关文章

sql server 创建视图添加表时出现从其他数据库导入的表未显示出来

创建视图添加表时出现从其他数据库导入的表未显示出来,通过数据库刷新,也不能解决.关闭SQL server management studio 后,再次进入,在创建视图的时候添加表的列表就出现了新导入的表. 原文地址:https://www.cnblogs.com/benpao1314/p/9472641.html

SQL Server创建视图——视图的作用

视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . 从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图. 例如查询,插入,修改,删除操作等,但插入.修改.删除等的操作其实对于原始数据表的操作. 视图的作用: 1.视图隐藏了底层的表结构,简化了数据访问操作,客户端

SQL Server创建存储过程(转载)

什么是存储过程? q       存储过程(procedure)类似于C语言中的函数 q       用来执行管理任务或应用复杂的业务规则 q       存储过程可以带参数,也可以返回结果 q       存储过程可以包含数据操纵语句.变量.逻辑 控制语句等 存储过程的优点 (1)执行速度快. 存储过程创建是就已经通过语法检查和性能优化,在执行时无需每次编译. 存储在数据库服务器,性能高. (2)允许模块化设计. 只需创建存储过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次.存储

sql server 创建内联表值函数

表值函数就是返回table 的函数使用它可以方便的进行查询的处理 创建的代码如下: create FUNCTION returunclassfirstlist(  -- Add the parameters for the function here )RETURNS TABLE ASRETURN ( -- Add the SELECT statement with parameter references here select * from classfirst;) 我们在使用创建的函数的时

(转)SQL Server创建索引

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词).同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度.? SQL Server中的数据也是按页( 4KB )存放? 索引:是SQL Server编排数据的内部方法.它为

SQL Server创建LinkServer

USE [master] GO /****** Object: LinkedServer [xxx_LNK] Script Date: 2014/7/7 17:04:13 ******/ EXEC master.dbo.sp_addlinkedserver @server = N'xxx_LNK', @srvproduct=N'xxx_LNK', @provider=N'SQLNCLI', @datasrc=N'xxx.xx.xxx.xx', @catalog=N'CMD' /* For sec

ArcSDE SQL Server 创建地图数据库

1.安装并破解: ArcGIS 10.2 ArcSDE 10.2 Sql Server 2008 R2 本文重点关注Sql Server和ArcSDE配置问题,安装破解过程略. 2.配置Sql Server,启用sa账号 (1)启用账户登录:点数据库属性,选安全性,在右边选中“SQL Server 和 Windows 身份验证模式” (2)启用sa账号 依次双击: 安全性 -> 登录名 -> sa,在弹出对话框中,点左侧“状态”,然后在右侧选中“授予”和“启用”.可以在常规选项卡中设置密码.

SQL Server创建索引(转)

什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词). 同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度. ?????????? SQL Server中的数据也是按页( 4KB )存放 ?????????? 索引:是

SQL Server 创建水平分布式数据库尝试

创建水平分布式数据库,需要分两步实现:划分子集和对子集进行并集操作.分布式数据库的优势是:IO分散,便于快速读取数据,劣势是消耗大量的网络带宽资源. 划分子集是将原始表水平切分成若干个较小的成员表,每一个成员表都是全集的一个划分(各子集的并集是全集,其交集是空集).每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型.大小.排序规则),水平切分原始表,也叫做数据库水平分片,sharding.在查询时,为了实现SQLServer内部水平分片对用户透明,必须利用