SqlServer视图——视图的创建与使用

SqlServer系列之视图的创建与使用:


什么是视图?

视图的概述

在数据查询中,可以看到数据表设计过程中,考虑到数据的冗余度低、数据一致性等问题,通常对数据表的设计要满足范式的要求,因此也会造成一个实体的所有信息保存在多个表中。

当检索数据时,往往在一个表中不能够得到想要的所有信息。 为了解决这种矛盾,在SQL Server中提供了视图。

视图的概念

视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果,只存放视图的定义,不存放视图对应的数据;其结构和和数据是建立在对表的查询基础上,故表中的数据发生变化,从视图中查询出的数据也随之改变。

视图的使用,跟对普通的表的查询使用完全一样。

视图的特点

1. 视图能够简化用户的操作,从而简化查询语句

2. 视图使用户能以多种角度看待同一数据,增加可读性

3. 视图对重构数据库提供了一定程度的逻辑独立性;

4. 视图能够对机密数据提供安全保护;

5. 适当的利用视图可以更清晰的表达查询。

使用视图的注意事项

1、只能在当前数据库中创建视图;

2、视图的命名必须遵循标识符命名规则,不可与表同名;

4、如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。

5、当视图引用基表或视图被删除,该视图也不能再被使用。

6、不能在视图上创建全文索引,不能在规则、默认的定义中引用视图。

7、一个视图最多可以引用1024个列。

8、视图最多可以嵌套32层。

视图的用途

1、筛选表中的行;

2、防止未经许可的用户访问敏感数据。降低数据库的复杂程度;

3、将多个物理数据库抽象为一个逻辑数据库。

手动创建视图

按照下面操作保存后创建成功;


代码创建视图

使用T-SQL语句创建视图

CREATEVIEW view_StudentInfo

AS

SELECT语句

使用T-SQL语句删除视图

--判断:如果存在指定视图则删除

IF EXISTS (SELECT * FROM sysobjects WHERE name='view_StudentInfo') --单引号里面为视图名称

    DROP VIEW view_StudentInfo --视图名称

使用T-SQL语句查看视图

SELECT * FROM view_StudentInfo

案例代码

--判断:如果存在指定视图则删除

IF EXISTS (SELECT * FROM sysobjects WHERE name='view_StudentInfo') --单引号里面为视图名称

DROP VIEW view_StudentInfo --视图名称

go

--创建成绩查询视图

CREATE VIEW view_StudentInfo AS SELECT a.Number,a.NAME,c.ClassName, b.C#,b.SqlDB,b.Java,b.Python FROM a_Students a

INNER JOIN a_StudentsScore b ON a.Number=b.Number

INNER JOIN a_StudentClass c ON c.ClassId=a.ClassId

go

--查询成绩视图 SELECT * FROM view_StudentInfo

效果展示

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容