SQLServer学习笔记十:视图

学习目标

  • 理解视图(VIEW)的概念
  • 能够创建、修改视图

视图的概念

视图(VIEW)是基于某个查询结果的虚表。简单的来说,是给用户观察数据库的一种机制,通过视图浏览表中有关的数据,其数据的物理存放地址仍在表中,就是说并未将数据真实提出来,只是一个虚拟表。称用来导出视图的表为基表,导出的视图称为虚表

在SQL Server中可以创建下面三种视图:

  • 标准视图,组合了一个或多个表中的数据,将重点放在特定数据上,简化数据操作。
  • 索引视图,是创建了唯一聚集索引的视图,即数据经过计算并存储下来,不适合用于经常更新的数据集。
  • 分区视图,在一台或多台服务器间连接一组成员表的分区数据

视图的优点

  • 着重与特定数据
  • 简化数据操作
  • 自定义数据
  • 导出和导入数据
  • 跨服务器组合分区数据

视图管理

创建视图

使用CREATE VIEW语句创建视图,语法如下:

CREATE VIEW [shema_name.] view_name AS
select_statement  -- 查询语句
  • [shema_name.] 数据库名称
  • view_name 视图名称

练习

创建视图,返回每个同学所在班级、专业以及班主任。

CREATE VIEW view_student_class AS
SELECT sno AS 学号, sname AS 姓名, s.classid AS 班级, c.speciality AS 专业, c.counselor AS 班主任
FROM students AS S
LEFT JOIN classes AS c ON c.classid = s.classid 

修改视图

  • 使用sp_rename修改视图名称,例如:
EXEC sp_rename 'view_student_class', 'view_student_class1'
  • 使用sp_rename修改视图中列的名称,例如
EXEC sp_rename 'view_student_class.专业', '所属专业'
  • 使用ALTER修改视图查询语句,例如:
ALTER VIEW <视图名> AS
select_statement

练习

使用ALTER修改视图view_student_class,添加性别和所在院系编号。

ALTER VIEW view_student_class AS
SELECT sno AS 学号, sname AS 姓名, gender AS 性别, s.classid AS 班级, c.speciality AS 专业, c.deptno AS 院系编号, c.counselor AS 班主任
FROM students AS S
LEFT JOIN classes AS c ON c.classid = s.classid 

删除视图

使用DROP VIEW语句删除视图,语法如下:

DROP VIEW <视图1>[, <视图2>...]

修改视图中的数据

使用视图可以修改数据记录,注意修改的是基表中的数据记录。

  • 向视图添加数据。例如,创建一个新视图view_students,通过INSERT INTO向视图添加一条记录。
    CREATE VIEW view_students AS
    SELECT sno AS 学号, sname AS 姓名, classid AS 班级
    FROM students
    
    INSERT INTO view_students VALUES ('J1300106', '王五', 'J13001')
    
  • 更新视图中的数据。例如,更新view_student_class中的学生姓名,最终影响的是students表中的记录。
    UPDATE view_student_class SET 姓名 = '赵六'
    where 姓名 = '王五'
    
  • 删除视图中的数据。例如,删除view_student_class中赵六的信息:
    DELETE FROM view_student_class
    WHERE 姓名 = '赵六'
    

总结

  • 视图的概念
  • 管理视图:创建,修改,删除
  • 修改视图中的数据

你可能感兴趣的:(数据库学习笔记,数据库开发)