SQL Server基础之《视图的概述和基本操作》

阅读目录

  • 一:视图的概述
  • 二:视图的分类
  • 三:视图的优点和作用
  • 四:视图的基本操作和语法
  • 五:视图和表的区别

 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。本篇将通过一些实例来介绍视图的概念,视图的作用,创建视图,查看视图,修改视图,更新和删除视图等SQL Server的数据库知识。

回到顶部

一:视图的概述

 视图是从一个或者多个表导出的,它的行为与表非常相似,但视图是一个虚拟表,在视图中可以使用SELECT语句查询数据,以及使用insert、update和delete语句修改记录,对于视图的操作最终转化为对基本数据表的操作。视图不仅可以方便操作,而且可以保障数据库系统的安全性。

 视图一经定义便存储在数据库中,与其相对应的数据并没有像表数据那样在数据库中在存储一份,通过视图看到的数据只是存放在基本表中的数据。可以对其进行增删该查,通过视图对数据修改,基本表数据也对应变化,反之亦然。

回到顶部

二:视图的分类

 SQL Server的视图可以分为3类,分别是:标准视图,索引视图,分区视图

2.1.标准视图

 标准视图组合了一个或多个表中的数据,可以获得使用视图中的大多数好处,包括重点将放在特定的数据上及简化数据操作。

2.2.索引视图

 索引视图是被具体化了的视图,即它已经经过计算并存储。可以为视图创建索引,对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能,索引视图尤其适于聚合许多行的查询,但它们不太适于经常更新的基本数据集。

2.3.分区视图

 分区视图在一台多多台服务器间水平连接一组成员表的分区数据,这样,数据看上去如同来自一个表。连接本地同一个SQL Server实例中的成员表的视图是一个本地区分视图。

回到顶部

三:视图的优点和作用

与直接从表中读取数据相比,视图具有一下优点

3.1.简单化

 看到的就是需要的,视图不仅可以简化用户对数据的理解,也可以简化对它们的操作,那些经常使用的查询可以被定义为视图,从而使得用户不必为以后的每次操作指定全部的条件。

3.2.安全性

 视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它或表既不可见也不可以访问。如果某一用户想要访问视图的,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。

3.3.逻辑数据独立性

 视图可以帮助用户屏蔽真实表结构变化带来的影响。

回到顶部

四:视图的基本操作和语法

4.1.创建视图

--语法
CREATE VIEW view_name
 AS
    SELECT column_name(s) FROM table_name
WHERE condition

测试数据准备:

use sample_db;
create table studentTable(
    id int identity(1,1)primary key,
    name varchar(20),
    gender char(2),
    age int,
)
insert into studentTable (name,gender,age)
values
    (‘刘备‘,‘男‘,28),
    (‘张飞‘,‘男‘,24),
    (‘关羽‘,‘男‘,26); 

--创建视图
if (exists (select * from sys.objects where name = ‘student_view‘))
    drop view student_view
go
--student_view()不实用参数,默认为基础表中的列名称
create view student_view
as
select name,age from studentTable where age>24;
--执行视图
select * from student_view;

查看视图的信息

  • 使用sp_help存储过程查看视图的定义信息
  • 使用sp_helptext系统存储过程使用来显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本,语法
exec  sp_help ‘student_view‘;
exec sp_helptext ‘student_view‘;

创建加密视图:

--加密视图
if (exists (select * from sys.objects where name = ‘student_encryption‘))
    drop view student_encryption
go
create view student_encryption
with encryption --加密
as
    select id, name, age from studentTable
go
--view_definition is null
--查看加密视图
select * from information_schema.views
where table_name like ‘student_encryption‘;

 

  从执行结果可看出view_definition字段为 NULL

4.2.使用视图修改基本表数据

(1).通过视图向基本表中插入数据

--(1).通过视图向基本表中插入数据
create view stu_insert_view(编号,姓名,性别,年龄)
as
select id,name,gender,age from studentTable;
go
select * from studentTable;
---插入一条数据
insert into stu_insert_view values(‘曹操‘,‘男‘,40);
----查看插入记录之后表中的内容。
select * from studentTable;   

(2).通过视图修改基本表的数据

--(2).通过视图修改基本表的数据
--查看修改之前的数据
select * from studentTable;
--修改数据
update student_view set age=30
where name=‘刘备‘;
--查看修改后的数据
select * from studentTable;

(3).通过视图删除基本表的数据

--语法
delete view_name where condition;
--例子
delete student_view where name =‘张飞‘;
select * from student_view;
select * from studentTable;

4.3.修该视图

--修改视图
alter view student_view
as
select * from studentTable where age>26;

4.4.删除视图

--语法
drop view view_name1,view_name2,......,view_nameN;
--该语句可以同时删除多个视图,只要在删除各视图名称之间用逗号分隔即可。
drop view studentTable;

回到顶部

五:视图和表的区别

  1. 视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化表,而表不是;
  2. 视图(除过索引视图)没有实际的物理记录,而基本表有;
  3. 表示内容,视图是窗口;
  4. 表占物理空间,而视图不占物理空间,视图只是逻辑概念的存在;
  5. 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全角度说,视图可以防止用户接触数据表,从而不知表结构;
  6. 表属于全局模式的表,是实表;视图数据局部模式的表,是虚表;
  7. 视图的建立和删除只影响视图本身,不影响对应的基本表。

转自:http://www.cnblogs.com/selene/p/4490503.html

原文地址:https://www.cnblogs.com/wyt007/p/9432215.html

时间: 2024-10-14 23:11:38

SQL Server基础之《视图的概述和基本操作》的相关文章

SQL Server基础之<游标>

查询语句可能返回多条记录,如果数据量非常大,需要使用游标来逐条读取查询结果集中的记录.应用程序可以根据需要滚动或浏览其中的数据.本篇介绍游标的概念.分类.以及基本操作等内容. 一:认识游标   游标是SQL Server的一种数据访问机制,它允许用户访问单独的数据行.用户可以对每一行进行单独的处理,从而降低系统开销和潜在的阻隔情况,用户也可以使用这些数据生成的SQL代码并立即执行或输出. 1.游标的概念  游标是一种处理数据的方法,主要用于存储过程,触发器和 T_SQL脚本中,它们使结果集的内容

SQL Server基础知识

查看sql server版本 select @@VERSION 基本操作 use tty; 使用tty数据库 create table tt(name varchar(10)); 新建表tt insert into tt values('ftp'); 插入数据ftp select * from tt; 查看表tt delete from tt; 删除表表tt中的一条记录 运行命令的快捷方式: Alt+x 重启数据库服务 net restart mssqlserver 修改用户密码 企业管理器——

SQL Server基础

一.常用命令 1.使用命令行开启SQL Server服务 获取管理员权限的命令行工具: net start mssqlserver 开启sql server服务 net restart mssqlserver 重新启动sql server服务 net stop mssqlserver 关闭sql server服务 2.使用命令登陆(该方法可适用于在一台没有SQL Server的电脑去操作一台有SQL Server的电脑) 运行: sqpl ?/ [-S 服务器的名称]  [-U 登陆名] [-P

SQL Server 基础 03 查询数据基础

查询数据 简单的查询 1 create table stu_info 2 ( 3 sno int not null 4 ,sname varchar(20) not null 5 ,sex varchar(2) not null 6 ,birth varchar(20) not null 7 ,email varchar(20) not null 8 ,telephone int not null 9 ,depart varchar(20) not null 10 ) 11 12 13 sele

SQL server基础知识(表操作、数据约束、多表链接查询)

SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database 数据库名称 查询:select name from master..sysdatabases 修改:alter database 数据库名称(在 sql server 中修改与数据库关联的文件和文件组.在数据库中添加或删除文件和文件组.更改数据库或其文件和文件组的属性) (3).管理表 选择数据库:use 数

SQL Server 基础 04 函数与分组查询数据

函数与分组查询数据 系统函数分 聚合函数.数据类型转换函数.日期函数.数学函数 . . . 1. 聚合函数 主要是对一组值进行计算,然后返回一个值. 聚合函数包括 sum(求和).avg(求平均值).min().max().count(求数量) sum函数语法  :  sum(列明) select sum(sno) as 序号和 from stu_info avg select avg(sno) as 序号平均值 from stu_info . . . count 用来一组值的个数,统计 sel

sql server 基础教程[温故而知新三]

子曰:“温故而知新,可以为师矣.”孔子说:“温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了.“ 尤其是咱们搞程序的人,不管是不是全栈工程师,都是集十八般武艺于一身.不过有时候有些知识如果有很久没用了的话,就会忘记,甚至是忘的你一点都想不起来,尤其是一些基础的东西.所以我才打算写个"温故而知新"的系列博文出来,一来是这些基础的东西我比较健忘,以后方便自己翻阅:二来是希望可以帮助到一些刚入门的朋友.这个系列记录的所有知识点都是最最最(重要的事情说三遍)基础的知识.大部分都是我

SQL Server基础之<存储过程>

  简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理.本篇主要介绍变量的使用,存储过程和存储函数的创建,调用,查看,修改以及删除操作. 一:存储过程概述  SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便的从系统表中查询信息,或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是SQL Server数据库与应用程序之间的编程接口.在很多情况下,一些代码会被开发者重复编写多次,如果每次都编写相同功能

[SQL] SQL SERVER基础语法

Struct Query Language 1.3NF a.原子性 b.不能数据冗余 c.引用其他表的主键 2.约束 a.非空约束 b.主键约束 c.唯一约束 d.默认约束 e.检查约束 f.外键约束 3.外键与关系 外键是约束,不做外键处理,关系也是存在的. 4.char varchar nchar nvarchar char:是固定字符,如果不够,会用空格来处理. 不需要计算长度,速度快. varchar:是动态的大小.需要计算长度,速度慢,存储占用小. nvarchar:是以unicode

SQL SERVER 基础知识及语法总结,从头说起,一点一滴 (一)

什么是SQL? SQL指结构化查询语言 SQL使我们有能力访问数据库 SQL是一种ANSI的标准计算机语言 在SQL的使用上,或多或少也有许多知识点,在这里总结一下关于SQL的基本语法以及一些基础知识点 前      言 首先来谈谈对数据库以及服务器的一些愚见吧! 项目按照类型分大致可以划分为C/S以及B/S方式,前者是客户端/服务器的方式,后者是网页浏览器/服务器的方式,无论哪一种方式都是由前端客户端发送请求数据包给服务器上的应用服务器对数据库进行处理再返回处理结果而实现的,在后台的数据库按照