PostgreSQL डेटा प्रकार: बाइट, न्यूमेरिक, कैरेक्टर, बाइनरी
PostgreSQL उपयोगकर्ताओं के लिए मूल डेटा प्रकारों का एक समृद्ध सेट प्रदान करता है। उपयोगकर्ता CREATE TYPE कमांड की सहायता से नए प्रकार जोड़ सकते हैं। यह क्वेरी को सरल और अधिक पठनीय भी बनाता है।
डेटा प्रकार PostgreSQL
PostgreSQL निम्नलिखित डेटा प्रकारों का समर्थन करता है:
- पाठ प्रकार
- संख्यात्मक प्रकार
- दिनांक और समय
- एक्सएमएल
- JSON
- बूलियन
- बिट्स
- बाइनरी डेटा
- नेटवर्क
- Arrays
- अपना डेटा प्रकार बनाएं
- बूलियन
- लौकिक
- यूयूआईडी
- ऐरे
- JSON
- नेटवर्क पता और ज्यामितीय डेटा संग्रहीत करने के लिए विशेष डेटा प्रकार।
आइये अध्ययन करें PostgreSQL डेटा प्रकार विस्तार से
वर्ण डेटाटाइप
PostgreSQL पाठ मानों को संग्रहीत करने के लिए वर्ण डेटा प्रकारों का समर्थन करता है। PostgreSQL समान आंतरिक संरचनाओं से वर्ण डेटा प्रकार का निर्माण करता है। PostgreSQL तीन वर्ण डेटा प्रकार प्रदान करता है: CHAR(n), VARCHAR(n), और TEXT.
| नाम | विवरण |
|---|---|
| वर्चर(एन) | आपको एक सीमा के साथ परिवर्तनीय-लंबाई घोषित करने की अनुमति देता है |
| चार(n) | निश्चित लंबाई, खाली गद्देदार |
| टेक्स्ट | इस डेटा प्रकार का उपयोग असीमित लंबाई वाले चर को घोषित करने के लिए किया जा सकता है |
संख्यात्मक डेटाटाइप
PostgreSQL दो अलग-अलग प्रकार की संख्याओं का समर्थन करता है:
- पूर्णांकों
- दशमलव संख्याएं
| नाम | स्टोर का आकार | रेंज |
|---|---|---|
| छोटा सा | 2 बाइट्स | + 32768 32767 |
| पूर्णांक | 4 बाइट्स | + 2147483648 2147483647 |
| bigint | 8 बाइट्स | 9223372036854775808 - 9223372036854775807 |
| दशमलव | परिवर्तनशील | यदि आपने इसे दशमलव के रूप में घोषित किया है तो डेटा प्रकार दशमलव बिंदु से पहले 131072 अंकों से लेकर दशमलव बिंदु के बाद 16383 अंकों तक होता है |
| सांख्यिक | परिवर्तनशील | यदि आप इसे संख्या के रूप में घोषित करते हैं, तो आप दशमलव बिंदु से पहले 131072 अंकों से लेकर दशमलव बिंदु के बाद 16383 अंकों तक की संख्या शामिल कर सकते हैं |
| वास्तविक | 4 बाइट्स | 6 दशमलव अंक परिशुद्धता |
| डबल | 8 बाइट्स | 15 दशमलव अंक परिशुद्धता |
बाइनरी डेटा प्रकार
बाइनरी स्ट्रिंग ऑक्टेट्स या बाइट्स का अनुक्रम है। बाइनरी पोस्टग्रेस डेटा टाइप दो तरीकों से विभाजित हैं।
- बाइनरी स्ट्रिंग्स शून्य मान की बाधाओं को संग्रहीत करने की अनुमति देते हैं
- गैर-मुद्रण योग्य अष्टक
वर्ण स्ट्रिंग शून्य ऑक्टेट की अनुमति नहीं देता है और किसी भी अन्य ऑक्टेट मान और अनुक्रम की भी अनुमति नहीं देता है जो डेटाबेस के वर्ण सेट एन्कोडिंग नियमों के अनुसार अमान्य हैं।
| नाम | भंडारण का आकार | विवरण |
|---|---|---|
| बाइट | 1 से 4 बाइट्स प्लस बाइनरी स्ट्रिंग का आकार | परिवर्तनीय-लंबाई बाइनरी स्ट्रिंग |
नेटवर्क पता प्रकार
कई अनुप्रयोग नेटवर्क जानकारी जैसे उपयोगकर्ताओं या सेंसरों के आईपी पते संग्रहीत करते हैं। PostgreSQL इसमें तीन मूल प्रकार हैं जो नेटवर्क डेटा को अनुकूलित करने में आपकी मदद करते हैं।
| नाम | आकार | विवरण |
|---|---|---|
| साइडर | 7 या 19 बाइट्स | आईपीवी4 और आईपीवी6 नेटवर्क |
| मंत्रिमंडल | 7 या 19 बाइट्स | IPV4 और IPV5 होस्ट और नेटवर्क |
| macaddr | 6 बाइट्स | मैक पते |
नेटवर्क एड्रेस प्रकार का उपयोग करने के निम्नलिखित लाभ हैं
- भंडारण स्थान की बचत
- इनपुट त्रुटि जाँच
- सबनेट द्वारा डेटा खोजने जैसे कार्य
पाठ खोज प्रकार
PostgreSQL दो डेटा प्रकार प्रदान करता है जो पूर्ण-पाठ खोज का समर्थन करने के लिए डिज़ाइन किए गए हैं। पूर्ण-पाठ खोज प्राकृतिक-भाषा दस्तावेज़ों के संग्रह के माध्यम से खोज करना है जो किसी क्वेरी से सबसे अच्छी तरह मेल खाते हैं।
- Tsvector पाठ खोज PostgreSQL परिवर्तनीय प्रकार दस्तावेज़ को पाठ खोज के लिए अनुकूलित रूप में प्रस्तुत करते हैं
- क्वेरी प्रकार टेक्स्ट खोज उन कीवर्ड को संग्रहीत करता है जिन्हें खोजा जाना आवश्यक है
दिनांक/समय डेटाटाइप
PostgreSQL टाइमस्टैम्प सेकंड प्रिसिशन के बजाय माइक्रोसेकंड प्रिसिशन प्रदान करता है। इसके अलावा, आपके पास टाइमज़ोन के साथ या उसके बिना स्टोर करने का विकल्प भी है। PostgreSQL इनपुट पर टाइमज़ोन के साथ टाइमस्टैम्प को UTC में परिवर्तित करेगा और इसे संग्रहीत करेगा।
दिनांक और समय इनपुट विभिन्न प्रारूपों में स्वीकार किया जाता है, जिसमें पारंपरिक पोस्टग्रेस, आईएसओ 8601, एसक्यूएल-संगत आदि शामिल हैं।
PostgreSQL दिन/माह/वर्ष क्रम का समर्थन करता है। समर्थित प्रारूप DMY, MDY, YMD हैं
अस्थायी डेटा प्रकार
| नाम | आकार | रेंज | संकल्प |
|---|---|---|---|
| समयक्षेत्र के बिना टाइमस्टैम्प | 8 बाइट्स | 4713 ईसा पूर्व से 294276-XNUMX ईसवी तक | 1 माइक्रोसेकंड/14 अंक |
| समय क्षेत्र के साथ टाइमस्टैम्प | 8 बाइट्स | 4713 ईसा पूर्व से 294276-XNUMX ईसवी तक | 1 माइक्रोसेकंड/14 अंक |
| डेटा | 4 बाइट्स | 4713 ईसा पूर्व से 294276-XNUMX ईसवी तक | एक दिन |
| समयक्षेत्र के बिना समय | 8 बाइट्स | 00:00:00 to 24:00:00 | 1 माइक्रोसेकंड/14 अंक |
| समय क्षेत्र के साथ समय | 12 बाइट्स | 00:00:00 + 1459 से 24:00:00-1459 | 1 माइक्रोसेकंड/14 अंक |
| अंतराल | 12 बाइट्स | -178000000 से 178000000 वर्ष | 1 माइक्रोसेकंड/14 अंक |
उदाहरण
| निवेश | विवरण |
|---|---|
| 2025-09-07 | ISO 8601, 7 सितंबर किसी भी दिनांक शैली के साथ (अनुशंसित प्रारूप) |
| सितम्बर 7, 2025 | 7 सितंबर किसी भी तारीख शैली के साथ |
| 9/7/2025 | 7 सितम्बर को MDY, 9 जुलाई को DMY |
| 9/7/25 | 7 सितंबर, 2025, MDY के साथ |
| 2025-Sep-7 | 7 सितंबर किसी भी तारीख शैली के साथ |
| सितम्बर-7-2018 | 7 सितंबर किसी भी तारीख शैली के साथ |
| 7-Sep-25 | 7 सितंबर, 2025, YMD के साथ |
| 20250907 | ISO 8601,7 Sep 20225 किसी भी मोड में |
| 2025.250 | वर्ष और वर्ष का दिन, इस मामले में, 7 सितम्बर, 2025 |
| J25250 | जूलियन कैलेण्डर का दिन |
समय/समय क्षेत्र इनपुट के साथ समय
| निवेश | विवरण |
|---|---|
| 11:19:38.507 11:19:38 11:19 111938 |
आईएसओ 8601 |
| 11: 19 AM | 11:19 के समान |
| 11: 19 PM | 23:19 के समान |
| 23: 19 - 3 ०१: ०५ २४: ०० 231900-03 |
आईएसओ 8601, 11:19 अपराह्न ईएसटी के समान |
| 23:19 ईएसटी | समय क्षेत्र EST के रूप में निर्दिष्ट है, 11:19 PM EST के समान |
बूलियन प्रकार
एक बूलियन डेटा प्रकार धारण कर सकता है
- यह सच है
- झूठा
- रिक्त
मूल्यों.
आप एक का उपयोग करते हैं bool or बूलियन बूलियन डेटा प्रकार के साथ एक कॉलम घोषित करने के लिए कीवर्ड।
जब आप बूलियन कॉलम में मान डालते हैं, तो Postgre मानों को इस प्रकार परिवर्तित करता है
- हाँ
- y
- 1
- t
- <strong>उद्देश्य</strong>
1 में.
जबकि जैसे मान
- नहीं
- N
- 0
- F
- झूठा
0 में परिवर्तित हो जाते हैं
डेटा का चयन करते समय, मान पुनः हाँ, सत्य, y आदि में परिवर्तित हो जाते हैं।
ज्यामितीय डेटा प्रकार
ज्यामितीय डेटा प्रकार दो-आयामी स्थानिक वस्तुओं का प्रतिनिधित्व करते हैं। वे रोटेशन, स्केलिंग, ट्रांसलेशन आदि जैसे ऑपरेशन करने में मदद करते हैं।
| नाम | भंडारण का आकार | प्रतिनिधित्व | विवरण |
|---|---|---|---|
| बिन्दु | 16 बाइट्स | समतल पर बिंदु | (एक्स, वाई) |
| लाइन | 32 बाइट्स | अनंत रेखा | ((xl.yl ).(x2.y2)) |
| एलसेग | 32 बाइट्स | परिमित रेखाखंड | ((xl.yl ).(x2.y2)) |
| Box | 32 बाइट्स | आयताकार Box | ((xl.yl ).(x2.y2)) |
| पथ | 16n + 16n बाइट्स | बंद और खुला रास्ता | ((एक्सएल.वाईएल),…) |
| बहुभुज | 40 + 16n बाइट्स | बहुभुज | [(एक्सएल.वाईएल)….] |
| चक्र | 24 बाइट्स | चक्र | <(xy).r> (केन्द्र बिंदु और त्रिज्या) |
प्रगणित प्रकार
प्रगणित PostgreSQL डेटा प्रकार देश कोड या शाखा आईडी जैसी शायद ही कभी बदलने वाली जानकारी का प्रतिनिधित्व करने के लिए उपयोगी है। डेटा अखंडता सुनिश्चित करने के लिए एन्यूमरेटेड डेटा प्रकार को विदेशी कुंजियों के साथ एक तालिका में दर्शाया जाता है।
उदाहरण
जनसांख्यिकीय डेटाबेस में बालों का रंग काफी हद तक स्थिर है
CREATE TYPE hair_color AS ENUM
('brown','black','red','grey','blond')
रेंज का प्रकार
कई व्यावसायिक अनुप्रयोगों को श्रेणियों में डेटा की आवश्यकता होती है। आम तौर पर, श्रेणियों से निपटने के लिए दो कॉलम (उदाहरण: आरंभ तिथि, समाप्ति तिथि) परिभाषित किए जाते हैं। यह अक्षम और बनाए रखने में कठिन दोनों है।
Postgre ने रेंज प्रकार इस प्रकार बनाए हैं
- int4range — पूर्णांक की सीमा प्रदर्शित करें
- int8range — bigint की रेंज प्रदर्शित करें
- numrange — संख्यात्मक रेंज दिखाता है
- tstrange — आपको समय क्षेत्र के बिना टाइमस्टैम्प प्रदर्शित करने में मदद करता है
- अजीब - आपको समय क्षेत्र के साथ टाइमस्टैम्प प्रदर्शित करने की अनुमति देता है
- तिथि सीमा — तिथि की सीमा
UUID प्रकार
यूनिवर्सली यूनिक आइडेंटिफ़ायर (UUID) एक 128-बिट मात्रा है जो एक एल्गोरिथ्म द्वारा उत्पन्न होती है। यह बहुत ही असंभव है कि दुनिया में किसी अन्य व्यक्ति द्वारा समान एल्गोरिथ्म का उपयोग करके समान पहचानकर्ता उत्पन्न किया जाएगा। यही कारण है कि वितरित प्रणालियों के लिए, ये पहचानकर्ता एक आदर्श विकल्प हैं क्योंकि यह एकल डेटाबेस के भीतर विशिष्टता प्रदान करता है। एक UUID को लोअर-केस हेक्साडेसिमल अंकों के समूह के रूप में लिखा जाता है, जिसमें विभिन्न समूहों को हाइफ़न द्वारा अलग किया जाता है।
PostgreSQL इसका मूल UUID डेटा प्रकार है जो 16 बाइट्स का भंडारण करता है। UUID प्राथमिक कुंजियों के लिए एक आदर्श डेटा प्रकार है।
उदाहरण
d5f28c97-b962-43be-9cf8-ca1632182e8e
पोस्टग्रे UUID इनपुट के वैकल्पिक रूपों को भी स्वीकार करता है, जैसे सभी कैपिटल केस, कोई हाइफ़न, ब्रेसेज़ आदि नहीं।
XML प्रकार
PostgreSQL आपको XML डेटा को डेटा टाइप में स्टोर करने की अनुमति देता है, लेकिन यह टेक्स्ट डेटा टाइप के एक्सटेंशन से ज़्यादा कुछ नहीं है। लेकिन इसका फ़ायदा यह है कि यह जाँचता है कि इनपुट XML अच्छी तरह से बना हुआ है या नहीं।
उदाहरण
XMLPARSE (DOCUMENT '<?xml version="1.0"?><tutorial><chapter>Data Type</chapter><chapter>...</chapter></tutorial>')
JSON प्रकार
JSON डेटा संग्रहीत करने के लिए PostgreSQL 2 डेटा प्रकार प्रदान करता है
- JSON
- जेएसओएनबी
| JSON | जेसनबी |
|---|---|
| JSON सत्यापन के साथ टेक्स्ट डेटा प्रकार का एक सरल विस्तार | JSON डेटा का बाइनरी प्रतिनिधित्व |
| इन्सर्ट तेज़ है लेकिन डेटा पुनर्प्राप्ति अपेक्षाकृत धीमी है। | सम्मिलित करना धीमा है लेकिन चयन करें (डेटा पुनर्प्राप्ति तेज़ है) |
| इनपुट किए गए डेटा को रिक्त स्थान सहित ठीक उसी तरह से सहेजता है। | अनुक्रमण का समर्थन करता है। पुनर्प्राप्ति को तेज़ बनाने के लिए रिक्त स्थान को अनुकूलित कर सकता है। |
| डेटा पुनर्प्राप्ति पर पुनःप्रसंस्करण | डेटा पुनर्प्राप्ति पर कोई पुनः प्रसंस्करण की आवश्यकता नहीं |
सबसे व्यापक रूप से प्रयुक्त JSON डेटा प्रकार jsonb है, जब तक कि JSON डेटा प्रकार का उपयोग करने की कोई विशेष आवश्यकता न हो।
उदाहरण
CREATE TABLE employee ( id integer NOT NULL, age integer NOT NULL, data jsonb );
INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}');
छद्म प्रकार
PostgreSQL इसमें कई विशेष-उद्देश्य वाली प्रविष्टियाँ हैं जिन्हें छद्म-प्रकार कहा जाता है। आप छद्म-प्रकारों का उपयोग नहीं कर सकते PostgreSQL स्तंभ प्रकार। इनका उपयोग फ़ंक्शन के तर्क या रिटर्न प्रकार को घोषित करने के लिए किया जाता है।
उपलब्ध छद्म प्रकारों में से प्रत्येक उन स्थितियों में सहायक होता है, जहां किसी फ़ंक्शन के व्यवहार दस्तावेज़ किसी विशिष्ट मान को लेने या वापस करने के अनुरूप नहीं होते हैं। SQL डेटा प्रकार.
| नाम | विवरण |
|---|---|
| कोई | फ़ंक्शन सभी इनपुट डेटा प्रकार स्वीकार करता है. |
| एक सरणी | फ़ंक्शन किसी भी सरणी डेटा प्रकार को स्वीकार करता है। |
| कोई भी तत्व | फ़ंक्शन किसी भी डेटा प्रकार को स्वीकार करता है. |
| कोई भी enum | फ़ंक्शन किसी भी enum डेटा प्रकार को स्वीकार करता है। |
| नॉनएरे | यह फ़ंक्शन किसी भी गैर-सरणी डेटा प्रकार को स्वीकार करता है। |
| सी स्ट्रिंग | फ़ंक्शन शून्य-समाप्त C स्ट्रिंग को स्वीकार या लौटाता है। |
| आंतरिक | आंतरिक फ़ंक्शन सर्वर-आंतरिक डेटा प्रकार को स्वीकार या लौटाता है। |
| भाषा_हैंडलर | इसे भाषा हैंडलर लौटाने के लिए घोषित किया गया है। |
| अभिलेख | एक ऐसा फ़ंक्शन खोजें जो अनिर्दिष्ट पंक्ति प्रकार लौटाता है। |
| ट्रिगर | ट्रिगर फ़ंक्शन का उपयोग ट्रिगर लौटाने के लिए किया जाता है। |
यह महत्वपूर्ण है कि इस फ़ंक्शन का उपयोग करने वाले उपयोगकर्ता को यह सुनिश्चित करना होगा कि जब छद्म प्रकार को तर्क प्रकार के रूप में उपयोग किया जाता है तो फ़ंक्शन सुरक्षित रूप से व्यवहार करेगा।
डेटा प्रकारों का उपयोग करने के सर्वोत्तम अभ्यास
- जब तक आप इनपुट को सीमित नहीं करना चाहते, तब तक “टेक्स्ट” डेटा प्रकार का उपयोग करें
- कभी भी “char” का प्रयोग न करें.
- पूर्णांकों के लिए "int" का उपयोग करें। bigint का उपयोग केवल तभी करें जब आपके पास वास्तव में बड़ी संख्याएँ हों
- लगभग हमेशा “संख्यात्मक” का प्रयोग करें
- फ़्लोट का उपयोग करें PostgreSQL यदि आपके पास IEEE 754 डेटा स्रोत है
सारांश
- PostgreSQL उपयोगकर्ताओं के लिए मूल डेटा प्रकारों का एक समृद्ध सेट प्रदान करता है
- PostgreSQL पाठ मानों को संग्रहीत करने के लिए वर्ण डेटा प्रकारों का समर्थन करता है
- PostgreSQL दो अलग-अलग प्रकार की संख्याओं का समर्थन करता है: 1. पूर्णांक, 2. फ़्लोटिंग-पॉइंट संख्याएँ
- बाइनरी स्ट्रिंग बाइट्स या ऑक्टेट्स का एक अनुक्रम है
- PostgreSQL नेटवर्क डेटा के भंडारण को अनुकूलित करने में आपकी सहायता करने के लिए नेटवर्क पता प्रकार है
- पाठ्य खोज PostgreSQL डेटा संरचनाएं पूर्ण-पाठ खोज का समर्थन करने के लिए डिज़ाइन की गई हैं
- दिनांक/समय PSQL डेटा प्रकार विभिन्न प्रारूपों में दिनांक और समय की जानकारी की अनुमति देते हैं
- बूलियन पोस्टग्रेज फ़ील्ड प्रकार तीन मान रख सकते हैं 1. सत्य 2. असत्य 3. शून्य
- ज्यामितीय PostgreSQL डेटा प्रकार दो-आयामी स्थानिक वस्तुओं का प्रतिनिधित्व करते हैं
- प्रगणित डेटा प्रकार PostgreSQL देश कोड या शाखा आईडी जैसी शायद ही कभी बदलने वाली जानकारी का प्रतिनिधित्व करने के लिए उपयोगी है
- यूनिवर्सली यूनिक आइडेंटिफ़ायर (UUID) एक 128-बिट मात्रा है जो एक एल्गोरिथ्म द्वारा उत्पन्न होती है
- PostgreSQL इसमें कई विशेष प्रयोजन वाली प्रविष्टियाँ हैं जिन्हें छद्म-प्रकार कहा जाता है
- जब तक आप इनपुट को सीमित नहीं करना चाहते, तब तक “टेक्स्ट” डेटा प्रकार का उपयोग करना सबसे अच्छा अभ्यास है
