PostgreSQL डेटा प्रकार: संख्यात्मक, वर्ण, बाइट

⚡ स्मार्ट सारांश

PostgreSQL डेटा टाइप्स यह परिभाषित करते हैं कि प्रत्येक कॉलम किस प्रकार का मान संग्रहीत कर सकता है, जिसमें कैरेक्टर, न्यूमेरिक, बाइनरी, दिनांक और समय, बूलियन, ज्योमेट्रिक, नेटवर्क, UUID, XML और JSON श्रेणियां शामिल हैं। PostgreSQL यह उपयोगकर्ताओं को CREATE TYPE कमांड के साथ कस्टम प्रकार बनाने की सुविधा भी देता है।

  • 🔤 चरित्र प्रकार: CHAR, VARCHAR और TEXT में निश्चित लंबाई, परिवर्तनीय लंबाई और असीमित लंबाई के टेक्स्ट मान संग्रहीत किए जा सकते हैं।
  • 🔢 संख्यात्मक प्रकार: इंटीजर और फ्लोटिंग-पॉइंट प्रकार स्मॉलइंट से लेकर बिगइंट तक होते हैं, साथ ही सटीक संख्यात्मक और दशमलव मान भी शामिल होते हैं।
  • 🕒 दिनांक और समय: टाइमस्टैम्प, दिनांक, समय और अंतराल प्रकार वैकल्पिक समय क्षेत्रों के साथ माइक्रोसेकंड की सटीकता प्रदान करते हैं।
  • बूलियन और एनम: बूलियन प्रकार true, false या null मान रखता है, जबकि एन्यूमरेटेड प्रकार शायद ही कभी बदलने वाले निश्चित सेटों को मॉडल करते हैं।
  • 🌐 विशिष्ट प्रकार: नेटवर्क, ज्योमेट्रिक, यूयूआईडी, एक्सएमएल, जेजेएस और जेओएसएनबी पते, आकार, पहचानकर्ता और संरचित डेटा को संभालते हैं।
  • 💡 सर्वश्रेष्ठ प्रणालियां: स्ट्रिंग के लिए TEXT और संख्याओं के लिए NUMERIC को प्राथमिकता दें, और आवश्यकता पड़ने पर ही कस्टम प्रकार बनाएं।

PostgreSQL उपयोगकर्ताओं के लिए मूल डेटा प्रकारों का एक समृद्ध सेट प्रदान करता है। उपयोगकर्ता CREATE TYPE कमांड की सहायता से नए प्रकार जोड़ सकते हैं। यह क्वेरी को सरल और अधिक पठनीय भी बनाता है।

डेटा प्रकार PostgreSQL

PostgreSQL निम्नलिखित डेटा प्रकारों का समर्थन करता है:

  • पाठ प्रकार
  • संख्यात्मक प्रकार
  • दिनांक और समय
  • एक्सएमएल
  • JSON
  • बूलियन
  • बिट्स
  • बाइनरी डेटा
  • नेटवर्क
  • Arrays
  • अपना डेटा प्रकार बनाएं
  • लौकिक
  • यूयूआईडी
  • नेटवर्क पता और ज्यामितीय डेटा संग्रहीत करने के लिए विशेष डेटा प्रकार।

आइये अध्ययन करें 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 बाइट्स IPv4 और IPv6 नेटवर्क
मंत्रिमंडल 7 या 19 बाइट्स IPv4 और IPv6 होस्ट और नेटवर्क
macaddr 6 बाइट्स मैक पते

नेटवर्क एड्रेस प्रकार का उपयोग करने के निम्नलिखित लाभ हैं

  1. भंडारण स्थान की बचत
  2. इनपुट त्रुटि जाँच
  3. सबनेट द्वारा डेटा खोजने जैसे कार्य

पाठ खोज प्रकार

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 आईएसओ 8601, 7 सितंबर 2025, किसी भी मोड में
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 बाइट्स बंद और खुला रास्ता ((एक्सएल.वाईएल),…)
Polygon 40 + 16n बाइट्स Polygon [(xl.yl),….]
चक्र 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 डेटा प्रकार प्रदान करता है

  1. JSON
  2. जेएसओएनबी
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"], "onboarded": true}');

छद्म प्रकार

PostgreSQL इसमें कई विशेष-उद्देश्य वाली प्रविष्टियाँ हैं जिन्हें छद्म-प्रकार कहा जाता है। आप छद्म-प्रकारों का उपयोग नहीं कर सकते PostgreSQL स्तंभ प्रकार। इनका उपयोग फ़ंक्शन के तर्क या रिटर्न प्रकार को घोषित करने के लिए किया जाता है।

उपलब्ध छद्म प्रकारों में से प्रत्येक उन स्थितियों में सहायक होता है, जहां किसी फ़ंक्शन के व्यवहार दस्तावेज़ किसी विशिष्ट मान को लेने या वापस करने के अनुरूप नहीं होते हैं। SQL डेटा प्रकार.

नाम विवरण
कोई फ़ंक्शन सभी इनपुट डेटा प्रकार स्वीकार करता है.
एक सरणी फ़ंक्शन किसी भी सरणी डेटा प्रकार को स्वीकार करता है।
कोई भी तत्व फ़ंक्शन किसी भी डेटा प्रकार को स्वीकार करता है.
कोई भी enum फ़ंक्शन किसी भी enum डेटा प्रकार को स्वीकार करता है।
नॉनएरे यह फ़ंक्शन किसी भी गैर-सरणी डेटा प्रकार को स्वीकार करता है।
सी स्ट्रिंग फ़ंक्शन शून्य-समाप्त C स्ट्रिंग को स्वीकार या लौटाता है।
आंतरिक आंतरिक फ़ंक्शन सर्वर-आंतरिक डेटा प्रकार को स्वीकार या लौटाता है।
भाषा_हैंडलर इसे भाषा हैंडलर लौटाने के लिए घोषित किया गया है।
अभिलेख एक ऐसा फ़ंक्शन खोजें जो अनिर्दिष्ट पंक्ति प्रकार लौटाता है।
ट्रिगर ट्रिगर फ़ंक्शन का उपयोग ट्रिगर लौटाने के लिए किया जाता है।

यह महत्वपूर्ण है कि इस फ़ंक्शन का उपयोग करने वाले उपयोगकर्ता को यह सुनिश्चित करना होगा कि जब छद्म प्रकार को तर्क प्रकार के रूप में उपयोग किया जाता है तो फ़ंक्शन सुरक्षित रूप से व्यवहार करेगा।

डेटा प्रकारों का उपयोग करने के सर्वोत्तम अभ्यास

  • जब तक आप इनपुट को सीमित नहीं करना चाहते, तब तक “टेक्स्ट” डेटा प्रकार का उपयोग करें
  • कभी भी “char” का प्रयोग न करें.
  • पूर्णांकों के लिए "int" का उपयोग करें। bigint का उपयोग केवल तभी करें जब आपके पास वास्तव में बड़ी संख्याएँ हों
  • लगभग हमेशा “संख्यात्मक” का प्रयोग करें
  • फ़्लोट का उपयोग करें PostgreSQL यदि आपके पास IEEE 754 डेटा स्रोत है

अक्सर पूछे जाने वाले प्रश्न

संख्यात्मक (दशमलव) कार्डियक प्रकार सटीक मानों को संग्रहित करते हैं और पैसे और सटीक गणनाओं के लिए आदर्श हैं। फ्लोटिंग-पॉइंट कार्डियक प्रकार (रियल और डबल) अनुमानित मानों को तेज़ प्रदर्शन के साथ संग्रहित करते हैं, लेकिन इनमें थोड़ी राउंडिंग त्रुटियां होती हैं, इसलिए सटीक वित्तीय डेटा के लिए इनसे बचें।

हां. PostgreSQL यह किसी भी कॉलम को एक बेस टाइप, जैसे कि integer[] या text[], के ऐरे को स्टोर करने की अनुमति देता है। ऐरे मानों की सूचियों के लिए उपयोगी होते हैं और क्वेरी में खोजे, अनुक्रमित और अननेस्ट किए जा सकते हैं।

मुद्रा के लिए संख्यात्मक प्रकार का उपयोग करें क्योंकि यह सटीक दशमलव मान संग्रहीत करता है। फ्लोटिंग-पॉइंट प्रकारों से बचें, क्योंकि इनमें राउंडिंग त्रुटियां हो सकती हैं। मुद्रा के लिए एक अलग प्रकार भी मौजूद है, लेकिन यह बहु-मुद्रा डेटा के लिए कम लचीला है।

एआई आपके सैंपल डेटा की समीक्षा कर सकता है और उपयुक्त प्रकारों की सिफारिश कर सकता है, जैसे कि पैसे के लिए न्यूमेरिक या फ्लेक्सिबल फ़ील्ड के लिए JSONB। यह स्टोरेज, सटीकता और प्रदर्शन में होने वाले फ़ायदों और नुकसानों को समझाता है ताकि आप आत्मविश्वास से निर्णय ले सकें।

हाँ। एआई डेटा प्रकारों को मैप कर सकता है। MySQL, Oracleया उनके लिए SQL सर्वर PostgreSQL समतुल्य और फ़्लैग बेमेल, जैसे कि TINYINT या NVARCHAR, helping आप डेटाबेस माइग्रेशन को और अधिक सुगम बनाने की योजना बना रहे हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: