MySQL में Views क्या हैं?
VIEWS वर्चुअल टेबल हैं जो अपने खुद के किसी भी डेटा को स्टोर नहीं करती हैं लेकिन अन्य टेबल में स्टोर किए गए डेटा को प्रदर्शित करती हैं। दूसरे शब्दों में, VIEWS और कुछ नहीं बल्कि SQL क्वेरी है। एक दृश्य में एक तालिका से सभी या कुछ पंक्तियाँ हो सकती हैं। एक MySQL दृश्य एक तालिका या कई तालिकाओं से डेटा दिखा सकता है।
MySQL व्यू सिंटैक्स
आइए अब MySQL में एक दृश्य बनाने के लिए उपयोग किए जाने वाले मूल सिंटैक्स को देखें।
CREATE VIEW `view_name` AS SELECT statement;
कहां है
- "CREATE VIEW` view_name` " MySQL सर्वर को` view_name` नाम के डेटाबेस में व्यू ऑब्जेक्ट बनाने के लिए कहता है
- "AS SELECT स्टेटमेंट" MySQL Views में पैक किया जाने वाला SQL स्टेटमेंट है। यह एक सेलेक्ट स्टेटमेंट हो सकता है जिसमें एक टेबल या कई टेबल से डेटा हो सकता है।
MySQL में Views कैसे बनाएं
MySQL में दृश्य बनाने के लिए चरण प्रक्रिया द्वारा एक चरण निम्नलिखित है:
आइए अब "myflixdb" का उपयोग करके अपना पहला दृश्य बनाएं हम एक सरल दृश्य बनाएंगे जो सदस्यों की तालिका में देखे गए कॉलम को प्रतिबंधित करता है।
मान लीजिए कि प्राधिकरण की आवश्यकताएं बताती हैं कि लेखा विभाग सदस्य की तालिका से केवल सदस्य की संख्या, नाम और लिंग देख सकता है। इसे प्राप्त करने के लिए आप एक दृश्य बना सकते हैं -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को Myflixdb के विरुद्ध निष्पादित करने और डेटाबेस एक्सप्लोरर में दृश्य नोड का विस्तार करने से हमें निम्नलिखित परिणाम मिलते हैं।
ध्यान दें कि account_v_members ऑब्जेक्ट अब डेटाबेस दृश्य ऑब्जेक्ट्स में दिखाई दे रहा है। आइए अब एक सेलेक्ट स्टेटमेंट को निष्पादित करें जो कि व्यू से सभी फ़ील्ड्स को चुनता है जैसा कि नीचे दिए गए MySQL व्यू व्यू उदाहरण में दिखाया गया है।
SELECT * FROM `accounts_v_members`;
MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को Myflixdb के खिलाफ निष्पादित करने से हमें नीचे दिखाए गए निम्न परिणाम मिलते हैं।
membership_number | full_names | gender |
---|---|---|
1 | Janet Jones | Female |
2 | Janet Smith Jones | Female |
3 | Robert Phil | Male |
4 | Gloria Williams | Female |
5 | Leonard Hofstadter | Male |
6 | Sheldon Cooper | Male |
7 | Rajesh Koothrappali | Male |
8 | Leslie Winkle | Male |
9 | Howard Wolowitz | Male |
केवल लेखा विभाग के लिए अधिकृत कॉलम वापस किए गए हैं। सदस्य तालिका में पाए गए अन्य विवरण छिपाए गए हैं।
यदि हम एसक्यूएल स्टेटमेंट को देखना चाहते हैं जो एक विशेष दृश्य बनाते हैं, तो हम ऐसा करने के लिए नीचे दी गई स्क्रिप्ट का उपयोग कर सकते हैं।
शो देखें देखें `account_v_members`;
उपरोक्त स्क्रिप्ट को निष्पादित करने से आपको दृश्य नाम और दृश्य बनाने के लिए उपयोग किए जाने वाले SQL चयन कथन मिलते हैं।
MySQL में Join और Views
आइए अब एक काफी जटिल उदाहरण देखें जिसमें कई तालिकाओं का उपयोग किया गया है और इसमें शामिल हैं।
हम तैयार किए गए JOIN को पैकेज देंगे, जिसमें तीन (3) तालिकाओं के सदस्यों, फिल्मों और फिल्म के किराये की जानकारी मिलती है। नीचे वह स्क्रिप्ट है जो हमें वह हासिल करने में मदद करती है।
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
उपरोक्त लिपियों को निष्पादित करने से हमारे myflixdb में general_v_movie_rentals नाम का दृश्य बनता है
आइए अब general_v_movie_rentals नाम की तालिका से सभी फ़ील्ड चुनें।
SELECT * FROM `general_v_movie_rentals`;
Myflixdb के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से हमें नीचे दिखाए गए निम्न परिणाम मिलते हैं।
membership_number | full_names | title | transaction_date | return_date |
---|---|---|---|---|
1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
ध्यान दें कि हमें सदस्यों, फिल्मों और मूवी किराये के विवरण के बारे में जानकारी प्राप्त करने के लिए जटिल JOIN क्वेरी नहीं लिखनी है। हमने किसी अन्य सामान्य तालिका के रूप में एक नियमित चयन कथन में केवल दृश्य का उपयोग किया है। Myflixdb के शीर्ष पर चल रहे एप्लिकेशन सिस्टम में दृश्य को कहीं से भी कॉल किया जा सकता है।
MySQL में द्रोपदी दृश्य
DROP कमांड का उपयोग डेटाबेस से किसी दृश्य को हटाने के लिए किया जा सकता है जिसकी अब आवश्यकता नहीं है। किसी दृश्य को छोड़ने का मूल सिंटैक्स इस प्रकार है।
DROP VIEW ` general_v_movie_rentals `;
विचारों का उपयोग क्यों करें?
आप मुख्य रूप से 3 कारणों का पालन करने के लिए विचारों का उपयोग करना चाह सकते हैं
- अंततः, आप अपने SQL ज्ञान का उपयोग, एप्लिकेशन बनाने के लिए करेंगे, जो डेटा आवश्यकताओं के लिए डेटाबेस का उपयोग करेगा। यह अनुशंसा की जाती है कि आप अपने अनुप्रयोग में मूल तालिका संरचना के VIEWS का उपयोग स्वयं तालिकाओं का उपयोग करने के बजाय करें। यह सुनिश्चित करता है कि जब आप अपने डीबी को रिफलेक्टर करते हैं, तो आपके लीगेसी कोड को एप्लिकेशन को तोड़ने के बिना ओरिजिनल स्कीमा को दृश्य के माध्यम से देखा जाएगा।
- VIEWS पुन: प्रयोज्य बढ़ाता है। आपको बार-बार जुड़ने वाले जटिल प्रश्नों का निर्माण नहीं करना पड़ेगा। सभी जटिलता VIEWS के उपयोग की क्वेरी की एक पंक्ति में बदल जाती है। इस तरह के संघनित कोड को आपके एप्लिकेशन में एकीकृत करना आसान होगा। इससे टाइपोस की संभावना समाप्त हो जाएगी और आपका कोड अधिक पठनीय होगा।
- डेटा सुरक्षा में VIEWS की मदद। आप उपयोगकर्ताओं को केवल अधिकृत जानकारी दिखाने और क्रेडिट कार्ड नंबर जैसे संवेदनशील डेटा को छिपाने के लिए विचारों का उपयोग कर सकते हैं।
सारांश
- दृश्य वर्चुअल टेबल हैं; उनके पास वह डेटा नहीं है जो लौटाया गया है। डेटा को सेलेक्ट स्टेटमेंट में संदर्भित टेबल में स्टोर किया जाता है।
- दृश्य केवल अधिकृत उपयोगकर्ताओं को इच्छित डेटा दिखाकर डेटाबेस की सुरक्षा में सुधार करता है। वे संवेदनशील डेटा छिपाते हैं।
- दृश्य जीवन को आसान बनाते हैं क्योंकि आपके पास बार-बार जटिल प्रश्न नहीं होते हैं।
- किसी दृश्य पर INSERT, UPDATE और DELETE का उपयोग करना संभव है। ये ऑपरेशन VIEW की अंतर्निहित तालिकाओं को बदल देंगे। केवल विचार यह है कि दृश्य में तालिकाओं के सभी NULL कॉलम नहीं होने चाहिए जो इसे संदर्भित करते हैं। आदर्श रूप से, आपको अपडेट करने के लिए VIEWS का उपयोग नहीं करना चाहिए।