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 创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。 |
SqlServer视图的创建与使用的更多相关文章
- SqlServer触发器的创建与使用
前言 上期我们介绍了SqlServer的视图和存储过程创建与使用,这期我们介绍一下触发器. 有需要回顾的可以电梯直达看一下: SqlServer视图的创建与使用 SqlServer存储过程的创建与使用 ...
- SqlServer游标的创建与使用
前言 大家都对SqlServer视图.存储过程.触发器的创建与使用有一定的了解了,我们来看下什么是游标,怎么使用,什么时候用. SqlServer视图的创建与使用 SqlServer存储过程的创建与使 ...
- SqlServer在视图上创建索引
在视图上创建索引需要三个条件: 一.视图必须绑定到架构. 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击 ...
- SqlServer视图介绍以及创建方式
1.,视图的介绍: (ps:学sqlServer视图是在面试问到之后学的,答不上来太low了,然后就去各种搜索操作对视图也有了自己的理解) 其实视图就是一张表,是一张表中或者多张表中经过某种筛选后显示 ...
- sqlserver查询所有表名、字段名、类型、长度和存储过程、视图的创建语句
-- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i ...
- SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
原文:SqlServer 使用脚本创建分发服务及事务复制的可更新订阅 [创建使用本地分发服务器] /************************[使用本地分发服务器配置发布]*********** ...
- oracle 视图的创建,游标,left join
视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CO ...
- SQLServer视图
视图简介:通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图.SELECT 语句引用的数据表称为视图的基表.在SQL Server 2005系统中,可以把视图分为3种类型,即标准视图,索 ...
- sqlserver 视图能否有变量
不能,sqlserver 视图一般不能有变量,也不能带存储过程
随机推荐
- TensorFlow & Machine Learning
TensorFlow & Machine Learning TensorFlow 实战 传统方式 规则 + 数据集 => 答案 无监督学习 机器学习 神经元网络 答案 + 数据集 =&g ...
- Node.js & process.env & OS Platform checker
Node.js & process.env & OS Platform checker Window 10 Windows 7 ia32 CentOS $ node # process ...
- web performance optimise & css
web performance optimise & css 俄罗斯套娃 clients hints https://cloudinary.com/blog/automatic_respons ...
- 1. VUE介绍
今天开始系统学习vue前端框架. 我是有前端基础的, 刚工作那会, 哪里分那么清楚啊, 前后端我都得做, 所以, css, js, jquery, bootstrap都会点, 还系统学过ext, 哈哈 ...
- C++算法模板集合
我的常用刷题网站:http://218.5.5.242:9018/JudgeOnline/ https://www.luogu.com.cn/ 排序 选择排序(selection sort) 1 vo ...
- 刚学会 C++ 的小白用这个开源框架,做个 RPC 服务要多久?
本文适合有 C++ 基础的朋友 本文作者:HelloGitHub-Anthony HelloGitHub 推出的<讲解开源项目>系列,本期介绍基于 C++ 的 RPC 开源框架--rest ...
- 1020 Tree Traversals——PAT甲级真题
1020 Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Give ...
- 最实用JS 留着学习
1.A标签删除 function input(){ var b = window.confirm("确认要删除本条信息!"); if(b==true){ ret ...
- 鸿蒙的js开发部模式18:鸿蒙的文件上传到python服务器端
1.首先鸿蒙的js文件上传,设置目录路径为: 构建路径在工程主目录下: 该目录的说明见下面描述: 视图构建如下: 界面代码: <div class="container"&g ...
- 007-变量的作用域和LED点阵
变量 一.局部变量和全局变量 局部变量:函数内申明的变量,只在函数内有效. 全局变量:函数外部申明的变量.一个源程序文件有一个或者多个函数,全局变量对他们都起作用. 备注:全局变量有副作用,降低了函数 ...
