SqlServer视图的创建与使用

 


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


 什么是视图?

视图的概述

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

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

视图的概念

视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果,只存放视图的定义,不存放视图对应的数据;

其结构和和数据是建立在对表的查询基础上,故表中的数据发生变化,从视图中查询出的数据也随之改变。

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

视图的特点

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

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

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

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

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

使用视图的注意事项

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

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

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

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

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

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

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

视图的用途

1、筛选表中的行;

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

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


手动创建视图

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

 


代码创建视图

使用T-SQL语句创建视图

CREATE VIEW 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
复制代码

效果展示

 

欢迎关注订阅我的微信公众平台【熊泽有话说】,更多好玩易学知识等你来取
作者:熊泽-学习中的苦与乐
公众号:熊泽有话说
出处: https://www.cnblogs.com/xiongze520/p/14566646.html
创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。  

 

posted @   熊泽-学习中的苦与乐  阅读(2329)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示