سبد (0)

تبلیغات

کاربرد View در SQL

View یک جدول مجازی است.

این فصل نشان می دهد که چگونه یک View را ایجاد، حذف و یا تغییر دهیم.


دستور CREATE VIEW

Wiki

در SQL یک View یک جدول مجازی است که نتیجه حاصل از عبارات و دستورات SQL می باشد.

یک view شامل سطر و ستونهایی دقیقا شبیه یک جدول واقعی است. فیلدها در یک View فیلدهایی هستند که از یک یا چند جدول واقعی در پایگاه داده گرفته شده اند.

شما می توانید توابع موجود در SQL، عبارت WHERE و JOIN را به یک View اضافه کنید و داده های نتیجه را به همان صورت که داده ها در یک جدول آورده می شوند، نشان دهید.

فرم CREATE VIEW:

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

توجه: یک View همیشه داده های به روز شده (up-to-date) را نشان می دهد! موتور یک پایگاه داده، داده های یک View را هر زمانی که View فرا خوانی می شود ، به روز می کند.


مثال:

Wiki

اگر پایگاه داده Northwind را دارید شما می توانید چندین view را که به طور پیش فرض روی آن نصب شده است را ببینید.

View با نام Current Product List، لیست محصولات جاری (محصولاتی که تولید آنها متوقف نشده است) را از جدول Products نشان می دهد. این view توسط دستور زیر ایجاد می شود.

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

می توانیم View فوق را به صورت زیر فراخوانی کنیم:

SELECT * FROM [Current Product List]

مثال دیگری از View در پایگاه داده Northwind، تمام محصولاتی را که در جدول Products قیمت واحدشان بزرگتر از میانگین قیمت هاست را بر می گرداند:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

می توانیم view فوق را به صورت زیر فراخوانی کنیم:

SELECT * FROM [Products Above Average Price]

مثال دیگری از View در پایگاه داده Northwind، کل فروش را برای هر طبقه از محصولات در سال 1997 محاسبه می کند. توجه کنید که این view داده هایش را از view ی دیگری که Product Sales for 1997 نامیده می شود می گیرد.

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

می توانیم view فوق را به صورت زیر اجرا کنیم:

SELECT * FROM [Category Sales For 1997]

همچنین می توان یک شرط روی Query فوق تعریف کرد. می خواهیم فروش کل محصولاتی که در گروه Beverages هستند را ببینیم.

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

تغییر (به روز رسانی) یک View

Wiki

می توانیم یک View را به وسیله دستور زیر به روز رسانی کنیم:

فرم دستور CREATE OR REPLACE VIEW:

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

می خواهیم ستون Category را به Current Product List اضافه کنیم. به وسیله دستور زیر view را تغییر می دهیم:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

حذف یک View

Wiki

می توانید یک view را به وسیله فرمان DROP VIEW حذف کنیم.

فرم DROP VIEW:

DROP VIEW view_name

برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.

دیدگاه‌ها  

+4 # امیرکیان 1395-04-20 21:24
میتوان نتیجه گرفت که یک view همانند یک تابع در برنامه نویسی است
منظورم این است که شما یک result_set را در یک ویو ذخیره میکنید و هر موقع که نیاز به این view داشتید آنرا فراخوانی میکنید.

ولی نمیدانم حسن این کار نسبت به نوشتن دوباره دستور سکلت مورد نظر چیست؟

ایمیل های سایت در ضمن برای من نمیاید در صورت پاسخ دادن از کجا باید مطلع بشوم.؟!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # مهرداد صلاحی 1395-04-22 20:06
با سلام.
VIEW در واقع جهت نمایش کوئری به کار می‌ره. در VIEW می‌تونید چند SELECT رو با هم به کار ببرید و در واقع در اون می‌تونید نحوه‌ی نمایش رو تعیین کنید.
همونطور که از اسمش پیداست جنبه‌ی نمایشی داره و کاربردش با SELECT فرق داره.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # http://dehkadeco.ir 1395-03-14 14:56
سلام
بروزرسانی view تو sql Server با دستور Alter View انجام میشه:
ALTER VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # هیربد بهادری 1394-11-09 11:37
دراین مثال چرا باید Discontinued=No قرار بدیدم؟این کار اجباریه! CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # مهرداد صلاحی 1394-11-09 21:09
با سلام.
اجبار نیست! اگر دقت کنید این عبارت در قسمت WHERE نوشته شده است. در واقع شرط کوئری این هست که Discontinued برابر با مقدار No باشه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # هیربد بهادری 1394-11-09 11:18
سلام
چرا در این مثال تابع AVG که یه تابع Agrregate هست برخلاف قوانین توابع Agrregate همراه با where اومده؟ و از Having استفاه نشده؟CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELE CT AVG(UnitPrice) FROM Products)
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # مهرداد صلاحی 1394-11-09 21:12
با سلام و احترام.
WHERE شرطی است که روی تک‌تک رکوردها اعمال میشه، ولی HAVING شرطی هست که روی مجموعه‌‌ی رکوردها اعمال میشه. این دو با هم فرق دارند.
هیچ مشکلی هم نداره که با هم تو یه کوئری آورده بشن، چون تداخلی ایجاد نمی‌کنن. گرامر یک کوئری در زیر آمده است:
SELECT *
FROM table_name
WHERE condition
GROUP BY fields_name
HAVING BY condition_for_group_by
ORDER BY sort_field_name
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # فاطمه 1394-09-30 14:30
سلام و خدا قوت و تشکر بابت سایت عالیتون
برای اینکه یک ستون به view بتوانیم insert کنیم باید اول view قبلی رو drop کنیم بعد دوباره view بسازیم یا راه دیگه ای هم هست؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-09-30 22:45
با سلام و تشکر
اگر دقت کنید در هنگام ساخت View باید یک پرس و جو درج کنید. در این پرس و جو می‌توانید ستون کم یا زیاد کنید. منظور از ستون در واقع نام فیلدهایی هست که بعد از عبارت SELECT می‌آید.
view در واقع نمایی هست که خود شما برای پرس و جوهاتون می‌سازید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # فاطمه 1394-09-30 23:12
بله درسته.
ولی میخواستم بدونم بعد اینکه یه view ساختیم میشه فیلدی رو بهش insert کرد ؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
-1 # امیدح 1395-08-05 02:02
شما منظورتون اضافه کردن یک فیلد به view هست که بالا توضیح دادن با دستور بروزرسانی view این کار رو بکنید
اسم ستونهای قبلی که تو view هست و ستون جدید رو وارد کنید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
-2 # مهرداد صلاحی 1394-10-02 13:47
شما باید اون فیلد رو در قسمت SELECT بیارید.

عملیات insert, update & delete فقط در جدول صورت میگیره. view فقط برای نمایش هست.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی SQL

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی