当前位置:网站首页>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’;
边栏推荐
猜你喜欢

适配器模式

The State Council issued a document to improve the application of identity authentication and electronic seals, and strengthen the construction of Digital Government

使用Jenkins执行TestNg+Selenium+Jsoup自动化测试和生成ExtentReport测试报告

家庭记账程序(第一版)
Posting - don't get lost in the ocean of Technology

Ribbon负载均衡服务调用

小程序第三方微信授权登录的实现

Sofa weekly | open source person - Yu Yu, QA this week, contributor this week

家庭记账程序(第二版 加入了循环)

状态模式,身随心变
随机推荐
The news of thunderbolt
Life is so fragile
one billion two hundred and twelve million three hundred and twelve thousand three hundred and twenty-one
Overloading and overriding
Machine learning 07: Interpretation of PCA and its sklearn source code
Owasp-top10 in 2021
Win socket programming (Mengxin initial battle)
Feelings of virtual project failure
RIA想法
【PHP】PHP二维数组按照多个字段进行排序
SDN based DDoS attack mitigation
Redis installation on Linux
Factory method pattern, abstract factory pattern
[arm] build boa based embedded web server on nuc977
小程序如何关联微信小程序二维码,实现二码聚合
Cyclic displacement
Last flight
Command line interface of alluxio
Kolla ansible deploy openstack Yoga version
REUSE_ALV_GRID_DISPLAY 事件实现(DATA_CHANGED)