java 调用sql server视图_SQL Server创建视图

本教程讲解如何在SQL Server中使用CREATE VIEW创建视图,并展示通过Java调用这些视图的方法。示例包括创建简单视图、重新定义视图以及使用聚合函数的视图,并给出了相应的查询示例。
摘要由CSDN通过智能技术生成

在本教程中,将学习如何使用SQL Server CREATE VIEW语句创建新视图。

要在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关键字。

SQL Server CREATE VIEW示例

下面将使用示例数据库中的以下几个表:orders,order_items和products进行演示。

6ce32f2913cef7a2750f616c6cf63aa8.png

1. 创建一个简单的视图示例

以下语句根据orders,order_items和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.orders 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;

执行上面查询,得到以下结果:

9265f4128bd620d18a5f0de5bf7062a3.png

2. 重新定义视图示例

要将客户名称列添加到sales.daily_sales视图,请使用CREATE VIEW或ALTER语句,如下所示:

CREATE OR ALTER VIEW sales.daily_sales (

year,

month,

day,

customer_name,

product_id,

product_name,

sales

)

AS

SELECT

year(order_date),

month(order_date),

day(order_date),

concat(

first_name,

' ',

last_name

),

p.product_id,

product_name,

quantity * i.list_price

FROM

sales.orders 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

INNER JOIN sales.customers AS c

ON c.customer_id = o.customer_id;

在此示例中,明确指定了视图的列列表。

以下语句从sales.daily_sales视图查询数据:

SELECT

*

FROM

sales.daily_sales

ORDER BY

year,

month,

day,

customer_name;

执行上面查询,得到以下结果:

fb2a4d27afd60d3840759366a43b2055.png

3. 使用聚合函数创建视图示例

以下语句创建名为staff_salesthose的视图,使用SUM()聚合函数按人员和年份汇总销售额:

CREATE VIEW sales.staff_sales (

first_name,

last_name,

year,

amount

)

AS

SELECT

first_name,

last_name,

YEAR(order_date),

SUM(list_price * quantity) amount

FROM

sales.order_items i

INNER JOIN sales.orders o

ON i.order_id = o.order_id

INNER JOIN sales.staffs s

ON s.staff_id = o.staff_id

GROUP BY

first_name,

last_name,

YEAR(order_date);

以下语句从视图中查询数据:

SELECT

*

FROM

sales.staff_sales

ORDER BY

first_name,

last_name,

year;

执行上面查询,得到以下结果:

696d76624d488be766b84ab91077afc9.png

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值