当前位置:网站首页>SQL Server视图

SQL Server视图

2022-06-26 05:46:00 weixin_47254122

撰写时间:2022 年 5 月 26日

						SQL Server视图

视图是存储在数据库目录中的命名查询,允许客户端在之后引用它。视图图可以包含来自使用连接的多个表的列,也可以只包含单个表的列的子集。 这使得视图对于抽象或隐藏复杂查询很有用。
视图有以下优点:
安全
您可以限制用户直接访问表,并允许他们通过视图访问数据子集。例如,可以允许用户通过视图访问客户姓名,电话,电子邮件,但限制他们访问银行帐户和其他敏感信息。
简单
关系数据库可以具有许多具有复杂关系的表,例如,一对一和一对多使得难以导航。但是,可以使用一组视图简化具有连接和条件的复杂查询。
一致性
有时,需要在每个查询中编写复杂的公式或逻辑。为了使其一致,可以隐藏视图中的复杂查询逻辑和计算。定义视图后,可以从视图中引用逻辑,而不是在单独的查询中重写它。
SQL Server创建视图:
SQL Server中创建新视图:使用create view语句:
create view [or alter] schema_name.view_name [(column_list)] as select_statement;
在上面语法中:
在create view关键字后指定视图的名称。schema_name是视图所属的架构的名称。指定定义as关键字后面的视图的select语句(select_statement)。select语句可以引用一个或多个表。如果未明确指定视图的列列表,SQL Server将使用从select语句派生的列列表。、
如果想重新定义视图,例如,向其添加更加多列或从中删除一些,可以在create view关键字后使用 or alter关键字。
创建一个简单的视图示例:
以下语句根据orders,order_time和products表创建名为daily_sales的视图:
create view sales.daily_sales as select
year(order_date )as y,
month(order_date ) as m,
day(order_date ) as d,
p.product_id,
product_name,
quantity * i.list_price as sales
from
sales.order_id as o
inner join sales.order_items as i
on o.order_id = i.order_id
inner join production.products as p
on p.product_id = i.product_id;
创建daily_sales 视图后,可以使用简单的select语句在视图上针对基础表查询数据:
select
*
from
sales.daily_sales
order by
y, m , d, product_name;
SQL Server 重命名视图
在重命名视图之前,必须注意所有依赖于视图的对象都可能失败。这些对象包括存储过程,用户定义的函数,触发器,查询,其他视图和客户端应用程序。因此,重命名视图后,必须确保应用视图旧名称的所有对象都使用新名称。
使用SSMS重命名视图
要重命名视图的名称,请按照以下步骤操作:
首先,在对象资源管理器(Server Server Management Studio)中,展开“数据库”,选择包含要重命名的视图的数据库名称,然后展开“视图”文件夹。其次,右键单击要重命名的视图,然后选择“重命名”
使用SQL重命名视图
如果要以编程方式重命名视图,可以使用 sp_rename 存储过程:
exec sp_rename
@objname = ‘sales.product_catalog’,
@newname =’sales.product_list’;

原网站

版权声明
本文为[weixin_47254122]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_47254122/article/details/124993078