آموزش SQL Server Views (بخش دوم)
آموزش SQL Server Views (بخش دوم)
با سلام خدمت شما همراهان همیشگی سایت ABLY. در بخش قبل ما راجع به SQL Server Views و ساختار آن توضیح دادیم. حال در این بخش ما راجع به SQL Server CREATE VIEW که به شما نشان می دهد چگونه یک view جدید در یک پایگاه داده SQL Server ایجاد کنید، توضیح خواهیم داد. بنابراین تا پایان این بخش آموزشی با ما همراه باشید.
آموزش SQL Server Views (بخش دوم)
با سلام خدمت شما همراهان همیشگی سایت ABLY. در بخش قبل ما راجع به SQL Server Views و ساختار آن توضیح دادیم. حال در این بخش ما راجع به SQL Server CREATE VIEW که به شما نشان می دهد چگونه یک view جدید در یک پایگاه داده SQL Server ایجاد کنید، توضیح خواهیم داد. بنابراین تا پایان این بخش آموزشی با ما همراه باشید.
برای ایجاد یک View جدید در SQL Server، از عبارت CREATE VIEW به صورت زیر استفاده می کنید:
CREATE VIEW [OR ALTER] schema_name.view_name [(column_list)]
AS
select_statement;
براساس کوئری بالا، ابتدا نام View را پس از کلمات کلیدی CREATE VIEW مشخص کنید.
سپس، یک عبارت SELECT (select_statement) را تعریف می کند که View را بعد از کلمه کلیدی AS مشخص می کند. دستور SELECT می تواند به یک یا چند جدول اشاره کند.
اگر شما صراحتا لیستی از ستون ها برای نمایش را مشخص نکنید، SQL Server از لیست ستون مشتق شده از دستور SELECT استفاده می کند.
در صورتی که می خواهید این View را دوباره تعریف کنید، برای مثال، اضافه کردن ستون بیشتر به آن یا حذف برخی از ستون از آن، از کلمات کلیدی OR ALTER پس از کلید واژه CREATE VIEW استفاده کنید.
مثال:
ما جدولهای زیر را داریم:
که از جدولهای orders، order_items و products استفاده خواهیم کرد.
ایجاد یک View ساده
دستور زیر یک View به نام daily_sales بر اساس جداول orders ، order_items و products ایجاد می کند:
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;
نتیجه به صورت زیر خواهد بود:
بازنویسی View
برای اضافه کردن ستون نام مشتری به نمایش sales.daily_sales، از CREATE VIEW یا ALTER به عنوان زیر استفاده کنید:
CREATE OR ALTER 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;
در این مثال، لیست ستون را برای View کاملا مشخص کردیم.
کوئری زیر داده ها را در برابر sales.daily_sales نمایش می دهد:
SELECT
*
FROM
sales.daily_sales
ORDER BY
y,
m,
d,
customer_name;
نتیجه به صورت زیر خواهدبود:
ایجاد یک View با تابع aggregate
کوئری زیر ایجاد یک View به نام 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);
کوئری زیر محتویات View را بازمی گرداند:
SELECT
*
FROM
sales.staff_sales
ORDER BY
first_name,
last_name,
year;
نتیجه به صورت زیر خواهدبود:
در این آموزش، شما یاد گرفتید که چگونه با استفاده از SQL SQL Server CREATE VIEW یک View جدید ایجاد کنید.