آموزش SQL Server Views (بخش دوم)

آموزش SQL Server Views (بخش دوم)

آموزش SQL Server Views (بخش دوم)

با سلام خدمت شما همراهان همیشگی سایت ABLY. در بخش قبل ما راجع به SQL Server Views و ساختار آن توضیح دادیم. حال در این بخش ما راجع به SQL Server CREATE VIEW  که به شما نشان می دهد چگونه یک view جدید در یک پایگاه داده SQL Server ایجاد کنید، توضیح خواهیم داد. بنابراین تا پایان این بخش آموزشی با ما همراه باشید.

learning-sqlserver-views

آموزش 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 استفاده کنید.

مثال:

ما جدولهای زیر را داریم:

 

sql-server-sample-database

که از جدولهای orders، order_items و products استفاده خواهیم کرد.

 

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;

نتیجه به صورت زیر خواهد بود:

 

sql-server-create-view-example

بازنویسی 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;


نتیجه به صورت زیر خواهدبود:

 

sql-server-create-or-alter-view-example

 

ایجاد یک 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-server-create-view-with-aggregate-function

در این آموزش، شما یاد گرفتید که چگونه با استفاده از SQL SQL Server CREATE VIEW یک View جدید ایجاد کنید.

 

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس