PostgreSQL सबसे लोकप्रिय ऑब्जेक्ट-रिलेशनल डेटाबेस सिस्टम में से एक है। यह मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर है जो जटिल डेटा वर्कलोड को संभालने के लिए अतिरिक्त सुविधाओं के साथ SQL भाषा का विस्तार करता है। यह विश्वसनीय और सुरक्षित विभिन्न डेटा प्रकारों के साथ काम कर सकता है। PostgreSQL की सुविधाओं के बारे में और जानें।
इस गाइड में, हम PostgreSQL में स्कीमा में टेबल बनाने के बारे में और जानेंगे।
PostgreSQL में स्कीमा
एक PostgreSQL डेटाबेस में एक या अधिक नामांकित स्कीमा हो सकते हैं, प्रत्येक स्कीमा में तालिकाएँ होती हैं।
एक ही वस्तु का नाम बिना किसी विरोध के कई स्कीमाओं में निर्दिष्ट किया जा सकता है। उदाहरण के लिए, निम्न स्कीमा/टेबल ट्री मान्य है:
- स्कीम_ए
- तालिका एक
- तालिका 2
- स्कीम_बी
- तालिका एक
- तालिका 2
आप ऑपरेटिंग सिस्टम स्तर पर स्कीमा जैसे निर्देशिकाओं के बारे में सोच सकते हैं। अंतर यह है कि नेस्टेड स्कीमा नहीं हो सकते। स्कीमा के बारे में अधिक गहराई से जानें पोस्टग्रेएसक्यूएल दस्तावेज .
स्कीमा को लागू करने के कई कारण हो सकते हैं:
- एकाधिक उपयोगकर्ता एक ही डेटाबेस का एक दूसरे के साथ विरोध किए बिना उपयोग कर रहे हैं।
- तार्किक समूहों में डेटाबेस का बेहतर संगठन और प्रबंधन।
- तृतीय-पक्ष ऐप्स मौजूदा स्कीमा या अन्य वस्तुओं से टकराए बिना अपनी अनूठी स्कीमा बना सकते हैं।
PostgreSQL में टेबल्स
किसी भी रिलेशनल डेटाबेस में कई संबंधित टेबल होते हैं, जिनमें से प्रत्येक में पंक्तियाँ और कॉलम होते हैं। PostgreSQL कई बिल्ट-इन टेबल के साथ आता है जिसमें विभिन्न सिस्टम जानकारी होती है। हालाँकि, हम उपयोगकर्ता-परिभाषित डेटाबेस और स्कीमा के तहत नई तालिकाएँ भी बना सकते हैं।
पूर्वापेक्षाएँ:
इस मार्गदर्शिका में प्रदर्शित चरणों को करने के लिए, आपको निम्नलिखित घटकों की आवश्यकता होगी:
- एक ठीक से कॉन्फ़िगर किया गया लिनक्स सिस्टम। के बारे में अधिक जानने वर्चुअलबॉक्स में उबंटू स्थापित करना .
- PostgreSQL की उचित स्थापना। चेक आउट Ubuntu पर PostgreSQL स्थापित करना .
- ए तक पहुंच पोस्टग्रेएसक्यूएल उपयोगकर्ता साथ उपयोग की अनुमति एक डेटाबेस के लिए।
इस गाइड के प्रयोजन के लिए, हम प्रयोग करेंगे postgres PostgreSQL में सभी कार्य करने के लिए।
एक स्कीमा में टेबल बनाना
एक डेमो डेटाबेस बनाना
जैसा कि पहले उल्लेख किया गया है, स्कीमा डेटाबेस के अंतर्गत मौजूद हैं। प्रदर्शन उद्देश्यों के लिए, हम किसी भी मौजूदा डेटाबेस में व्यवधान से बचने के लिए एक डमी डेटाबेस बनाते हैं।
PostgreSQL शेल को इस रूप में एक्सेस करें postgres :
$ sudo -i -u psql पोस्टग्रेज करता है
एक नया डेटाबेस बनाएँ डेमो_डीबी:
$ डेटाबेस डेमो_डीबी बनाएं;
सत्यापित करें कि डेटाबेस सफलतापूर्वक बनाया गया है या नहीं:
$ एल
अंत में, नव निर्मित डेटाबेस से कनेक्ट करें:
$ \ कनेक्ट डेमो_डीबी;
सार्वजनिक योजना
PostgreSQL में कोई भी नया डेटाबेस एक डिफ़ॉल्ट स्कीमा के साथ आता है - जनता . यदि आप स्कीमा नाम निर्दिष्ट किए बिना ऑब्जेक्ट बनाने का प्रयास करते हैं, तो सार्वजनिक स्कीमा डिफ़ॉल्ट रूप से चुना जाता है।
निम्न आदेश PostgreSQL डेटाबेस में सभी उपलब्ध स्कीमा को प्रिंट करता है:
$\dn
वैकल्पिक रूप से, हम निम्न SQL क्वेरी का भी उपयोग कर सकते हैं:
$ चयन * pg_catalog.pg_namespace से;
एक नई स्कीमा बनाना
एक विशिष्ट डेटाबेस के तहत एक नया स्कीमा बनाने के लिए, कमांड संरचना इस प्रकार है:
$ क्रिएट स्कीमा <स्कीमा_नाम>;नियम का पालन करते हुए, चलिए एक नया स्कीमा डेमो_स्कीमा बनाते हैं:
$ क्रिएट स्कीमा डेमो_स्कीमा;
सत्यापन के लिए स्कीमा सूची देखें:
$\dn
स्कीमा में तालिका बनाना
अब जब हमारे पास लक्ष्य स्कीमा बन गया है, तो हम इसे तालिकाओं से आबाद कर सकते हैं।
टेबल बनाने का सिंटैक्स इस प्रकार है:
टेबल बनाएं <स्कीमा>। <टेबल_नाम> (...
)
यहां:
- योजना : यह फ़ील्ड उस स्कीमा का नाम निर्दिष्ट करता है जहाँ तालिका बनाई गई है। यदि कोई मान प्रदान नहीं किया जाता है, तो तालिका इसके अंतर्गत बनाई जाती है जनता स्कीमा।
प्रदर्शन के लिए, हम एक साधारण तालिका बनाते हैं:
तालिका बनाएँ डेमो_स्कीमा.डेमो_टेबल (नाम चार (64),
आईडी शून्य नहीं है
);
यहां:
- फील्ड नाम 64 अक्षरों की एक स्ट्रिंग को स्टोर करने के लिए निर्दिष्ट है।
- फील्ड पहचान पूर्णांक मान शामिल हैं। शब्द ' शून्य नहीं ' दर्शाता है कि पहचान खाली या अशक्त नहीं हो सकता।
हम निम्नलिखित क्वेरी का उपयोग करके तालिका के अस्तित्व को सत्यापित कर सकते हैं:
$ SELECT * FROM Demo_schema.demo_table;
तालिका में डेटा सम्मिलित करना
तालिका के स्थान पर, अब हम कुछ मान सम्मिलित कर सकते हैं:
डेमो_स्कीमा.डेमो_टेबल में प्रवेश करें (नाम, आईडी)मान
('पीक्यूआर', 45),
('आईजेके', 99)
;
तालिका की सामग्री की जाँच करें:
$ SELECT * FROM Demo_schema.demo_table;
स्कीमा प्रबंधन
स्कीमा अनुमतियाँ
स्कीमा अनुमति की मदद से, हम यह प्रबंधित कर सकते हैं कि किसी विशिष्ट स्कीमा पर कौन सी भूमिका क्या कार्रवाई कर सकती है। सभी संभावित विशेषाधिकारों में से स्कीमा केवल समर्थन करते हैं बनाएं और उपयोग करें।
किसी विशेष भूमिका के लिए स्कीमा अनुमति को अद्यतन करने के लिए, कमांड संरचना इस प्रकार है:
$ अनुदान <अनुमति> स्कीमा <स्कीमा_नाम> <भूमिका> पर;
किसी विशेष भूमिका के लिए स्कीमा अनुमति को रद्द करने के लिए, कमांड संरचना इस प्रकार है:
$ REVOKE <अनुमति> स्कीमा <स्कीमा_नाम> <भूमिका> पर;निम्न आदेश का उपयोग करके परिवर्तन सत्यापित करें:
$\dn+
स्कीमा गुणों को बदलें
की मदद से वैकल्पिक स्कीमा कथन, हम स्कीमा के विभिन्न गुणों को संशोधित कर सकते हैं। उदाहरण के लिए: स्वामित्व, स्कीमा नाम, आदि।
स्कीमा नाम बदलने के लिए, निम्न क्वेरी का उपयोग करें:
$ ALTER SCHEMA
स्कीमा के स्वामित्व को बदलने के लिए, निम्न क्वेरी का उपयोग करें:
$ ALTER SCHEMA
ध्यान दें कि स्वामित्व बदलने के लिए, वर्तमान उपयोगकर्ता के पास होना चाहिए सृजन करना स्कीमा की अनुमति।
एक स्कीमा हटाना
यदि किसी स्कीमा की अब आवश्यकता नहीं है, तो हम इसका उपयोग करके इसे हटा सकते हैं बूंद सवाल:
$ ड्रॉप स्कीमा <स्कीमा_नाम>
यदि स्कीमा में कोई वस्तु है, तो हमें इसकी आवश्यकता है झरना संशोधक:
$ ड्रॉप स्कीमा <स्कीमा_नाम> कैस्केड;
टेबल प्रबंधन
तालिका अनुमतियाँ
स्कीमा की तरह, प्रत्येक तालिका भी अनुमति प्रबंधन के साथ आती है, यह परिभाषित करती है कि तालिका पर कोई भूमिका क्या कर सकती है।
किसी तालिका की अनुमतियों की जाँच करने के लिए, psql में निम्न कमांड का उपयोग करें:
$ \dp