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视图的创建与使用的更多相关文章

  1. SqlServer触发器的创建与使用

    前言 上期我们介绍了SqlServer的视图和存储过程创建与使用,这期我们介绍一下触发器. 有需要回顾的可以电梯直达看一下: SqlServer视图的创建与使用 SqlServer存储过程的创建与使用 ...

  2. SqlServer游标的创建与使用

    前言 大家都对SqlServer视图.存储过程.触发器的创建与使用有一定的了解了,我们来看下什么是游标,怎么使用,什么时候用. SqlServer视图的创建与使用 SqlServer存储过程的创建与使 ...

  3. SqlServer在视图上创建索引

    在视图上创建索引需要三个条件: 一.视图必须绑定到架构. 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击 ...

  4. SqlServer视图介绍以及创建方式

    1.,视图的介绍: (ps:学sqlServer视图是在面试问到之后学的,答不上来太low了,然后就去各种搜索操作对视图也有了自己的理解) 其实视图就是一张表,是一张表中或者多张表中经过某种筛选后显示 ...

  5. sqlserver查询所有表名、字段名、类型、长度和存储过程、视图的创建语句

    -- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i ...

  6. SqlServer 使用脚本创建分发服务及事务复制的可更新订阅

    原文:SqlServer 使用脚本创建分发服务及事务复制的可更新订阅 [创建使用本地分发服务器] /************************[使用本地分发服务器配置发布]*********** ...

  7. oracle 视图的创建,游标,left join

    视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CO ...

  8. SQLServer视图

    视图简介:通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图.SELECT 语句引用的数据表称为视图的基表.在SQL Server 2005系统中,可以把视图分为3种类型,即标准视图,索 ...

  9. sqlserver 视图能否有变量

    不能,sqlserver 视图一般不能有变量,也不能带存储过程

随机推荐

  1. TensorFlow & Machine Learning

    TensorFlow & Machine Learning TensorFlow 实战 传统方式 规则 + 数据集 => 答案 无监督学习 机器学习 神经元网络 答案 + 数据集 =&g ...

  2. Node.js & process.env & OS Platform checker

    Node.js & process.env & OS Platform checker Window 10 Windows 7 ia32 CentOS $ node # process ...

  3. web performance optimise & css

    web performance optimise & css 俄罗斯套娃 clients hints https://cloudinary.com/blog/automatic_respons ...

  4. 1. VUE介绍

    今天开始系统学习vue前端框架. 我是有前端基础的, 刚工作那会, 哪里分那么清楚啊, 前后端我都得做, 所以, css, js, jquery, bootstrap都会点, 还系统学过ext, 哈哈 ...

  5. C++算法模板集合

    我的常用刷题网站:http://218.5.5.242:9018/JudgeOnline/ https://www.luogu.com.cn/ 排序 选择排序(selection sort) 1 vo ...

  6. 刚学会 C++ 的小白用这个开源框架,做个 RPC 服务要多久?

    本文适合有 C++ 基础的朋友 本文作者:HelloGitHub-Anthony HelloGitHub 推出的<讲解开源项目>系列,本期介绍基于 C++ 的 RPC 开源框架--rest ...

  7. 1020 Tree Traversals——PAT甲级真题

    1020 Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Give ...

  8. 最实用JS 留着学习

    1.A标签删除 function input(){    var b = window.confirm("确认要删除本条信息!");    if(b==true){     ret ...

  9. 鸿蒙的js开发部模式18:鸿蒙的文件上传到python服务器端

    1.首先鸿蒙的js文件上传,设置目录路径为: 构建路径在工程主目录下: 该目录的说明见下面描述: 视图构建如下: 界面代码: <div class="container"&g ...

  10. 007-变量的作用域和LED点阵

    变量 一.局部变量和全局变量 局部变量:函数内申明的变量,只在函数内有效. 全局变量:函数外部申明的变量.一个源程序文件有一个或者多个函数,全局变量对他们都起作用. 备注:全局变量有副作用,降低了函数 ...