SQL View क्या हैं?
SQL में, एक दृश्य SQL कथन के परिणाम-सेट पर आधारित एक वर्चुअल तालिका है।
एक दृश्य में वास्तविक तालिका की तरह ही पंक्तियाँ और स्तंभ होते हैं। किसी दृश्य के फ़ील्ड डेटाबेस में एक या अधिक वास्तविक तालिकाओं के फ़ील्ड हैं।
आप SQL स्टेटमेंट और फ़ंक्शंस को एक दृश्य में संलग्न कर सकते हैं और डेटा को ऐसे प्रस्तुत कर सकते हैं जैसे कि यह एक ही तालिका से आ रहा हो।
क्रिएट व्यू स्टेटमेंट के साथ एक व्यू बनाया जाता है।
महत्वपूर्ण नोट:
एक दृश्य हमेशा डुप्लिकेट डेटा प्रदर्शित करता है! जब भी कोई उपयोगकर्ता दृश्य मांगता है तो डेटाबेस इंजन उसे दोबारा बनाता है।
व्यू सिंटैक्स बनाएं
मूल निर्माण दृश्य सिंटैक्स:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
नोट:
यदि दृश्य नामों में रिक्त स्थान हैं, तो उन्हें वर्गाकार कोष्ठक [ ] या उद्धरण चिह्न " " में संलग्न करें।
SQL क्रिएट व्यू उदाहरण
उदाहरण 1: ब्राज़ील के ग्राहक
निम्नलिखित SQL एक दृश्य बनाता है जो ब्राज़ील के सभी ग्राहकों को प्रदर्शित करता है:
रचना देखें:
CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = 'Brazil';
उपरोक्त दृश्य को इस प्रकार लागू किया जा सकता है:
एक क्वेरी जो दृश्य से पूछती है:
SELECT * FROM [Brazil Customers];
उदाहरण 2: औसत से अधिक कीमत वाले उत्पाद
निम्नलिखित SQL एक दृश्य बनाता है जो "उत्पाद" तालिका में औसत मूल्य से अधिक कीमत वाले प्रत्येक उत्पाद का चयन करता है:
रचना देखें:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
उपरोक्त दृश्य को इस प्रकार लागू किया जा सकता है:
एक क्वेरी जो दृश्य से पूछती है:
SELECT * FROM [Products Above Average Price];
SQL में एक दृश्य अद्यतन कर रहा है
किसी दृश्य को बनाएं या बदलें दृश्य कथन के साथ अद्यतन किया जा सकता है।
दृश्य सिंटैक्स बनाएं या बदलें:
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
निम्नलिखित SQL "ब्राज़ील ग्राहक" दृश्य में "शहर" कॉलम जोड़ता है:
दृश्य अद्यतन कर रहा है:
CREATE OR REPLACE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';
SQL में एक दृश्य हटाना
ड्रॉप व्यू स्टेटमेंट के साथ एक दृश्य हटा दिया जाता है।
ड्रॉप व्यू सिंटैक्स:
DROP VIEW view_name;
निम्न SQL "ब्राज़ील ग्राहक" दृश्य को हटा देता है:
एक दृश्य हटाना:
DROP VIEW [Brazil Customers];
दृश्यों के लाभ
सुरक्षा
- वास्तविक तालिका संरचना छुपाता है
- संवेदनशील डेटा तक पहुंच प्रतिबंधित करें
- उपयोगकर्ताओं को केवल विशिष्ट कॉलम देखने की अनुमति देता है
- डेटा सुरक्षा में सुधार करता है
प्रदर्शन
- जटिल प्रश्नों को सरल बनाता है
- बार-बार क्वेरी लिखने से रोकता है
- डेटा सारांश प्रदान करता है
- एप्लिकेशन कोडिंग को सरल बनाता है
प्रशासन
- डेटा स्वतंत्रता प्रदान करता है
- तालिका कॉन्फ़िगरेशन परिवर्तन को सुविधाजनक बनाता है
- व्यावसायिक नियमों को केन्द्रीकृत करता है
- रखरखाव को आसान बनाता है
उदाहरण देखें
सक्रिय उपयोगकर्ता
एक दृश्य जो केवल सक्रिय उपयोगकर्ताओं को दिखाता है
CREATE VIEW ActiveUsers AS
SELECT UserID, Username, Email, LastLogin
FROM Users
WHERE IsActive = 1
AND LastLogin >= DATE_SUB(NOW(), INTERVAL 30 DAY);
मासिक विक्रय
मासिक बिक्री सारांश दृश्य
CREATE VIEW MonthlySales AS
SELECT
YEAR(OrderDate) AS Year,
MONTH(OrderDate) AS Month,
COUNT(*) AS TotalOrders,
SUM(TotalAmount) AS TotalSales
FROM Orders
GROUP BY YEAR(OrderDate), MONTH(OrderDate);
उत्पाद प्रदर्शन
उत्पाद बिक्री आँकड़े
CREATE VIEW ProductPerformance AS
SELECT
p.ProductID,
p.ProductName,
COUNT(o.OrderID) AS TimesOrdered,
SUM(od.Quantity) AS TotalQuantity,
SUM(od.Quantity * od.UnitPrice) AS TotalRevenue
FROM Products p
LEFT JOIN OrderDetails od ON p.ProductID = od.ProductID
LEFT JOIN Orders o ON od.OrderID = o.OrderID
GROUP BY p.ProductID, p.ProductName;
प्रकार देखें
सरल दृश्य
- एक तालिका से डेटा
- बुनियादी कहाँ, समूह अनुसार, क्रमानुसार
- तेज़ प्रदर्शन
- नवीकरणीय (कुछ प्रतिबंध लागू)
जटिल दृश्य
- एकाधिक तालिकाओं से डेटा
- JOINs, subqueries, aggregate functions
- धीमा प्रदर्शन
- सामान्यतः गैर-नवीकरणीय
भौतिक दृश्य
- अनुमानित परिणाम
- तेज़ क्वेरी प्रदर्शन
- स्वतः नवीनीकरण नहीं होता
- अतिरिक्त भंडारण स्थान की आवश्यकता है