mysql create view tutorial with code examples
यह MySQL Create View Tutorial विभिन्न क्लॉज़ और उदाहरणों का उपयोग करके MySQL में एक दृश्य बनाने के बारे में बताता है। इसमें दृश्य ड्रॉप और प्रबंधित करने का तरीका भी शामिल है:
MySQL में, दृश्य एक आभासी तालिका है जो हमें तालिका को अन्य कार्यक्रमों द्वारा एक्सेस किए जाने से तालिका को अवरुद्ध किए बिना डेटा पर एक नज़र रखने में सक्षम बनाता है और इस तरह गतिरोध की स्थिति से बचने में हमारी मदद करता है।
डेटा रखने वाली एक या एक से अधिक तालिका के शीर्ष पर दृश्य बनाए जाते हैं। आगे बढ़ने से पहले, कृपया ध्यान दें, कि हम उपयोग कर रहे हैं MySQL संस्करण 8.0 ।
आप क्या सीखेंगे:
MySQL बनाएँ देखें
वाक्य - विन्यास:
CREATE (REPLACE) VIEW view_name AS SELECT col1, col2, ... FROM table_name WHERE condition;
सिंटैक्स स्पष्टीकरण:
- सिंटैक्स कीवर्ड 'क्रिएट व्यू' से शुरू होता है, जिससे MySQL सर्वर को गतिविधि के प्रकार के बारे में सूचित किया जाता है। यह एक अनिवार्य कीवर्ड है और इसे छोड़ा नहीं जा सकता है।
- REPLACE एक वैकल्पिक पैरामीटर है। हम इसका उपयोग तब कर सकते हैं जब हम मौजूदा दृश्य पर काम कर रहे हों।
- इसके बाद दृश्य का नाम आता है। यह तालिकाओं और स्तंभों के नामों की तरह ही अद्वितीय होना चाहिए।
- फिर, तालिका से कॉलम का चयन करें। एक दृश्य में अंतर्निहित तालिका के सभी कॉलम या केवल कुछ चयनित हो सकते हैं।
- इसके बाद तालिका का नाम आता है जिस पर दृश्य को प्रदर्शित किया जाना है। यह अनिवार्य है और इसे छोड़ा नहीं जा सकता है।
- उसके बाद WHERE की स्थिति आती है, जो लक्षित पंक्तियों की संख्या को सीमित या फ़िल्टर करता है, जिस पर CREATE VIEW कार्रवाई लागू करनी होती है। जहां भी एक कीवर्ड है, लेकिन एक वैकल्पिक है।
हालांकि, क्लॉज महत्वपूर्ण है। यदि उल्लेख नहीं किया गया है, या यदि स्थिति सही ढंग से सेट नहीं की गई है, तो या तो पूरी तालिका या गैर-आवश्यक पंक्तियाँ दृश्य का एक हिस्सा होंगी।
MySQL बनाएँ उदाहरण देखें
नीचे दिए गए एक नमूना तालिका MYSQL में बनाया गया है।
स्कीमा का नाम: शांत
तालिका नाम: कर्मचारियों
स्तंभ नाम:
एम्पैनम : कर्मचारी संख्या के लिए पूर्णांक मान जोड़ता है।
उपनाम : कर्मचारी के अंतिम नाम के लिए वार्चर मान रखता है।
संतोष : कर्मचारी के पहले नाम के लिए वर्चर्स मान रखता है।
ईमेल : कर्मचारी की ईमेल आईडी के लिए वैरिका मान को धारण करता है।
विभाग : डिपार्टमेंट आईडी के लिए वर्कशॉप रखता है जो एक कर्मचारी का है।
वेतन : प्रत्येक कर्मचारी के वेतन का दशमलव मान बढ़ाता है।
आरंभ करने की तिथि : कर्मचारी के शामिल होने की तिथि के लिए दिनांक मान रखता है।
स्कीमा का नाम: शांत
तालिका नाम: विभागों
स्तंभ नाम:
विभाग; एक संगठन के भीतर विभाग की आईडी के लिए वॉर्डरच।
Faridabad: उस शहर का नाम धारण करता है जिसमें विभाग काम करते हैं।
देश: शहर के अनुरूप देश का नाम रखता है।
बक्शीश बोनस का प्रतिशत मूल्य प्राप्त करता है।
MySQL सरल बनाएँ एक दृश्य
अब उपरोक्त तालिका के शीर्ष पर एक दृश्य बनाएं।
नीचे दिया गया प्रश्न है।
सेलेक्ट क्लॉज विशिष्ट कॉलम नामों के साथ हो सकता है या हम सभी कॉलम प्राप्त करने के लिए '*' का उपयोग कर सकते हैं। एक बार, हम एक दृश्य बनाते हैं, हम कॉलम को जोड़ या हटा नहीं सकते हैं। यदि हम कॉलम जोड़ना या हटाना चाहते हैं, तो हमें या तो एक नया दृश्य बनाना होगा या इस मौजूदा दृश्य को बदलना होगा।
आउटपुट स्टेटमेंट से पता चलता है कि क्रिएट व्यू SQL स्टेटमेंट्स को सफलतापूर्वक निष्पादित किया गया है। यह भी कहता है कि कोई भी पंक्तियाँ प्रभावित नहीं हुई हैं। इसका तात्पर्य यह है कि जब एक नई पंक्ति बनाई जाती है तो यह अंतर्निहित तालिका में डेटा को प्रभावित नहीं करती है।
अब दृश्य को क्वेरी करें।
प्रश्न:
CREATE VIEW employees_view AS SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ; SELECT empNum, firstName, lastName, email, deptNum, salary, start_date FROM employees_view ;
परिणाम सेट:
एम्पैनम | उपनाम | संतोष | ईमेल | विभाग | वेतन | आरंभ करने की तिथि |
---|---|---|---|---|---|---|
1008 | आंगन | ओलिवर | oliver.bailey@gmail.com | ३ | 24494.4 | 0001-01-01 |
1001 | एंड्रयूज | जैक | ja@gmail.com | एक | 3182.7 | 0001-01-01 |
1002 | Schwatz | माइक | ms@gmail.com | एक | 5304.5 है | 0001-01-01 |
1003 | लैंग्ले | मार्गरेट | margaret.langley@gmail.com | दो | 8820 है | 0001-01-01 |
1004 | Harera | सैंड्रा | sh@gmail.com | एक | 10609 है | 0001-01-01 |
1005 है | पढ़ना | पीटर | pl@gmail.com | दो | 14332.5 है | 0001-01-01 |
1006 | कीथ | जेनी | jk@gmail.com | दो | 16537.5 है | 0001-01-01 |
1009 | कप | सताना | hb@gmail.com | ५ | 30645.6 है | 0001-01-01 |
1011 है | हैंक्स | टॉम | th@gmail.com | शून्य | 10100 है | 0001-01-01 |
1012 है | लूथर | मार्टिन | ml@gmail.com | ३ | 13000 है | 0001-01-01 |
1014 है | मुरे | कीथ | km@gmail.com | एक | 25000 | 0001-01-01 |
1015 है | ब्रैनसन | जॉन | jb@gmail.com | दो | 15000 है | 0001-01-01 |
1016 है | मार्टिन | रिचर्ड | rm@gmail.com | ४ | 5000 | 0001-01-01 |
1017 है | जॉनसन | पूर्व संध्या | ej@gmail.com | ३ | 5500 | 2019-11-25 |
1018 है | बॉन्ड | नोलन | nb@gmail.com | दो | 15000 है | 2019-09-13 |
समूह BY और ORDER BY का उपयोग करके देखें
आइए एक परिदृश्य मानें जहां हमें कुल वेतन, विभागवार राशि प्राप्त करने की आवश्यकता है।
नीचे दिया गया प्रश्न है:
हर बार तालिका में इस क्वेरी को चलाने के बजाय, हमें जानकारी की आवश्यकता है, दृश्य को क्वेरी करना बेहतर है क्योंकि यह कम डेटाबेस स्रोतों का उपभोग करेगा।
अब, हमारे दृश्य की सामग्री देखें। हम पाएंगे कि प्रत्येक विभाग अपने कर्मचारियों को वेतन के मामले में कितना भेज रहा है।
प्रश्न:
CREATE VIEW salPerDept AS SELECT deptNum, sum(salary) FROM employees GROUP BY deptNum ORDER BY deptNum desc ; SELECT * FROM employees_view ;
परिणाम सेट:
विभाग | योग (वेतन) | |||||
---|---|---|---|---|---|---|
1006 | कीथ | जेनी | दो | चालट | संयुक्त राज्य अमेरिका | ५ |
५ | 30645.6 है | |||||
४ | 5000 | |||||
३ | 42994.4 | |||||
दो | 69690 है | |||||
एक | 44096.2 | |||||
शून्य | 10100 है |
विभाग में NULL इंगित करता है कि एक कर्मचारी किसी भी विभाग का हिस्सा नहीं है, लेकिन संगठन के पेरोल पर है।
MySQL Create JOIN का उपयोग करके देखें
आइए मान लें कि हम विभाग के बारे में डेटा प्राप्त करना चाहते हैं, यह शहर से बाहर आधारित है, और बोनस जो कि अपने कर्मचारियों को दिया जाता है। हमें हर कर्मचारी के लिए यह जानकारी चाहिए।
इसे प्राप्त करने के लिए, हम विभागों और कर्मचारियों की तालिका से डेटा प्राप्त करने के लिए JOIN कीवर्ड का उपयोग करेंगे।
आइए क्वेरी और उसके आउटपुट पर एक नज़र डालें।
हम यहाँ विभिन्न प्रकार के JOIN का उपयोग कर सकते हैं, जैसे, INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN या FULL OUTER JOIN हमारी आवश्यकता के अनुसार।
प्रश्न:
CREATE VIEW join_view AS SELECT A.empNum, A.lastName, A.firstName, A.deptNum, B.city, B.country, B.bonus FROM employees A INNER JOIN departments B USING (deptNum) ; SELECT * FROM join_view ;
आइए अब आउटपुट को देखने के लिए इस दृश्य पर एक सेलेक्ट क्वेरी को निष्पादित करें:
परिणाम सेट:
एम्पैनम | उपनाम | संतोष | विभाग | Faridabad | देश | बक्शीश |
---|---|---|---|---|---|---|
1001 | एंड्रयूज | जैक | एक | न्यूयॉर्क | संयुक्त राज्य अमेरिका | ३ |
1002 | Schwatz | माइक | एक | न्यूयॉर्क | संयुक्त राज्य अमेरिका | ३ |
1004 | Harera | सैंड्रा | एक | न्यूयॉर्क | संयुक्त राज्य अमेरिका | ३ |
1014 है | मुरे | कीथ | एक | न्यूयॉर्क | संयुक्त राज्य अमेरिका | ३ |
1003 | लैंग्ले | मार्गरेट | दो | चालट | संयुक्त राज्य अमेरिका | ५ |
1005 है | पढ़ना | पीटर | दो | चालट | संयुक्त राज्य अमेरिका | ५ |
1015 है | ब्रैनसन | जॉन | दो | चालट | संयुक्त राज्य अमेरिका | ५ |
1018 है | बॉन्ड | नोलन | दो | चालट | संयुक्त राज्य अमेरिका | ५ |
1008 | आंगन | ओलिवर | ३ | शिकागो | संयुक्त राज्य अमेरिका | । |
1012 है | लूथर | मार्टिन | ३ | शिकागो | संयुक्त राज्य अमेरिका | । |
1017 है | जॉनसन | पूर्व संध्या | ३ | शिकागो | संयुक्त राज्य अमेरिका | । |
1016 है | मार्टिन | रिचर्ड | ४ | लंडन | इंगलैंड | १० |
1009 | कप | सताना | ५ | बर्लिन | जर्मनी | १३ |
सबक्वेरी का उपयोग करके देखें
इस तरह के व्यू स्टेटमेंट में, हम एक कॉलम के मूल्य को लाने की कोशिश करते हैं, जहां क्लॉज एक उप-वर्ग के आउटपुट पर आधारित होता है। कहें, हमें उन सभी कर्मचारियों को खोजने की जरूरत है, जिनका वेतन संगठन के औसत वेतन से अधिक है।
आइए देखें क्वेरी:
प्रश्न:
CREATE VIEW avgSal_view AS SELECT empNum, lastName, firstName, salary FROM employees WHERE salary > ( SELECT avg(salary) FROM employees ) ; SELECT * FROM avgSal_view ;
परिणाम सेट:
एम्पैनम | उपनाम | संतोष | वेतन |
---|---|---|---|
1018 है | बॉन्ड | नोलन | 15000 है |
1005 है | पढ़ना | पीटर | 14332.5 है |
1006 | कीथ | जेनी | 16537.5 है |
1008 | आंगन | ओलिवर | 24494.4 |
1009 | कप | सताना | 30645.6 है |
1014 है | मुरे | कीथ | 25000 |
1015 है | ब्रैनसन | जॉन | 15000 है |
दृश्य का प्रबंधन
Alter View या Create / प्रतिस्थापित दृश्य का उपयोग करके हम किसी भी दृश्य को संशोधित / बदल सकते हैं। स्पष्ट रूप से देखे जाने के लिए ALTER VIEW का उपयोग करना मान्य नहीं है।
यदि आपके पास कोई तालिका प्रणाली विशेषाधिकार है या यदि दृश्य आपके स्कीमा में है तो आप ALTER VIEW स्टेटमेंट का उपयोग कर सकते हैं।
सबसे अच्छा मोबाइल फोनों के लिए वेबसाइट क्या हैं
ऑल्टर व्यू क्वेरी का उपयोग करके, हम रन समय से पहले पुनर्संयोजन त्रुटियों का पता लगा सकते हैं। अन्य दृश्य कथन का उपयोग करना उस पर निर्भर अन्य वस्तु / दृश्य को प्रभावित कर सकता है। इसलिए, हम परिवर्तन के बाद किसी दृश्य को फिर से जोड़ सकते हैं।
हम Create दृश्य का उपयोग करके किसी दृश्य को फिर से परिभाषित कर सकते हैं और मौजूदा दृश्य को प्रतिस्थापित दृश्य क्वेरी द्वारा बदल सकते हैं।
उदाहरण के लिए, कर्मचारियों पर विचार करें। यहां हमारे पास कुछ अन्य लोगों के साथ अंतिम नाम और प्रथम नाम स्तंभ हैं। विचार करें कि हमें पहले नाम और अंतिम नाम कॉलम को मिलाने की आवश्यकता है।
नीचे दिए गए ALTER क्वेरी को निष्पादित करने से पहले दृश्य का स्नैपशॉट है।
अब पहले नाम और अंतिम नाम को मर्ज करने के लिए ALTER VIEW क्वेरी निष्पादित करें।
प्रश्न नीचे दिया गया है:
प्रश्न:
ALTER VIEW employees_view AS SELECT empNum, CONCAT(firstName, ' ', lastName) AS empName, email, deptNum, salary, start_date FROM employees ;
आइए अब कर्मचारियों की सामग्री देखें:
यदि आप देख सकते हैं, तो हमारे पास नामों के लिए दो अलग-अलग कॉलम नहीं हैं। इसके बजाय, हमारे पास केवल एक कॉलम है जिसमें पहला नाम और अंतिम नाम दोनों समवर्ती हैं।
और जानें = >> MySQL CONCAT फ़ंक्शन
प्रश्न:
SELECT * FROM employees_view;
परिणाम सेट:
एम्पैनम | नाम | ईमेल | विभाग | वेतन | आरंभ करने की तिथि |
---|---|---|---|---|---|
1008 | ओलिवर बेली | oliver.bailey@gmail.com | ३ | 24494 है | 0001-01-01 |
1001 | जैक एंड्रयूज | ja@gmail.com | एक | 3182.7 | 0001-01-01 |
1002 | माइक श्वात्ज़ | ms@gmail.com | एक | 5304.5 है | 0001-01-01 |
1003 | मार्गरेट लैंगली | margaret.langley@gmail.com | दो | 8820 है | 0001-01-01 |
1004 | Sandra Harera | sh@gmail.com | एक | 10609 है | 0001-01-01 |
1005 है | पीटर ली | pl@gmail.com | दो | 14333 है | 0001-01-01 |
1006 | जेनी कीथ | jk@gmail.com | दो | 16538 है | 0001-01-01 |
1009 | हैरी बीकर | hb@gmail.com | ५ | 30646 है | 0001-01-01 |
1011 है | टौम हैंक्स | th@gmail.com | 10100 है | 0001-01-01 | |
1012 है | मार्टिन लूथर | ml@gmail.com | ३ | 13000 है | 0001-01-01 |
1014 है | कीथ मरे | km@gmail.com | एक | 25000 | 0001-01-01 |
1015 है | जॉन ब्रैनसन | jb@gmail.com | दो | 15000 है | 0001-01-01 |
1016 है | रिचर्ड मार्टिन | rm@gmail.com | ४ | 5000 | 0001-01-01 |
1017 है | ईव जॉनसन | ej@gmail.com | ३ | 5500 | 2019-11-25 |
1018 है | नोलन बॉन्ड | nb@gmail.com | दो | 15000 है | 2019-09-13 |
गिरता हुआ एक दृश्य
हम DROP VIEW स्टेटमेंट का उपयोग करके एक दृश्य छोड़ सकते हैं। यदि कोई DROP किसी विशेषाधिकार का दृश्य है, तो वह DROP VIEW का उपयोग कर सकता है, अन्यथा यह उनके स्कीमा में होना चाहिए। ड्रॉपिंग दृश्य उस अंतर्निहित तालिका को प्रभावित नहीं करता है जिस पर दृश्य बनाया गया है या उस तालिका में डेटा है।
प्रश्न:
DROP VIEW (view name);
अक्सर पूछे जाने वाले प्रश्न
Q # 1) MySQL में विचार कैसे बनाएं?
उत्तर: MySQL में विचार बनाने के कई तरीके हैं। हम नीचे दिखाए गए अनुसार चार अलग-अलग तरीकों से गए हैं।
1. MySQL सरल बनाएँ एक दृश्य
2. MySQL Create Group BY और ORDER BY का उपयोग करके देखें
3. MySQL क्रिएट व्यू जिन्न का उपयोग कर
4. MySQL Create Subquery का उपयोग करके देखें
क्यू # 2) MySQL में एक दृश्य क्या है?
उत्तर: दृश्य तार्किक संरचना में संग्रहीत पूर्व-निष्पादित प्रश्नों की तरह हैं ताकि हमें टेबल पर जटिल प्रश्नों को फिर से निष्पादित नहीं करना पड़े। हम केवल तालिका को प्रभावित किए बिना दृश्य को क्वेरी कर सकते हैं और अपना डेटा प्राप्त कर सकते हैं।
क्यू # 3) क्या हम दृश्य बनाते समय विचारों पर JOIN लागू कर सकते हैं?
उत्तर: हां, JOIN स्टेटमेंट को विचारों पर इस्तेमाल किया जा सकता है, उसी तरह से जिसमें हम इसे टेबल पर इस्तेमाल करते हैं।
क्यू # 4) क्या हम दूसरे दृष्टिकोण से एक दृश्य बना सकते हैं?
उत्तर: दृश्य अनिवार्य रूप से तालिकाओं के रूप में कार्य करते हैं, लेकिन एक आभासी के रूप में। इसलिए, जिस तरह से हम किसी तालिका के शीर्ष पर विचार बनाते हैं, उसी तरह हम दूसरे दृश्य के शीर्ष पर भी विचार बना सकते हैं।
क्यू # 5) हम विचारों का उपयोग क्यों करते हैं?
उत्तर: SQL क्वेरी के परिणामस्वरूप, दृश्य एक तार्किक तालिका बनाता है। हम निम्नलिखित कारणों से विचारों का उपयोग करते हैं।
- दृश्य का उपयोग करके, हम प्रासंगिक कार्यों के लिए पंक्तियों और स्तंभों की दृश्यता (सेलेक्ट एंड व्हेयर क्लॉज का उपयोग करके) को सीमित कर सकते हैं।
- दृश्य का उपयोग तब किया जाता है जब हम पंक्तियों और स्तंभों का उपयोग कर रहे होते हैं (उपयोग करते हुए संघ और (शामिल) कई तालिकाओं से।
- महीन विवरण वाली तालिका में समूह (पंक्तियों का उपयोग करके) को एकत्र करने की अधिक विशिष्ट प्रस्तुति प्राप्त करना।
- दृश्य का उपयोग या तो स्तंभ का नाम बदलने या डिकोड करने के दौरान किया जाता है (AS का उपयोग करके) या पंक्तियों (JOIN, IF, CASE या Oracle के DECODE का उपयोग करके)।
- सुरक्षा सेटिंग्स के साथ उपरोक्त में से किसी को भी कंघी करके, हम जांच कर सकते हैं कि क्या उपयोगकर्ता के पास केवल अधिकृत हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने MySQL में एक दृश्य बनाने के विभिन्न तरीकों का पता लगाया।
1. MySQL सरल बनाएँ एक दृश्य
2. MySQL Create Group BY और ORDER BY का उपयोग करके देखें
3. MySQL क्रिएट व्यू जिन्न का उपयोग कर
4. MySQL Create Subquery का उपयोग करके देखें
हम प्रोजेक्ट आवश्यकताओं के आधार पर इनमें से कोई भी विकल्प चुन सकते हैं।
आगे पढ़ना = >> MySQL बनाएँ तालिका
हैप्पी लर्निंग !!
अनुशंसित पाठ
- MySQL अलर्ट - MySQL में एक टेबल पर कॉलम कैसे जोड़ें
- MySQL CONCAT और GROUP_CONCAT फ़ंक्शंस उदाहरण के साथ
- MySQL COUNT और COIST DISTINCT उदाहरणों के साथ
- MySQL Create Database - MySQL में डेटाबेस कैसे बनायें
- MySQL निर्माता का उपयोग करें: MySQL में नया उपयोगकर्ता कैसे बनाएं
- कोड उदाहरणों के साथ MySQL क्रिएट ट्यूटोरियल देखें
- MySQL ग्रुप क्लॉज - उदाहरणों के साथ ट्यूटोरियल
- MySQL JOIN ट्यूटोरियल: इनर, आउटर, क्रॉस, लेफ्ट, राइट और सेल्फ