PostgreSQL डेटा प्रकार: चरित्र - न्यूमेरिक - बाइनरी - बूलियन

विषय - सूची:

Anonim

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

PostgreSQL में डेटा प्रकार

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

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

आइए PostgreSQL डेटा प्रकारों का विस्तार से अध्ययन करें

  • चरित्र डाटापाइप्स
  • न्यूमेरिक डेटाटिप्स
  • बाइनरी डेटा प्रकार
  • नेटवर्क पता प्रकार
  • पाठ खोज प्रकार
  • दिनांक / समय डेटाटिप्स
  • बूलियन प्रकार
  • ज्यामितीय डेटा प्रकार
  • प्रगणित प्रकार
  • रेंज का प्रकार
  • UUID प्रकार
  • XML प्रकार
  • JSON प्रकार
  • छद्म प्रकार

चरित्र डाटापाइप्स

PostgreSQL पाठ मूल्यों को संग्रहीत करने के लिए वर्ण डेटा प्रकारों का समर्थन करता है। PostgreSQL समान आंतरिक संरचनाओं से वर्ण डेटा प्रकार बनाता है। PostgreSQL तीन चरित्र डेटा प्रकार प्रदान करता है: CHAR (n), VARCHAR (n), और TEXT।

नाम विवरण
varchar (n) आपको एक सीमा के साथ चर-लंबाई घोषित करने की अनुमति देता है
चार (n) निश्चित-लंबाई, खाली गद्देदार
टेक्स्ट असीमित लंबाई के साथ एक चर घोषित करने के लिए इस डेटा प्रकार का उपयोग कर सकते हैं

न्यूमेरिक डेटाटिप्स

PostgreSQL दो अलग-अलग प्रकार की संख्याओं का समर्थन करता है:

  • पूर्णांकों
  • दशमलव संख्याएं
नाम स्टोर का आकार रेंज
छोटा 2 बाइट्स -32768 से +32767
पूर्णांक 4 बाइट्स -2147483648 से +2147483647
बिगिन्ट 8 बाइट्स -922337203685474780808 से 9223372036854775807
दशमलव परिवर्तनशील यदि आपने इसे दशमलव डेटाटाइप के रूप में घोषित किया है, तो दशमलव बिंदु से पहले दशमलव बिंदु के बाद दशमलव बिंदु 16383 अंकों से पहले 131072 अंक तक होता है।
संख्यात्मक परिवर्तनशील यदि आप इसे संख्या के रूप में घोषित करते हैं, तो आप दशमलव बिंदु के बाद दशमलव बिंदु से पहले 16383 अंकों तक संख्या 131072 अंकों तक शामिल कर सकते हैं
असली 4 बाइट्स 6 दशमलव अंक सटीक
दोहरा 8 बाइट्स 15 दशमलव अंक सटीक

बाइनरी डेटा प्रकार

एक बाइनरी स्ट्रिंग ओकटेट्स या बाइट्स का एक अनुक्रम है। बाइनरी पोस्टग्रेज डेटा प्रकार दो प्रकारों में विभाजित हैं।

  • बाइनरी स्ट्रिंग्स मान शून्य के भंडारण की अनुमति देते हैं
  • गैर मुद्रण योग्य ओकटेट

चरित्र के तार शून्य ऑक्टेट की अनुमति नहीं देते हैं और किसी भी अन्य ऑक्टेट मूल्यों और अनुक्रमों को भी अस्वीकार कर देते हैं जो डेटाबेस के चरित्र के अनुसार एन्कोडिंग नियमों के अनुसार अमान्य हैं।

नाम भंडारण का आकार विवरण
बाइट 1 से 4 बाइट्स और बाइनरी स्ट्रिंग का आकार चर-लंबाई बाइनरी स्ट्रिंग

नेटवर्क पता प्रकार

कई एप्लिकेशन उपयोगकर्ताओं की आईपी पते जैसी नेटवर्क जानकारी संग्रहीत करते हैं या

सेंसर। PostgreSQL में तीन देशी प्रकार हैं जो आपको नेटवर्क डेटा को अनुकूलित करने में मदद करते हैं।

नाम आकार विवरण
साइडर 7 या 19 बाय IPV4 और IPv6 नेटवर्क
मंत्रिमंडल 7 या 19 बाइट्स IPV4 और IPV5 होस्ट और नेटवर्क
Macaddr 6 बाइट्स मैक पते

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

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

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

PostgreSQL दो डेटा प्रकार प्रदान करता है जो पूर्ण-पाठ खोज का समर्थन करने के लिए डिज़ाइन किए गए हैं। पूर्ण-पाठ खोज प्राकृतिक-भाषा के दस्तावेज़ों के एक संग्रह के माध्यम से खोज कर रही है ताकि उन लोगों की खोज की जा सके जो एक क्वेरी से मेल खाते हैं।

  • Tsvector पाठ खोज PostgreSQL चर प्रकार पाठ खोज के लिए अनुकूलित फ़ॉर्म में एक दस्तावेज़ का प्रतिनिधित्व करते हैं
  • क्वेरी प्रकार टेक्स्ट खोज उन कीवर्ड को संग्रहीत करता है जिन्हें खोजा जाना चाहिए

दिनांक / समय डेटाटिप्स

PostgreSQL टाइमस्टैम्प दूसरे सटीक के बजाय माइक्रोसेकंड परिशुद्धता प्रदान करता है। इसके अलावा, आपके पास समय-सीमा के साथ या इसके बिना भी भंडारण करने का विकल्प है। PostgreSQL टाइमस्टैम्प के साथ टाइमस्टैम्प को इनपुट पर UTC में बदल देगा और इसे स्टोर करेगा।

दिनांक और समय इनपुट विभिन्न प्रारूप में स्वीकार किया जाता है, जिसमें पारंपरिक पोस्टग्रैज, आईएसओ 8601 शामिल हैं। एसक्यूएल-संगत आदि।

PostgreSQL दिन / माह / वर्ष क्रम का समर्थन करता है। समर्थित प्रारूप DMY, MDY, YMD हैं

अस्थायी डेटा प्रकार

नाम आकार रेंज संकल्प
समयक्षेत्र के बिना टाइमस्टैम्प 8 बाइट्स 4713 ईसा पूर्व से 294276 ईस्वी तक 1microsecond / 14 अंक
टाइमजोन के साथ टाइमस्टैम्प 8 बाइट्स 4713 ईसा पूर्व से 294276 ईस्वी तक 1microsecond / 14 अंक
तारीख 4 बाइट्स 4713 ईसा पूर्व से 294276 ईस्वी तक एक दिन
समय के बिना समय 8 बाइट्स 00:00:00 से 24:00:00 1microsecond / 14 अंक
समयक्षेत्र के साथ समय 12 बाइट्स 00:00:00 + 1459 से 24: 00: 00-1459 1microsecond / 14 अंक
मध्यान्तर 12 बाइट्स -178000000 से 178000000 वर्ष 1microsecond / 14 अंक

उदाहरण:

इनपुट विवरण
2025-09-07 आईएसओ 8601, 7 सितंबर किसी भी तारीख शैली के साथ (अनुशंसित प्रारूप)
7 सितंबर, 2025 7 सितंबर किसी भी तारीख शैली के साथ
9/7/2025 7 सितंबर को MDY के साथ, 9 जुलाई को DMY के साथ
9/7/25 7 सितंबर, 2025, एमडीवाई के साथ
2025-सितंबर -7 7 सितंबर किसी भी तारीख शैली के साथ
सिपाही-8-२०१8 7 सितंबर किसी भी तारीख शैली के साथ
7-सिपाही -25 7 सितंबर, 2025, YMD के साथ
20250907 आईएसओ 8601,7 सितंबर 20225 किसी भी मोड में
2025.250 है वर्ष और वर्ष का दिन, इस मामले में, 7 सितंबर, 2025
J25250 जूलियन कैलेण्डर का दिन

समय क्षेत्र इनपुट के साथ समय / समय

इनपुट विवरण
11: 19: 38.507 11:19:38 11:19 111938 आईएसओ 8601
11:19 पूर्वाह्न 11:19 तक
11:19 बजे 23:19 के समान
23: 19-3 23: 19-03: 00 231900-03 आईएसओ 8601, 11:19 बजे ईएसटी के समान
23:19 ईएसटी ईएसटी के रूप में निर्दिष्ट टाइम ज़ोन, 11:19 बजे ईएसटी के रूप में

बूलियन प्रकार

एक बूलियन डेटा प्रकार धारण कर सकता है

  • सच
  • असत्य
  • शून्य

मान।

आप बूलियन डेटा प्रकार के साथ एक कॉलम घोषित करने के लिए एक बूल या बूलियन कीवर्ड का उपयोग करते हैं।

जब आप एक बूलियन कॉलम में मान सम्मिलित करते हैं, तो Postgre मूल्यों को परिवर्तित करता है

  • हाँ
  • 1
  • टी
  • सच

1 में।

जबकि मान

  • नहीं न
  • एन
  • एफ
  • असत्य

0 में परिवर्तित हो जाते हैं

डेटा का चयन करते समय, मानों को फिर से हां, सच, y, आदि में बदल दिया जाता है।

ज्यामितीय डेटा प्रकार

ज्यामितीय डेटा प्रकार दो आयामी स्थानिक वस्तुओं का प्रतिनिधित्व करते हैं। वे घुमाव, स्केलिंग, अनुवाद आदि जैसे ऑपरेशन करने में मदद करते हैं।

नाम भंडारण का आकार प्रतिनिधित्व विवरण
बिंदु 16 बाइट्स एक विमान पर इंगित करें (x, y)
लाइन 32 बाइट्स अनंत रेखा ((xl.yl)। (x2.y2))
लेसेग 32 बाइट्स परिमित रेखा खंड ((xl.yl)। (x2.y2))
डिब्बा 32 बाइट्स आयताकार बॉक्स ((xl.yl)। (x2.y2))
पथ 16n + 16n बाइट्स बंद और खुला रास्ता ((xl.yl),…)
बहुभुज 40 + 16 एन बाइट्स बहुभुज [(xl.yl)…।]
वृत्त 24 बाइट्स वृत्त <(xy) .r> (केंद्र बिंदु और त्रिज्या)

प्रगणित प्रकार

देश कोड या शाखा आईडी जैसी शायद ही कभी बदलती जानकारी का प्रतिनिधित्व करने के लिए Enumerated PostgreSQL डेटा प्रकार उपयोगी है। Enumerated डेटा प्रकार को डेटा की अखंडता सुनिश्चित करने के लिए विदेशी कुंजियों के साथ एक तालिका में दर्शाया गया है।

उदाहरण:

जनसांख्यिकीय डेटाबेस में बालों का रंग काफी स्थिर है

CREATE TYPE hair_color AS ENUM('brown','black','red','grey','blond')

रेंज का प्रकार

कई व्यावसायिक अनुप्रयोगों को रेंज में डेटा की आवश्यकता होती है। आमतौर पर, दो स्तंभ (उदाहरण: आरंभ तिथि, समाप्ति तिथि) को श्रेणियों से निपटने के लिए परिभाषित किया जाता है। यह अक्षम और बनाए रखने में मुश्किल दोनों है।

पोस्टग्रे ने निम्न प्रकार के रेंज प्रकार बनाए हैं

  • int4range - पूर्णांक की प्रदर्शन रेंज
  • int8range - बिगिन की डिस्प्ले रेंज
  • numrange - न्यूमेरिक रेंज दिखाता है
  • tstrange - आपको टाइम ज़ोन के बिना टाइमस्टैम्प प्रदर्शित करने में मदद करता है
  • अजीब - आपको समय क्षेत्र के साथ टाइमस्टैम्प प्रदर्शित करने की अनुमति देता है
  • तिथि सीमा - तिथि की सीमा

UUID प्रकार

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

PostgreSQL में एक देशी UUID डेटा प्रकार होता है जो 16 बाइट्स का भंडारण करता है ... UUID प्राथमिक कुंजी के लिए एक आदर्श डेटा प्रकार है।

उदाहरण:

d5f28c97-b962-43be-9cf8-ca1632182e8e

पोस्टग्रे सभी पूंजी मामले, कोई हाइफ़न, ब्रेस इत्यादि जैसे यूयूआईडी इनपुट के वैकल्पिक रूपों को भी स्वीकार करता है।

XML प्रकार

PostgreSQL आपको XML डेटा को डेटा प्रकार में संग्रहीत करने की अनुमति देता है, लेकिन यह एक पाठ डेटा प्रकार के विस्तार से अधिक कुछ नहीं है। लेकिन फायदा यह है कि यह जांचता है कि इनपुट XML अच्छी तरह से गठित है।

उदाहरण:

XMLPARSE (DOCUMENT 'Data Type')

JSON प्रकार

JSON डेटा संग्रहीत करने के लिए PostgreSQL 2 डेटा प्रकार प्रदान करता है

  1. JSON
  2. JSONB
जसन जसनब
JSON सत्यापन के साथ एक पाठ डेटा प्रकार का एक सरल विस्तार JSON डेटा का एक द्विआधारी प्रतिनिधित्व
सम्मिलित तेज है, लेकिन डेटा पुनर्प्राप्ति अपेक्षाकृत धीमी है। सम्मिलित धीमी है लेकिन चयन करें (डेटा पुनर्प्राप्ति तेज है)
व्हॉट्सएप सहित जिस तरह से यह इनपुट डेटा बचाता है। अनुक्रमण का समर्थन करता है। तेजी से पुनर्प्राप्ति करने के लिए व्हाट्सएप का अनुकूलन कर सकते हैं।
डेटा पुनर्प्राप्ति पर पुनरावृत्ति डेटा पुनर्प्राप्ति पर कोई पुनरावृत्ति आवश्यक नहीं है

जब तक कि JSON डेटा प्रकार का उपयोग करने के लिए कुछ विशेष आवश्यकता नहीं है, तब तक व्यापक रूप से उपयोग किए जाने वाले JSON डेटा प्रकार ने हमें jsonb का उपयोग किया।

उदाहरण:

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 डेटा प्रकार का मान लेने या वापस करने के अनुरूप नहीं होता है।

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

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

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

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

सारांश

  • PostgreSQL उपयोगकर्ताओं के लिए देशी डेटा प्रकारों का एक समृद्ध सेट प्रदान करता है
  • PostgreSQL पाठ मूल्यों को संग्रहीत करने के लिए वर्ण डेटा प्रकारों का समर्थन करता है
  • PostgreSQL दो अलग-अलग प्रकार की संख्याओं का समर्थन करता है: 1. इंटेगर, 2. फ्लोटिंग-पॉइंट नंबर
  • एक बाइनरी स्ट्रिंग बाइट्स या ओकटेट्स का एक क्रम है
  • PostgreSQL में नेटवर्क एड्रेस टाइप होता है जो आपको नेटवर्क डेटा के स्टोरेज को ऑप्टिमाइज़ करने में मदद करता है
  • पाठ खोज PostgreSQL डेटा संरचनाओं को पूर्ण-पाठ खोज का समर्थन करने के लिए डिज़ाइन किया गया है
  • दिनांक / समय PSQL डेटा प्रकार विभिन्न स्वरूपों में दिनांक और समय की जानकारी की अनुमति देते हैं
  • बूलियन पोस्टग्रैज फ़ील्ड प्रकार तीन मान रख सकते हैं 1. सच 2. गलत 3. अशक्त
  • ज्यामितीय PostgreSQL डेटा प्रकार दो-आयामी स्थानिक वस्तुओं का प्रतिनिधित्व करते हैं
  • PostgreSQL में अनगिनत डेटा प्रकार देश कोड या शाखा आईडी जैसी शायद ही कभी बदलती जानकारी का प्रतिनिधित्व करने के लिए उपयोगी है
  • यूनिवर्सली यूनिक आइडेंटिफाई (यूयूआईडी) एक 128-बिट मात्रा है जो एक एल्गोरिथ्म द्वारा उत्पन्न होती है
  • PostgreSQL में कई विशेष उद्देश्य वाली प्रविष्टियाँ हैं जिन्हें छद्म प्रकार कहा जाता है
  • जब तक आप इनपुट को सीमित नहीं करना चाहते तब तक "टेक्स्ट" डेटा प्रकार का उपयोग करना सबसे अच्छा अभ्यास है