PostgreSQL सारणी: फ़ंक्शन, प्रकार, उदाहरण
एचएमबी क्या है? PostgreSQL सरणी?
In PostgreSQL, हम एक कॉलम को वैध डेटा प्रकारों की एक सरणी के रूप में परिभाषित कर सकते हैं। डेटा प्रकार बिल्ट-इन, उपयोगकर्ता-परिभाषित या गणना प्रकार हो सकता है। इसके अलावा, सरणियाँ एक महत्वपूर्ण भूमिका निभाती हैं PostgreSQL.
प्रत्येक संगत PostgreSQL डेटा प्रकार एक प्रासंगिक सरणी प्रकार के साथ आता है। उदाहरण के लिए, पूर्णांक डेटा प्रकार में पूर्णांक[] सरणी प्रकार होता है, वर्ण डेटा प्रकार में वर्ण[] सरणी प्रकार होता है, आदि।
बनाना PostgreSQL Arrays
निम्नलिखित उदाहरण में, हम संपर्क कॉलम को टेक्स्ट सरणी के रूप में परिभाषित करते हुए कर्मचारी नामक एक तालिका बनाएंगे:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
कमांड सफलतापूर्वक चलना चाहिए.
सम्मिलित करना PostgreSQL सरणी मान
हमें बताओ डालने के उपरोक्त तालिका में मान दर्ज करें:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
सम्मिलन सफलतापूर्वक चलना चाहिए.
तीसरे कॉलम के मान, यानी संपर्क, को एक सरणी के रूप में डाला गया है। यह ARRAY कन्स्ट्रक्टर के उपयोग से प्राप्त किया गया है।
इस उदाहरण में, हमने उन्हें वर्गाकार कोष्ठकों [] में रखा है। हमारे पास कर्मचारी एलिस जॉन के लिए दो संपर्क हैं।
हमारे लिए अभी भी कर्ली ब्रेसेज़ {} का उपयोग करना संभव है, जैसा कि नीचे दिखाया गया है:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
आदेश सफलतापूर्वक चलना चाहिए.
उपरोक्त कथन कर्मचारी तालिका में दो पंक्तियाँ सम्मिलित करेंगे। कर्ली ब्रेसेज़ का उपयोग करते समय, सरणी को सिंगल कोट्स (') के अंदर लपेटा जाता है जबकि टेक्स्ट सरणी आइटम को डबल कोट्स (') के अंदर लपेटा जाता है।
सरणी डेटा क्वेरी करना
किसी सारणी के तत्वों की क्वेरी करने के लिए, हम SELECT कथन का उपयोग करते हैं।
हमारे कर्मचारी तालिका की सामग्री देखने के लिए, हम निम्नलिखित कमांड चलाते हैं:
SELECT * FROM Employees;
यह निम्नलिखित लौटाता है:
सरणी कॉलम के तत्व, अर्थात संपर्क, को घुमावदार ब्रेसेज़ {} के भीतर संलग्न किया गया है।
सरणी तत्वों तक पहुँचने के लिए, हम वर्गाकार कोष्ठकों [] में एक सबस्क्रिप्ट जोड़ते हैं। सरणी में पहला तत्व स्थान 1 पर होता है।
उदाहरण के लिए, हमें उन कर्मचारियों के नाम और केवल उनका पहला संपर्क प्राप्त करने की आवश्यकता है जिनके पास एक से अधिक संपर्क हैं। हम इसे संपर्क[1] के रूप में एक्सेस कर सकते हैं।
आइये इसे देखें:
SELECT name, contact[1] FROM Employees;
इससे निम्नलिखित परिणाम प्राप्त होंगे:
हम सरणी कॉलम के आधार पर पंक्तियों को फ़िल्टर करने के लिए WHERE क्लॉज़ के साथ SELECT कथन का उपयोग कर सकते हैं।
उदाहरण के लिए, (408)-567-78234 वाले कर्मचारी को दूसरे संपर्क के रूप में देखने के लिए, हम निम्नलिखित कमांड चला सकते हैं:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
इससे निम्नलिखित परिणाम प्राप्त होंगे:
संशोधित करना PostgreSQL ऐरे
आप किसी सारणी के सभी या किसी एक तत्व को अद्यतन कर सकते हैं।
कर्मचारी तालिका की सामग्री इस प्रकार है:
आइये कर्मचारी जेम्स बुश का दूसरा फ़ोन नंबर अपडेट करें, जिसकी आईडी 3 है:
निम्न कमांड चलाएं:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
आदेश सफलतापूर्वक चलना चाहिए:
आइए तालिका पर क्वेरी करके जाँचें कि क्या परिवर्तन सफल रहा:
परिवर्तन सफल रहा.
खोज में PostgreSQL ऐरे
वर्तमान में, हमारे कर्मचारियों की तालिका इस प्रकार है:
मान लीजिए हमें यह जानना है कि संपर्क (408)-783-5731 का स्वामी कौन है, भले ही वह संपर्क सरणी में किसी भी स्थान पर हो, तो हम ANY() फ़ंक्शन का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
इससे निम्नलिखित परिणाम प्राप्त होंगे:
विस्तारित सरणी
हम किसी सरणी के मानों को पंक्तियों में विभाजित कर सकते हैं। इस प्रक्रिया को सरणी विस्तार के रूप में जाना जाता है।
कर्मचारी तालिका के उदाहरण में, संपर्क सरणी में दो संपर्क वाले कुछ कर्मचारी हैं। हम इन्हें अलग-अलग पंक्तियों में विभाजित कर सकते हैं।
PostgreSQL unnest() फ़ंक्शन प्रदान करता है जिसका उपयोग इसके लिए किया जा सकता है।
उदाहरण के लिए:
SELECT name, unnest(contact) FROM Employees;
इससे निम्नलिखित परिणाम प्राप्त होंगे:
कर्मचारी एलिस जॉन और जेम्स बुश के पास दो संपर्क हैं। हम अलग-अलग पंक्तियों में विभाजित हो सकते हैं।
pgAdmin का उपयोग करना
बनाना PostgreSQL Arrays
pgAdmin के माध्यम से ऐसा करने के लिए, यह करें:
चरण 1) अपने pgAdmin खाते में लॉगिन करें.
चरण 2)
- बाईं ओर स्थित नेविगेशन बार से rbases पर क्लिक करें।
- डेमो बटन पर क्लिक करें
चरण 3) कर्मचारी तालिका बनाने के लिए क्वेरी संपादक में क्वेरी टाइप करें:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
चरण 4) निष्पादित करें बटन पर क्लिक करें.
सम्मिलित करना PostgreSQL सरणी मान
चरण 1) क्वेरी संपादक में निम्नलिखित क्वेरी टाइप करें:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
चरण 2) निष्पादित करें बटन पर क्लिक करें:
चरण 3)
क्वेरी में कर्ली ब्रेसेज़ का उपयोग करने के लिए
चरण 1) क्वेरी संपादक में निम्नलिखित क्वेरी टाइप करें:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
चरण 2) निष्पादित करें बटन पर क्लिक करें:
सरणी डेटा क्वेरी करना
चरण 1) कर्मचारी तालिका की सामग्री देखने के लिए, क्वेरी संपादक पर निम्नलिखित क्वेरी टाइप करें:
SELECT * FROM Employees;
चरण 2) निष्पादित करें बटन पर क्लिक करें:
इसे निम्नलिखित लौटना चाहिए:
चरण 3) कर्मचारियों के प्रथम संपर्क देखने के लिए:
- क्वेरी संपादक में निम्नलिखित क्वेरी टाइप करें:
SELECT name, contact[1] FROM Employees;
- निष्पादित करें बटन पर क्लिक करें.
इसे निम्नलिखित लौटना चाहिए:
चरण 4) SELECT कथन को WHERE क्लॉज़ के साथ संयोजित करने के लिए:
- क्वेरी एडिटर पर निम्नलिखित कमांड टाइप करें:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- निष्पादित करें बटन पर क्लिक करें.
इसे निम्नलिखित लौटना चाहिए:
संशोधित करना PostgreSQL ऐरे
चरण 1) आईडी 3 वाले उपयोगकर्ता के दूसरे संपर्क को अपडेट करने के लिए, निम्नलिखित कमांड चलाएँ:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
चरण 2) निष्पादित करें बटन पर क्लिक करें.
चरण 3)
1.परिवर्तन सफल हुआ या नहीं, यह जाँचने के लिए क्वेरी एडिटर पर निम्न कमांड टाइप करें:
SELECT * FROM Employees;
2. निष्पादित बटन पर क्लिक करें।
इसे निम्नलिखित लौटना चाहिए:
खोज में PostgreSQL ऐरे
चरण 1) क्वेरी संपादक में निम्नलिखित क्वेरी टाइप करें:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
चरण 2) निष्पादित करें बटन पर क्लिक करें.
इसे निम्नलिखित लौटना चाहिए:
विस्तारित सरणी
चरण 1) क्वेरी संपादक में निम्नलिखित क्वेरी टाइप करें:
SELECT name, unnest(contact) FROM Employees;
चरण 2) निष्पादित करें बटन पर क्लिक करें.
इसे निम्नलिखित लौटना चाहिए:
सारांश
- PostgreSQL हमें एक तालिका स्तंभ को एक सारणी प्रकार के रूप में परिभाषित करने की अनुमति देता है।
- सरणी वैध होनी चाहिए डाटा प्रकार जैसे पूर्णांक, वर्ण, या उपयोगकर्ता-परिभाषित प्रकार।
- किसी ऐरे कॉलम में मान डालने के लिए, हम ARRAY कन्स्ट्रक्टर का उपयोग करते हैं।
- यदि किसी सारणी स्तंभ की एक ही पंक्ति में एक से अधिक तत्व हैं, तो पहला तत्व स्थान 1 पर होगा।
- प्रत्येक मान को वर्गाकार कोष्ठकों [] में एक सबस्क्रिप्ट पास करके प्राप्त किया जा सकता है।
- सारणी के तत्वों को SELECT कथन का उपयोग करके पुनः प्राप्त किया जा सकता है।
- सरणी कॉलम के मानों को वर्गाकार कोष्ठकों [] या घुमावदार कोष्ठकों {} के भीतर रखा जा सकता है।
- हम ANY() फ़ंक्शन का उपयोग करके सरणी कॉलम मानों की खोज कर सकते हैं।
इस ट्यूटोरियल में प्रयुक्त डेटाबेस डाउनलोड करें