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 创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。
|
本文来自博客园,作者:熊泽-学习中的苦与乐,转载请注明原文链接:https://www.cnblogs.com/xiongze520/p/14566646.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?