SQL sever中的视图
作者:mmseoamin日期:2023-12-13

目录

一、视图概述:

二、视图好处

三、创建视图

法一:

法二:

四、查看视图信息

五、视图插入数据

六、视图修改数据

七、视图删除数据

八、删除视图

法一:

法二:


一、视图概述:

    视图是一种常用的数据库对象,它将查询的结果以虚拟表的形式存储在数据中。视图并不在数据库中以存储数据集的形式存在。视图的结构和内容是建立在对表的查询基础之上的,和表一样包括行和列,这些行列数据都来源于其所引用的表,并且是在引用视图过程中动态生成的。

视图中的内容是由查询定义来的,并且视图和查询都是通过SQL语句定义的,它们有着许多相同和不同之处,具体如下。

  • ☑存储:视图存储为数据库设计的一部分,而查询则不是。视图可以禁止所有用户访问数据库中的基表,而要求用户只能通过视图操作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响,同样也可以保护数据表的安全性。
  • ☑排序:可以排序任何查询结果,但是只有当视图包括TOP子句时才能排序视图。

    总之,视图是由一个或多个表(或其他视图)派生的虚拟表。视图是基于查询结果集的命名查询,它包含了从一个或多个表中选择的特定列和行。因此视图可以被认为是一种虚拟表,其内容并不实际存储在数据库中,而是在查询时动态生成。通过创建视图,我们可以隐藏底层表的复杂性,简化复杂查询,并提供一种方便和安全的方式来访问数据。视图只是定义了一个查询,并根据查询的结果生成数据。

    视图为数据呈现提供了多样的表现形式,用户可以通过它浏览表中感兴趣的数据。在SQL Server

    2008中视图分为以下3类。

    • ☑标准视图:保存在数据库中的SELECT查询语句,即通常意义上理解的视图。
    • ☑索引视图:创建有索引的视图称为索引视图。它经过计算并存储有自己的数据,可以提高某些类型查询的性能,尤其适用于聚合许多行的查询,但不太适用于经常更新的基本数据集。
    • ☑分区视图:是在一台或多台服务器间水平联结一组表中的分区数据,以使数据看上去来源于一个表。

      二、视图好处

      使用视图的好处包括:

      • 简化复杂的查询:视图可以根据具体的业务需求和逻辑将复杂的查询操作进行封装,提供更简洁易懂的查询语句。
      • 提高性能:视图可以对查询结果进行缓存,当查询相同的数据时,可以减少查询时间和数据库负载。
      • 数据安全性:通过视图,可以控制用户对数据的访问权限,限制他们只能查看和操作特定的列或行,从而保护数据的安全性。

        三、创建视图

        法一:

        使用SQL Server Management Studio创建视图 ,具体操作步骤如下:

        (1)启动SQL Server Management Studio,并连接到SQL Server2008中的数据库。

        (2)在“对象资源浏览器”中展开“数据库”节点,展开指定的数据库,比如我选择的是SJCX。

        (3)右击“视图”选项,在弹出的快捷菜单中选择“新建视图”命令,如图所示。

        SQL sever中的视图,第1张

        (4)打开“添加表”对话框,如图所示。在列表框中选择表rank,单击“添

        加”按钮,然后单击“关闭”按钮关闭该对话框。

        SQL sever中的视图,第2张

        (5)进入视图设计器界面,如图所示。在“表选择区”中选择“所有列”选项,单击执行按

        钮,视图结果区中自动显示视图结果。

        SQL sever中的视图,第3张

        (6)单击工具栏中的“保存”按钮口,弹出“选择名称”对话框,如图所示。在“输入视图名称”文本框中输入视图名称View_Rank,单击“确定”按钮即可保存该视图。 

        SQL sever中的视图,第4张

        法二:

        使用 CREATE VIEW 语句,具体语法如下:

        CREATE VIEW view_name AS
        SELECT column1, column2, ...
        FROM table(s)
        WHERE condition;
        

         比如选择数据库SJCX,创建视图View_people,则SQL语句为:

        CREATE VIEW view_people AS
        SELECT [DepartmentId]
              ,[RankId]
              ,[PeopleId]
              ,[PeopleName]
              ,[PeopleGender]
              ,[PeopleBirth]
              ,[PeopleSalary]
              ,[PeoplePhone]
              ,[PeopleAddress]
              ,[peopleAddTime]
              ,[PeopleMail]
          FROM [SJCX].[dbo].[People];

        执行该SQL语句后即创建成功。这是最常用的创建视图的方法,使用 CREATE VIEW 语句指定视图的名称(view_name),然后在 SELECT 子句中定义视图所选择的列和表(或其他视图),并可以包含一个可选的 WHERE 子句来筛选数据。

        四、查看视图信息

        下面在SQL Server Management Studio中查看视图View Stu的信息,具体操作步骤如下。

        (1)启动SQL Server Management Studio,并连接到SQL Server2008中的数据库。

        (2)在“对象资源浏览器”中展开“数据库”节点,展开指定的数据库SJCX。

        (3)再依次展开“视图”节点,就会显示出当前数据库中的所有视图,右击要查看信息的视图。

        SQL sever中的视图,第5张

        (4)在弹出的快捷菜单中,如果想要查看视图的属性,选择“属性”选项,弹出“视图属性”对话框,如图所示:

        SQL sever中的视图,第6张

        (5)如果想要查看视图中的内容,可在图所示的快捷菜单中选择“编辑前200行”选项,在右侧即可显示视图中的内容。

        (6)如果想要重新设置视图,可在快捷菜单中选择“设计”选项,打开视图的设计界面,如图所示。在此界面中可对视图重新进行设置。

        SQL sever中的视图,第7张        

        五、视图插入数据

        使用视图可以插入新的记录,但应该注意的是,新插入的数据实际上是存储在与视图相关的表中。

        示例:

        向视图View_Rank中插入信息“4,顶级”。

        步骤如下:

        (1)右击要插入记录的视图,在弹出的快捷菜单中选择“设计”命令,显示视图的设计界面。

        (2)在显示视图结果的最下面一行直接输入新记录即可,如图所示。

        SQL sever中的视图,第8张

        (3)然后按下Enter键,即可把信息插入到视图中。

        (4)单击!按钮,完成新记录的添加,如图所示:

        SQL sever中的视图,第9张

        六、视图修改数据

        使用视图可以修改数据记录,但是与插入记录相同,修改的是数据表中的数据记录。

        示例:

        修改视图View_Rank中的记录,将“顶级”修改为“低级”。

        步骤如下:

        (1)右击要修改记录的视图,在弹出的快捷菜单中选择“设计”命令,显示视图的设计界面。

        (2)在显示的视图结果中,选择要修改的内容,直接修改即可。

        (3)最后按下Enter键,即可把信息保存到视图中。 

        SQL sever中的视图,第10张

        七、视图删除数据

        使用视图可以删除数据记录,但是与插入记录相同,删除的是数据表中的数据记录。

        示例:

        删除视图View_Rank中的记录“低级”。

        步骤如下:

        (1)右击要删除记录的视图,在弹出的快捷菜单中选择“设计”命令,显示视图的设计界面。

        (2)在显示视图的结果中,右击要删除的行“低级”,在弹出的快捷菜单中选择“删除”命令,弹出“删除”对话框,如图所示。

        SQL sever中的视图,第11张

        (3)单击“是”按钮,便可将该记录删除。 

        SQL sever中的视图,第12张

        (4)检查结果,如图所示:

        SQL sever中的视图,第13张

        八、删除视图

        对于数据库中不需要的视图可以将其删除,以释放存储空间。可以使用企业管理器将其删除,也

        可以使用SQL语句将其删除。

        法一:

        使用企业管理器删除视图的步骤如下:

        (1)启动SQL Server Management Studio,.并连接到SQL Server2008中的数据库。

        (2)在“对象资源管理器”中依次展开“数据库”指定的数据库/“视图”节点。

        (3)右击要删除的视图,在弹出的快捷菜单中选择“删除”命令,弹出“删除对象”对话框,如图所示。 在“删除对象”对话框中,单击“显示依赖关系”按钮,可以显示与该视图有关的数据表和视图,单击“确定”按钮,便可将该视图删除。

        SQL sever中的视图,第14张

        注意:

        在删除之前,应该先查看视图的依赖关系,如果有对象依赖于要删除的视图,那么要确

        定是否要保存该对象,如果不保存,则可以直接将该视图删除,否则将不能删除该视图。

        法二:

        使用 DROP VIEW 语句来删除视图。下面是删除视图的语法:

        DROP VIEW [IF EXISTS] view_name;
        --或者
        IF OBJECT_ID('view_name', 'V') IS NOT NULL
            DROP VIEW view_name;

        可选的 IF EXISTS 子句用于检查视图是否存在。如果视图不存在,执行语句时不会引发错误。

        使用 OBJECT_ID 函数检查视图是否存在(V 表示视图),如果存在则执行 DROP VIEW 语句进行删除。

        注意:

        从 SQL Server 2016 版本开始,引入了 DROP VIEW IF EXISTS 语法。因此,如果使用的是 SQL Server 2016 及其更高版本,可以直接使用该语法来删除视图。

        示例:

        删除视图view_people:

        -- 删除视图
        DROP VIEW view_people;
        -- 删除视图(如果存在)
        DROP VIEW IF EXISTS view_people;
        --或者
        IF OBJECT_ID('view_people', 'V') IS NOT NULL
            DROP VIEW view_people;