MySQL दृश्य: उदाहरण सहित तालिकाओं से दृश्य कैसे बनाएं

दृश्य क्या हैं? MySQL?

दृश्य वर्चुअल टेबल हैं जो अपना कोई डेटा स्टोर नहीं करते हैं, लेकिन अन्य टेबल में संग्रहीत डेटा प्रदर्शित करते हैं। दूसरे शब्दों में, VIEWS कुछ और नहीं बल्कि SQL क्वेरीज़ हैं। एक दृश्य में टेबल की सभी या कुछ पंक्तियाँ हो सकती हैं। MySQL दृश्य एक तालिका या कई तालिकाओं से डेटा दिखा सकता है।

MySQL दृश्य वाक्यविन्यास

आइए अब एक दृश्य बनाने के लिए उपयोग किए जाने वाले बुनियादी सिंटैक्स को देखें MySQL.

CREATE VIEW `view_name` AS SELECT statement;

कहां

  • “दृश्य `view_name` बनाएं” बताता है MySQL सर्वर को डेटाबेस में `view_name` नामक एक दृश्य ऑब्जेक्ट बनाने के लिए
  • “AS SELECT कथन” SQL कथनों को पैक किया जाना है MySQL दृश्य. यह एक SELECT कथन हो सकता है जिसमें एक तालिका या एकाधिक तालिकाओं से डेटा हो सकता है।

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

दृश्य बनाने की चरण दर चरण प्रक्रिया निम्नलिखित है MySQL:

चरण 1) “myflixdb” का उपयोग करके अपना पहला दृश्य बनाएं

आइए अब “myflixdb” का उपयोग करके अपना पहला दृश्य बनाएं, हम एक सरल दृश्य बनाएंगे जो सदस्य तालिका में देखे गए स्तंभों को प्रतिबंधित करता है।

मान लीजिए कि प्राधिकरण आवश्यकताओं में कहा गया है कि लेखा विभाग सदस्य की तालिका से केवल सदस्य की संख्या, नाम और लिंग देख सकता है। इसे प्राप्त करने के लिए आप एक VIEW बना सकते हैं –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

चरण 2) दृश्य नोड का विस्तार करना

उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL myflixdb के विरुद्ध वर्कबेंच का उपयोग करने और डेटाबेस एक्सप्लोरर में दृश्य नोड का विस्तार करने से हमें निम्नलिखित परिणाम प्राप्त होते हैं।

इसमें दृश्य बनाएं MySQL

ध्यान दें कि accounts_v_members ऑब्जेक्ट अब डेटाबेस दृश्य ऑब्जेक्ट में दृश्यमान है।

चरण 3) SELECT कथन निष्पादित करें

चलिए अब एक कार्य निष्पादित करते हैं चयन कथन जो दृश्य से सभी फ़ील्ड का चयन करता है जैसा कि नीचे दिखाया गया है MySQL दृश्य उदाहरण बनाएँ.

SELECT * FROM `accounts_v_members`;

चरण 4) स्क्रिप्ट निष्पादित करें

उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL वर्कबेंच के विरुद्ध मायफ्लिक्सडीबी का परीक्षण करने पर हमें नीचे दिखाए गए परिणाम प्राप्त हुए।

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

केवल लेखा विभाग के लिए अधिकृत कॉलम ही लौटाए गए हैं। सदस्य तालिका में पाए गए अन्य विवरण छिपा दिए गए हैं।

यदि हम किसी विशेष दृश्य को बनाने वाले SQL कथनों को देखना चाहते हैं, तो हम ऐसा करने के लिए नीचे दी गई स्क्रिप्ट का उपयोग कर सकते हैं।

SHOW CREATE VIEW `accounts_v_members`;

उपरोक्त स्क्रिप्ट को निष्पादित करने से आपको दृश्य का नाम और दृश्य बनाने के लिए प्रयुक्त SQL SELECT कथन प्राप्त होता है।

इसमें शामिल हों और देखें MySQL

आइए अब एक काफी जटिल उदाहरण देखें जिसमें कई तालिकाएँ और उपयोग शामिल हैं में मिलती है.

हम बनाए गए 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`;

उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL कार्यक्षेत्र myflixdb के विरुद्ध हमें नीचे दिखाए गए निम्नलिखित परिणाम मिलते हैं।

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 क्वेरी लिखने की ज़रूरत नहीं थी। हमने बस किसी अन्य साधारण तालिका की तरह नियमित SELECT कथन में दृश्य का उपयोग किया। दृश्य को myflixdb के शीर्ष पर चल रहे एप्लिकेशन सिस्टम में कहीं से भी कॉल किया जा सकता है।

में दृश्य कम हो रहे हैं MySQL

DROP कमांड का उपयोग किसी दृश्य को हटाने के लिए किया जा सकता है डेटाबेस जिसकी अब आवश्यकता नहीं है। किसी दृश्य को हटाने का मूल सिंटैक्स इस प्रकार है।

DROP VIEW ` general_v_movie_rentals `;

दृश्यों का उपयोग क्यों करें?

आप मुख्य रूप से निम्नलिखित 3 कारणों से दृश्यों का उपयोग करना चाह सकते हैं

  • अंततः, आप अपने एसक्यूएल ज्ञान, अनुप्रयोग बनाने के लिए, जो डेटा आवश्यकताओं के लिए डेटाबेस का उपयोग करेगा। यह अनुशंसा की जाती है कि आप अपने अनुप्रयोग में मूल तालिका संरचना के VIEWS का उपयोग करें बजाय तालिकाओं का उपयोग करने के। यह सुनिश्चित करता है कि जब आप अपने DB को रिफैक्टर करते हैं, तो आपका लीगेसी कोड अनुप्रयोग को तोड़े बिना दृश्य के माध्यम से मूल स्कीमा को देखेगा।
  • VIEWS पुनः प्रयोज्यता को बढ़ाता है। आपको बार-बार जॉइन से जुड़ी जटिल क्वेरी बनाने की ज़रूरत नहीं पड़ेगी। VIEWS का उपयोग करके सभी जटिलताएँ क्वेरी की एक पंक्ति में बदल जाती हैं। इस तरह के संक्षिप्त कोड को आपके एप्लिकेशन में एकीकृत करना आसान होगा। इससे टाइपो की संभावनाएँ समाप्त हो जाएँगी और आपका कोड अधिक पठनीय होगा।
  • VIEWS डेटा सुरक्षा में मदद करते हैं। आप व्यू का उपयोग करके उपयोगकर्ताओं को केवल अधिकृत जानकारी दिखा सकते हैं और क्रेडिट कार्ड नंबर जैसे संवेदनशील डेटा को छिपा सकते हैं।

सारांश

  • दृश्य वर्चुअल टेबल हैं; उनमें वह डेटा नहीं होता जो लौटाया जाता है। डेटा SELECT कथन में संदर्भित टेबल में संग्रहीत होता है।
  • दृश्य केवल अधिकृत उपयोगकर्ताओं को इच्छित डेटा दिखाकर डेटाबेस की सुरक्षा में सुधार करते हैं। वे संवेदनशील डेटा को छिपाते हैं।
  • व्यूज़ से जीवन आसान हो जाता है क्योंकि आपको बार-बार जटिल क्वेरीज़ लिखने की ज़रूरत नहीं पड़ती।
  • VIEW पर INSERT, UPDATE और DELETE का उपयोग करना संभव है। ये ऑपरेशन VIEW की अंतर्निहित तालिकाओं को बदल देंगे। एकमात्र विचार यह है कि VIEW में संदर्भित तालिकाओं के सभी NOT NULL कॉलम शामिल होने चाहिए। आदर्श रूप से, आपको अपडेट करने के लिए VIEWS का उपयोग नहीं करना चाहिए।