درس دوازدهم – کار باView  در SQL

Viewها یک سری از جداول هستند که می‌توانند به‌صورت دقیق‌تر و بهتر نتیجه‌ی دستور SELECT را در خروجی نمایش دهند، البته به این موضوع توجه کنید که VIEW شامل جداول مجازی هستند و ربطی به جدول اصلی در دیتابیس ندارند و به‌ این دلیل هیچ چیزی را در خودشان ذخیره نمی‌کنند، یعنی تنها برای نمایش خروجی دستور SELECT است و اگر هم حذف شوند، تأثیری روی جداول اصلی ندارند.

برای شروع کار نیاز به جداولی داریم تا بتوانیم View را بر روی آنها پیاده‌سازی کنیم؛ برای این کار دستور زیر را اجرا کنید:

 

CREATE TABLE Employees
(EmployeeID    INT NOT NULL,
FirstName     NVARCHAR(50) NOT NULL,
MiddleName    NVARCHAR(50) NULL,
LastName      NVARCHAR(75) NOT NULL,
Title         NVARCHAR(100) NULL,
HireDate      DATETIME NOT NULL,
VacationHours SMALLINT NOT NULL,
Salary        DECIMAL(19, 4) NOT NULL
);
GO
CREATE TABLE Products
(ProductID INT NOT NULL,
Name      NVARCHAR(255) NOT NULL,
Price     DECIMAL(19, 4) NOT NULL
);
GO
CREATE TABLE Sales
(SalesID    UNIQUEIDENTIFIER NOT NULL,
ProductID  INT NOT NULL,
EmployeeID INT NOT NULL,
Quantity   SMALLINT NOT NULL,
SaleDate   DATETIME NOT NULL
);
GO

با اجرای دستورات بالا، سه جدول با نام‌های Employees, Products, Sales ایجاد می‌شود که در شکل ۸۳-۳ این موضوع را مشاهده می‌کنید.

شکل ۸۳-۳ ایجاد View

برای ایجاد View از دو روش می‌توانیم استفاده کنیم؛ می‌توانیم از دستورات T-SQL استفاده کنیم، یا اینکه از Managemennt Studio استفاده کنیم.

برای ایجاد نمای جدید می‌توانیم از دستورات T-SQL زیر استفاده کنیم:

USE B22;
GO
CREATE VIEW ViewEmployeesWithSales
AS
    SELECT DISTINCT
           Employees.*
    FROM Employees
         JOIN Sales ON Employees.EmployeeID = Sales.EmployeeID;
GO

این یک نمای (view) ساده با یک عبارت ساده SELECT است که لیستی از کارمندان فروش را در جدول Employess و Sales برمی‌گرداند؛ در حقیقت، شما همیشه می‌توانید قبل از ایجاد نمایش‌، تنها با اجرای قسمتSELECT ، عبارتCREATE VIEW SQL ، عبارت جستجو را آزمایش کنید و بهتر است ببینید آیا پرسشی چیزی را برمی‌گرداند؛ برای اینکه یک قسمت از دستور در خروجی اجرا کنید باید به‌مانند شکل ۸۴-۳ دستور مورد نظر را انتخاب کنید و بعد، کلیک راست و گزینه‌ی Execute را انتخاب کنید که نتیجه‌ی آن مشخص خواهد شد؛ از آنجایی که جداول مقدار ندارند، یک جدول خالی را در شکل ۸۴-۳ مشاهده می‌کنید.

شکل ۸۴-۳ خروجی دستور

برای اینکه مقداری را در جداول وارد کنیم، می‌توانیم از دستورات زیر استفاده کنیم:

USE B22;
GO
INSERT INTO Employees VALUES (1,'Ken', NULL, 'Farshid', 'IT Manager', '1/1/2016', 2080, 45000);
INSERT INTO Employees VALUES (2,'Janice', NULL, 'AZADEH', 'Sales Representative', '12/11/2016', 2080, 45000);
INSERT INTO Products VALUES (1,'Long-Sleeve Logo Jersey, S', 12.99);
INSERT INTO Products VALUES (2, 'Long-Sleeve Logo Jersey, M', 14.99);
INSERT INTO Products VALUES (3, 'Long-Sleeve Logo Jersey, L', 16.99);
INSERT INTO Products VALUES (4, 'Long-Sleeve Logo Jersey, XL', 18.99);
INSERT INTO Sales VALUES (NEWID(), 1, 1, 4, '04/15/2016');
INSERT INTO Sales VALUES (NEWID(), 2, 1, 1, '02/01/2016');
INSERT INTO Sales VALUES (NEWID(), 3, 1, 2, '03/12/2016');
INSERT INTO Sales VALUES (NEWID(), 2, 2, 2, '03/18/2016');
INSERT INTO Sales VALUES (NEWID(), 3, 2, 1, '04/16/2016');
INSERT INTO Sales VALUES (NEWID(), 4, ۲, ۲, '۰۴/۲۳/۲۰۱۶');

در خط اول دستور باید نام دیتابیسی که جداول در آن قرار دارند را وارد کنید، یعنی به‌جای B22، نام دیتابیس خود را بنویسید.

در ادامه برای تست موضوع باید دوباره قسمت SELECT را به‌مانند شکل ۸۵-۳ انتخاب کنید و دستور Execute را اجرا کنید؛ توجه داشته باشید در دستورات از DISTINCT برای جلوگیری از نمایش سوابق تکراری در خروجی استفاده کردیم.

شکل ۸۵-۳ خروجی دستور

بعد از اینکه View را ایجاد کردید، می‌توانید به‌مانند شکل ۸۶-۳ از سمت چپ وارد قسمت Views شوید و نمای مورد نظر که ایجاد کردید را مشاهده کنید؛ با دستور زیر می‌توانید خروجی این View را مشاهده کنید:

SELECT * FROM [dbo].[ViewEmployeesWithSales];

توجه داشته باشید به ‌جای اینکه در دستور بالا، نام View را بنویسید، می‌توانید View مورد نظر را بکشید و در دستور رها کنید تا خودش نوشته شود.

شکل ۸۶-۳ خروجی View

در ادامه برای اینکه ارتباط بین جداول را در View مورد نظر به‌صورت گرافیکی مشاهده کنید باید به‌مانند شکل ۸۷-۳ بر روی View مورد نظر کلیک راست کنید و گزینه‌ی Design را انتخاب کنید؛ توجه داشته باشید که شما می‌توانستید به‌جای وارد کردن دستورات از همین قسمت با انتخاب New View، نمای مورد نظر خود را انتخاب کنید.

شکل ۸۷-۳ بررسی دستور Design

همان ‌طور که در شکل ۸۸-۳ مشاهده می‌کنید، این صفحه از چهار قسمت تشکیل شده است؛ در قسمت شماره‌ی نمای کلی، دو جدول را مشاهده می‌کنید؛ در قسمت شماره‌ی دو طبق ستون‌هایی که در دستور قبلی وارد کردیم، ستون‌های مورد نظر تیک خورده شدند؛ در قسمت سوم دستور خروجی SELECT را که قبلاً وارد کردیم را مشاهده می‌کنید؛ کلاً در قسمت شماره‌ی یک، اگر هر یک از ستون‌ها را انتخاب کنید در قسمت شماره‌ی سه دستوارت تغییر خواهد کرد؛ در قسمت شماره‌ی چهار نیز خروجی دستور شماره‌ی سوم را مشاهده می‌کنید، البته باید دستور شماره‌ی سوم را انتخاب و کلیک راست کنید و گزینه‌ی Execute را انتخاب کنید؛ توجه داشته باشید در قسمت شماره‌ی یک، پیوند بین جدول اول و دوم ایجاد شده است که آن نیز به‌ دلیل دستور dbo.Employees.EmployeeID = dbo.Sales.EmployeeID که در قسمت شماره‌ی سوم وارد کردید، است؛ به ‌جای = اگر <> قرار دهید شکل آن در قسمت شماره‌ی یک تغییر خواهد کرد.

شکل ۸۸-۳ ایجاد VIEW

اگر بخواهید از طریق محیط گرافیکی، View ایجاد کنید باید به‌مانند شکل ۸۹-۳ بر روی View کلیک راست کنید و گزینه‌ی New View را انتخاب کنید.

شکل ۸۹ -۳  ایجاد View

بعد از ورود، شکل ۹۰- ۳ ظاهر خواهد شد که باید انتخاب کنید که از چه جداولی می‌خواهید خروجی بگیرید؛ در این قسمت، هر سه جدول را انتخاب می‌کنیم، البته می‌توانیم از تب View نیز استفاده کنیم.

شکل ۹۰ – ۳ ایجاد view

در شکل ۹۱ – ۳ و در قسمت اول می‌توانید ستون‌هایی که قرار است در خروجی چاپ شود را انتخاب کنید؛ به این نکته توجه کنید که انتخاب باید به ترتیب باشد، چون هر انتخابی که در جداول انجام می‌دهید، در قسمت دوم ردیف آن مشخص می‎شود و در قسمت سوم نیز دستورات آن به‌صورت اتوماتیک نوشته خواهد شد؛ کلاً View همان دستور SELECT است که قبلاً با هم‌ روی آن کار کردیم.

شکل ۹۱ – ۳ ایجاد View

برای اینکه بتوانیم شرط در این دستورات قرار دهیم، می‌توانیم به‌مانند شکل ۹۲ – ۳ در قسمت دوم و در ستون فیلتر، شرط خود را وارد کنیم که در اینجا >1 وارد شده است، یعنی اینکه در خروجی کار سطر‌هایی که EmployeeID آنها بزرگ‌تر از ۱ باشد در خروجی چاپ خواهد شد؛ توجه کنید زمانی که در قسمت فیلتر، شرط مورد نظر خود را وارد می­کنید، بعد از خروج از آن، قسمت دستور آن در قسمت شماره‌ی سوم نوشته می‌شود که در شکل ۹۲ -۳ مشخص شده است.

برای اینکه دستوری که ایجاد شده را اجرا کنیم باید آن را اجرا کنیم و کلیک راست کنیم و گزینه‌ی Execute SQL را انتخاب کنیم تا در قسمت چهارم، خروجی مشخص شود که همان‌ طور که گفتیم خروجی برای EmployeeIDهایی که بزرگ‌تر از دو باشد، مشخص شده است.

در ستون‌های Sort نیز می‌توانید مشخص کنید که خروجی به چه صورت تنظیم شود.

شکل ۹۲ – ۳ اجرای دستور

 

 

کتاب‌های جدید

کتاب آموزشی CCNP ENARSI 300-410
زبان فارسی
۱۲۲۲ صفحه
نسخه PDF

کتاب آموزشی CCNA 200-301
زبان فارسی
۷۱۵ صفحه
نسخه PDF

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Scroll to Top