数据库视图 视图是存储在数据库目录中的命名查询,允许客户端在之后引用它。视图可以包含来自使用连接的多个表的列,也可以只包含单个表的列的子集。 这使得视图对于抽象或隐藏复杂查询很有用。 视图有三大优点:一、安全:您可以限制用户直接访问表,并允许他们通过视图访问数据子集。例如,可以允许用户通过视图访问客户姓名,电话,电子邮件,但限制他们访问银行帐户和其他敏感信息。 二、简单:关系数据库可以具有许多具有复杂关系的表,例如,一对一和一对多使得难以导航。但是,可以使用一组视图简化具有连接和条件的复杂查询。 三、一致性:有时,需要在每个查询中编写复杂的公式或逻辑。为了使其一致,可以隐藏视图中的复杂查询逻辑和计算。定义视图后,可以从视图中引用逻辑,而不是在单独的查询中重写它。
一、 SQL Server创建视图 SQL Server中创建新视图,请使用 CREATE VIEW 语句,如下所示:
在上面语法中,在 CREATE VIEW 关键字后指定视图的名称daily_sales。sales是视图所属的架构的名称。指定定义 AS 关键字后面的视图的 SELECT 语句。 SELECT 语句可以引用一个或多个表。如果未明确指定视图的列列表,SQL Server将使用从 SELECT 语句派生的列列表。如果想重新定义视图,例如,向其添加更多列或从中删除一些列,可以在 CREATE VIEW 关键字后使用OR ALTER 关键字。
二、 SQL Server重命名视图 在重命名视图之前,必须注意所有依赖于视图的对象都可能失败。这些对象包括存储过程,用户定义的函数,触发器,查询,其他视图和客户端应用程序。因此,重命名视图后,必须确保引用视图旧名称的所有对象都使用新名称。 1、使用SSMS重命名视图 要重命名视图的名称,请按照以下步骤操作:首先,在对象资源管理器(Server Server Management Studio)中,展开“数据库”,选择包含要重命名的视图的数据库名称,然后展开“视图”文件夹。其次,右键单击要重命名的视图,然后选择“重命名”:
2、使用SQL重命名视图 如果要以编程方式重命名视图,可以使用 sp_rename 存储过程:
在这个语句中:使用 @obname 参数指定旧的视图名称,并将新的视图名称传递给 @newname 参数。成功后sp_rename 存储过程返回以上消息。
三、SQL Server获取视图定义信息 要获取视图的信息,请使用系统目录 sys.sql_module 和 OBJECT_ID() 函数:如下所示:
在此查询中,将视图名称传递给 WHERE 子句中的 OBJECT_ID() 函数。 OBJECT_ID() 函数返回模式范围数据库对象的标识号。
1、使用sp_helptext存储过程获取视图信息 sp_helptext 存储过程返回用户定义对象(如视图)的定义。要获取视图的信息,请将视图名称传递给 sp_helptext 存储过程。 例如,以下语句返回sales.product_list视图的信息:
2、使用OBJECT_DEFINITION()函数获取视图信息 获取视图信息的另一种方法是使用 OBJECT_DEFINITION() 和 OBJECT_ID() 函数,如下所示:
四、 SQL Server删除视图 从数据库中删除视图,请使用 DROP VIEW 语句,它的语法如下所示:。
在此语法中,可以指定要在 DROP VIEW 关键字后删除的视图的名称。如果视图属于模式,则还必须显式指定视图所属的模式的名称。如果尝试删除不存在的视图,SQL Server将发出错误。IF EXISTS 子句可防止在删除不存在的视图时发生错误。
|