Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2016:एक दृश्य बनाएँ

SQL सर्वर में, आप दृश्यों के रूप में क्वेरी कर सकते हैं। दृश्य सुरक्षा, उपयोगिता और सुविधा सहित कई कारणों से फायदेमंद होते हैं।

SQL सर्वर में, एक दृश्य एक वर्चुअल टेबल है जिसकी सामग्री को एक क्वेरी द्वारा परिभाषित किया जाता है। यह मूल रूप से एक पूर्व-लिखित क्वेरी है जो डेटाबेस पर संग्रहीत होती है।

एक दृश्य में SELECT होता है कथन, और जब आप दृश्य के विरुद्ध कोई क्वेरी चलाते हैं, तो आप इसके परिणाम वैसे ही देखते हैं जैसे आप तालिका खोलते समय देखते हैं। दृश्यों को वर्चुअल टेबल के रूप में संदर्भित किया जाता है क्योंकि वे कई तालिकाओं के साथ-साथ कुल डेटा से डेटा खींच सकते हैं, और इसे एक ही तालिका के रूप में प्रस्तुत कर सकते हैं।

दृश्यों के लाभ

एक दृश्य तब उपयोगी हो सकता है जब एक्सेस के विभिन्न स्तरों वाले कई उपयोगकर्ता हों, जिन्हें सभी को डेटाबेस में डेटा के हिस्से देखने की आवश्यकता होती है (लेकिन जरूरी नहीं कि सभी डेटा)। दृश्य निम्न कार्य कर सकते हैं:

  • तालिका में विशिष्ट पंक्तियों तक पहुंच प्रतिबंधित करें
  • तालिका में विशिष्ट कॉलम तक पहुंच प्रतिबंधित करें
  • कई तालिकाओं के स्तंभों को मिलाएं और उन्हें ऐसे प्रस्तुत करें जैसे वे एक ही तालिका का हिस्सा हों
  • समग्र जानकारी प्रस्तुत करें (जैसे COUNT() . के परिणाम समारोह)

एक दृश्य कैसे बनाएं

आप CREATE VIEW . का उपयोग करके एक दृश्य बनाते हैं स्टेटमेंट, उसके बाद SELECT बयान।

CREATE VIEW ViewName 
AS
SELECT ...

अब हम अपनी पिछली क्वेरी से एक दृश्य बनाएंगे।

  1. दृश्य डिज़ाइन करें

    हमारे पिछले उदाहरण से क्वेरी लें, और इसके पहले नवीनतम एल्बम AS देखें के साथ उपसर्ग करें ।

    ORDER BY . भी हटा दें खंड, क्योंकि विचार इस खंड का समर्थन नहीं करते (जब तक कि TOP , OFFSET या FOR XML भी निर्दिष्ट है)।

    स्टेटमेंट टर्मिनेटर के रूप में स्टेटमेंट के अंत में एक अर्धविराम भी जोड़ें (उस पर और अधिक)।

    नमूना कोड

    ORDER BY . के साथ हमारे उदाहरण का कोड नीचे दिया गया है खंड हटा दिया गया है, और एक अर्धविराम एक बयान टर्मिनेटर के रूप में जोड़ा गया है।

    मैंने इसे और अधिक पठनीय बनाने के लिए इसे थोड़ा सा पुन:स्वरूपित भी किया है)।

    CREATE VIEW RecentAlbums 
    AS
    SELECT  Albums.ReleaseDate, 
            Albums.AlbumName, 
            Genres.Genre, 
            Artists.ArtistName
    FROM Albums 
    INNER JOIN
            Artists ON 
            Albums.ArtistId = Artists.ArtistId 
            INNER JOIN
                Genres ON 
                Albums.GenreId = Genres.GenreId
    WHERE   (Albums.ReleaseDate > DATEADD(year, - 10, GETDATE()));

    इस उदाहरण में मैंने दृश्य के अंत में एक अर्धविराम जोड़ा है। क्वेरी डिज़ाइनर ने इसे शामिल नहीं किया, लेकिन इसे शामिल करना अच्छा अभ्यास है।

    अर्धविराम ANSI SQL-92 मानक का हिस्सा है। यह एक स्टेटमेंट टर्मिनेटर कैरेक्टर है।

    साथ ही, Microsoft ने घोषणा की है कि गैर-अर्धविराम समाप्त होने वाले Transact-SQL कथन SQL सर्वर 2016 में बहिष्कृत हैं, और वे भविष्य के संस्करण में समर्थित नहीं होंगे (SQL सर्वर ने ऐतिहासिक रूप से GO का उपयोग किया है। कीवर्ड अर्धविराम के बजाय स्टेटमेंट टर्मिनेटर के रूप में)।

  2. दृश्य निष्पादित करें

    अब दृश्य को वैसे ही निष्पादित करें जैसे आप किसी अन्य क्वेरी को निष्पादित करेंगे।

    निष्पादित करें . क्लिक करें टूलबार पर।

    अब आप ऑब्जेक्ट एक्सप्लोरर में दृश्य पर नेविगेट कर सकते हैं। इसका विस्तार करें और आप कॉलम और उनके डेटा प्रकार और गुण देखेंगे - जैसे कि यह एक तालिका थी।

  3. दृश्य को क्वेरी करें

    अब जब दृश्य बन गया है, तो आप SELECT . चलाकर दृश्य को क्वेरी कर सकते हैं इसके खिलाफ बयान।

    तो आप हमारे नए बनाए गए दृश्य को SELECT * FROM RecentAlbums;

  4. दृश्य फ़िल्टर करें

    दृश्यों के बारे में एक अच्छी बात यह है कि आप उनके खिलाफ अपने स्वयं के फ़िल्टरिंग मानदंड लागू कर सकते हैं - परिणामों को और फ़िल्टर करना।

    उदाहरण के लिए, आप जोड़ सकते हैं WHERE Genre = 'Pop' , ताकि दृश्य केवल पॉप . लौटाए पिछले 10 वर्षों के एल्बम।

दृश्य बदलें

आप ALTER VIEW . का उपयोग करके अपने विचार को संशोधित कर सकते हैं CREATE VIEW के बजाय स्टेटमेंट बयान।

  1. बदले हुए दृश्य को डिज़ाइन करें

    यहां हम केवल 10 के बजाय पिछले 20 वर्षों में एल्बम वापस करने के लिए अपना दृष्टिकोण संशोधित करेंगे।

    यह एक बहुत पुराना स्कूल संग्रह है, इसलिए पिछले 20 वर्षों में जारी किए गए किसी भी एल्बम को "हालिया" के रूप में वर्गीकृत किया गया है :)

    हम एक और कॉलम भी लौटाएंगे:Artists.ActiveFrom

    नमूना कोड

    यहां वह कोड है जिसका हम उदाहरण के लिए उपयोग करते हैं:

    ALTER VIEW RecentAlbums 
    AS
    SELECT  Albums.ReleaseDate, 
            Albums.AlbumName, 
            Genres.Genre, 
            Artists.ArtistName,
            Artists.ActiveFrom
    FROM Albums 
    INNER JOIN
            Artists ON 
            Albums.ArtistId = Artists.ArtistId 
            INNER JOIN
                Genres ON 
                Albums.GenreId = Genres.GenreId
    WHERE   (Albums.ReleaseDate > DATEADD(year, - 20, GETDATE()));
  2. दृश्य को क्वेरी करें

    अब, दृश्य को क्वेरी करने से 20 साल के एल्बम वापस आ जाएंगे। यह उस तारीख को भी प्रदर्शित करेगा जिससे कलाकार सक्रिय था।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल क्वेरी दो तालिकाओं के बीच अंतर वापस करने के लिए

  2. मौजूदा SQL सर्वर एजेंट जॉब (T-SQL) में जॉब स्टेप जोड़ें

  3. इंडेक्स में कॉलम का क्रम कितना महत्वपूर्ण है?

  4. SQL सर्वर (T-SQL) में संपीड़न के साथ एक तालिका बनाएँ

  5. Oracle से जुड़े SQL सर्वर से SQL क्वेरी लिखते समय मैं दिनांक शाब्दिक कैसे निर्दिष्ट करूं?