परिचय
सामान्य रूप से संबंधपरक डेटाबेस की प्राथमिक विशेषताओं में से एक स्कीमा या तालिका संरचनाओं को परिभाषित करने की क्षमता है जो उनके द्वारा शामिल किए जाने वाले डेटा के प्रारूप को सटीक रूप से निर्दिष्ट करती है। यह उन स्तंभों को निर्धारित करके किया जाता है जो इन संरचनाओं में उनके डेटा प्रकार . के साथ होते हैं और कोई बाधा।
डेटा प्रकार उस डेटा के लिए एक सामान्य पैटर्न निर्दिष्ट करते हैं जिसे वे स्वीकार करते हैं और संग्रहीत करते हैं। MySQL द्वारा स्वीकार किए जाने के लिए मानों को उन आवश्यकताओं का पालन करना चाहिए जिन्हें वे रेखांकित करते हैं। हालांकि कस्टम आवश्यकताओं को परिभाषित करना संभव है, डेटा प्रकार बुनियादी बिल्डिंग ब्लॉक प्रदान करते हैं जो MySQL को इनपुट को मान्य करने और उपयुक्त संचालन का उपयोग करके डेटा के साथ काम करने की अनुमति देते हैं।
MySQL में डेटा प्रकारों की एक विस्तृत श्रृंखला शामिल है जिसका उपयोग लेबल और मान्य करने के लिए किया जाता है कि मान उपयुक्त प्रकारों के अनुरूप हैं। इस गाइड में, हम MySQL में उपलब्ध सबसे सामान्य डेटा प्रकारों, उनके द्वारा उपयोग किए जाने वाले विभिन्न इनपुट और आउटपुट स्वरूपों और आपके एप्लिकेशन की जरूरतों को पूरा करने के लिए विभिन्न क्षेत्रों को कॉन्फ़िगर करने के तरीके पर चर्चा करेंगे।
MySQL में डेटा प्रकार क्या हैं?
विस्तार में जाने से पहले, आइए विस्तृत रूप से देखें कि MySQL किस प्रकार के डेटा प्रदान करता है।
MySQL विभिन्न प्रकार के सरल और जटिल डेटा के लिए उपयुक्त डेटा प्रकारों की एक उचित श्रेणी का समर्थन करता है। इनमें शामिल हैं:
टिन्यिनट
SMALLINT
मध्यम
INT
बिगिनट
DECIMAL
NUMERIC
फ्लोट
डबल
बिट
दिनांक
DATETIME
टाइमस्टैम्प
समय
वर्ष
चार
VARCHAR
बाइनरी
वर्बिनरी
बीएलओबी
पाठ
ENUM
सेट
ज्यामिति
बिंदु
LINESTRING
पॉलीगॉन
बहु बिंदु
MULTILINESTRING
मल्टीपोलीगॉन
GEOMETRYCOLLECTION
JSON
हम इस गाइड में इनमें से सबसे सामान्य को अधिक गहराई से कवर करेंगे।
MySQL डेटा प्रकारों के साथ आरंभ करना
जैसे ही आप प्रकारों के साथ शुरुआत करते हैं, यह याद रखना महत्वपूर्ण है कि केवल प्रकार ही हमेशा डेटा सत्यापन के लिए एक पूर्ण समाधान नहीं होते हैं, बल्कि एक घटक होते हैं। अन्य डेटाबेस उपकरण, जैसे बाधाओं की भी शुद्धता को परिभाषित करने में भूमिका होती है। फिर भी, डेटा प्रकार अक्सर अमान्य डेटा से बचाव की पहली पंक्ति होते हैं।
कई मामलों में, MySQL द्वारा प्रदान किए जाने वाले सामान्य प्रकार आपके द्वारा संग्रहीत किए जाने वाले डेटा के प्रकार के लिए उपयुक्त होते हैं। उदाहरण के लिए, जबकि आप एक ज्यामितीय बिंदु के निर्देशांक को दो अलग-अलग संख्या स्तंभों में संग्रहीत कर सकते हैं, दिए गए बिंदु
प्रकार इस प्रकार की जानकारी को संग्रहीत और मान्य करने के उद्देश्य से बनाया गया है। प्रकार चुनते समय, यह देखने के लिए जांचें कि आप अपने उपयोग के मामले में लागू होने वाले सबसे विशिष्ट प्रकार का उपयोग कर रहे हैं।
संख्याएं और संख्यात्मक मान
MySQL में विभिन्न परिदृश्यों के लिए उपयुक्त संख्यात्मक डेटा प्रकारों की एक श्रृंखला शामिल है। उपयुक्त प्रकार उन मूल्यों की सटीक प्रकृति पर निर्भर करता है जिन्हें आप स्टोर करने की योजना बना रहे हैं और साथ ही आपकी सटीक आवश्यकताओं पर भी निर्भर करता है।
पूर्णांक
पूर्णांक डेटा प्रकार बिना किसी भिन्न या दशमलव के संख्याओं को संग्रहीत करने के लिए उपयोग किए जाने वाले प्रकारों की एक श्रेणी है। ये या तो सकारात्मक या नकारात्मक मान हो सकते हैं, और विभिन्न पूर्णांक प्रकार संख्याओं की विभिन्न श्रेणियों को संग्रहीत कर सकते हैं। स्वीकार्य मानों की छोटी श्रेणी वाले पूर्णांक प्रकार व्यापक श्रेणी वाले पूर्णांकों की तुलना में कम स्थान लेते हैं।
पूर्णांक प्रकारों की मूल सूची में निम्नलिखित शामिल हैं:
पूर्णांक प्रकार | <थ>लंबाईलागू हस्ताक्षरित सीमा | लागू अहस्ताक्षरित श्रेणी | |
---|---|---|---|
टिन्यिनट | 1 बाइट | -128 से 127 | 0 से 255 |
SMALLINT | 2 बाइट्स | -32768 से 32767 | 0 से 65535 |
मध्यम | 3 बाइट्स | -8388608 से 8388607 | 0 से 16777215 |
INT | 4 बाइट्स | -2147483648 से 2147483647 | 0 से 4294967295 |
बिगिनट | 8 बाइट्स | -2^63 से -2^63-1 | 0 से 2^64-1 |
उपरोक्त प्रकार उनकी मान्य सीमा द्वारा सीमित हैं। सीमा के बाहर किसी भी मान के परिणामस्वरूप त्रुटि होगी।
ऊपर वर्णित प्रकारों के अलावा, MySQL SERIAL
. नामक उपनाम को भी पहचानता है . किसी कॉलम को SERIAL
के रूप में चिह्नित करना इसे ये गुण देगा:. इसका उपयोग सामान्य प्राथमिक कुंजी कॉलम गुणों के लिए आशुलिपि के रूप में किया जाता है। जब भी कोई रिकॉर्ड जोड़ा जाता है तो कॉलम स्वचालित रूप से एक नया अद्वितीय मान निर्दिष्ट करेगा।
निश्चित बिंदु
परिशुद्धता . की मात्रा को नियंत्रित करने के लिए निश्चित बिंदु प्रकारों का उपयोग किया जाता है या दशमलव के साथ एक संख्या के लिए विशिष्टता संभव है। MySQL में, इसे दो कारकों में हेरफेर करके नियंत्रित किया जा सकता है:सटीक और स्केल।
परिशुद्धता कुल अंकों की अधिकतम राशि है जो एक संख्या हो सकती है। इसके विपरीत, पैमाना दशमलव बिंदु के दाईं ओर अंकों की संख्या है। इन संख्याओं में हेर-फेर करके, आप नियंत्रित कर सकते हैं कि किसी संख्या के भिन्नात्मक और गैर-आंशिक घटकों को कितने बड़े होने की अनुमति है।
इन दो तर्कों का उपयोग संख्यात्मक
. का उपयोग करके मनमानी सटीकता को नियंत्रित करने के लिए किया जाता है या दशमलव
डेटा प्रकार (ये दो प्रकार MySQL में समानार्थी हैं)। संख्यात्मक
प्रकार शून्य से दो तर्क लेता है।
बिना किसी तर्क के, कॉलम को 10 की सटीकता और 0 के पैमाने के रूप में परिभाषित किया गया है। इसका मतलब है कि कॉलम 10 अंकों तक हो सकता है, लेकिन इनमें से कोई भी दशमलव बिंदु के बाद नहीं हो सकता है:
NUMERIC
जब एक एकल तर्क प्रदान किया जाता है, तो इसे 0 पर सेट स्केल वाले कॉलम की सटीकता के रूप में व्याख्या किया जाता है। यह प्रभावी रूप से आपको पूर्णांक जैसी संख्या (कोई भिन्नात्मक या दशमलव घटक नहीं) में अंकों की अधिकतम संख्या निर्दिष्ट करने की अनुमति देता है। उदाहरण के लिए, यदि आपको 5 अंकों की पूर्ण संख्या की आवश्यकता है, तो आप निर्दिष्ट कर सकते हैं:
NUMERIC(5)
दोनों नियंत्रणों का उपयोग करके कॉलम को कॉन्फ़िगर करते समय स्केल के बाद सटीकता निर्दिष्ट करें। MySQL किसी भी इनपुट के दशमलव घटक को स्केल नंबर का उपयोग करके अंकों की सही संख्या में गोल करेगा। दशमलव बिंदु के बाईं ओर कितने अंकों की अनुमति है यह निर्धारित करने के लिए MySQL सटीक और पैमाने का उपयोग करेगा। यदि कोई प्रविष्टि अंकों की अनुमत संख्या से अधिक है, तो MySQL एक त्रुटि उत्पन्न करेगा।
उदाहरण के लिए, हम 5 की कुल सटीकता और 2 के पैमाने के साथ एक कॉलम निर्दिष्ट कर सकते हैं:
NUMERIC(5, 2)
इस कॉलम में निम्न व्यवहार होगा:
इनपुट मान | गोल मान | स्वीकृत (सटीक फिट बैठता है)? |
---|---|---|
400.28080 | 400.28 | हां |
8.332799 | 8.33 | हां |
11799.799 | 11799.80 | नहीं |
11799 | 11799 | नहीं |
2802.27 | 2802.27 | नहीं |
अस्थायी बिंदु
फ़्लोटिंग पॉइंट नंबर दशमलव संख्याओं को व्यक्त करने का एक और तरीका है, लेकिन सटीक, लगातार सटीकता के बिना। इसके बजाय, फ्लोटिंग पॉइंट प्रकारों में केवल अधिकतम सटीकता की अवधारणा होती है जो अक्सर हार्डवेयर के आर्किटेक्चर और प्लेटफॉर्म से संबंधित होती है।
उदाहरण के लिए, फ्लोटिंग पॉइंट कॉलम को सटीकता के 8 अंकों तक सीमित करने के लिए, आप FLOAT
का उपयोग कर सकते हैं टाइप करें, जो 0 से 23 अंकों की सटीकता के साथ कहीं भी 4 बाइट्स का उपयोग करके परिणाम संग्रहीत करता है:
FLOAT(8)
इसी तरह, डबल
प्रकार डेटा संग्रहीत करने के लिए 8 बाइट्स का उपयोग करता है और 24 से 53 अंकों की सटीकता का उपयोग कर सकता है।
इन डिज़ाइन विकल्पों के कारण, फ़्लोटिंग पॉइंट नंबर बड़ी संख्या में दशमलव के साथ कुशलता से काम कर सकते हैं, लेकिन हमेशा बिल्कुल नहीं। संख्याओं का आंतरिक प्रतिनिधित्व इनपुट और आउटपुट के बीच थोड़ा अंतर पैदा कर सकता है। मूल्यों की तुलना करते समय, फ्लोटिंग पॉइंट गणित करते समय, या सटीक मानों की आवश्यकता वाले संचालन करते समय यह अप्रत्याशित व्यवहार का कारण बन सकता है।
फ़्लोटिंग पॉइंट बनाम न्यूमेरिक
दोनों फ्लोटिंग पॉइंट नंबर FLOAT
. जैसे प्रकारों द्वारा प्रदान किए जाते हैं और डबल
और निश्चित बिंदु संख्याएं NUMERIC
. द्वारा प्रदान की गई हैं या दशमलव
दशमलव मानों को संग्रहीत करने के लिए प्रकारों का उपयोग किया जा सकता है। आप कैसे जानते हैं कि किसका उपयोग करना है?
सामान्य नियम यह है कि यदि आपको अपनी गणनाओं में सटीकता की आवश्यकता है, तो NUMERIC
प्रकार हमेशा बेहतर विकल्प होता है। NUMERIC
प्रकार मूल्यों को ठीक उसी तरह संग्रहीत करेगा जैसे वे प्रदान किए जाते हैं, जिसका अर्थ है कि मूल्यों को पुनर्प्राप्त या गणना करते समय परिणाम पूरी तरह से अनुमानित हैं। NUMERIC
प्रकार को मनमाना परिशुद्धता कहा जाता है क्योंकि आप प्रकार की सटीकता की मात्रा निर्दिष्ट करते हैं और यह फ़ील्ड में अंकों की सटीक मात्रा को संग्रहीत करेगा।
इसके विपरीत, FLOAT
. जैसे प्रकार और डबल
चर सटीक प्रकार हैं। वे कितनी सटीकता बनाए रखते हैं यह इनपुट मूल्य पर निर्भर करता है। जब वे सटीकता के अपने अनुमत स्तर के अंत तक पहुँच जाते हैं, तो वे शेष अंकों को गोल कर सकते हैं, जिससे सबमिट किए गए और पुनर्प्राप्त किए गए मानों के बीच अंतर हो सकता है।
तो आप परिवर्तनीय परिशुद्धता प्रकारों का उपयोग कब करेंगे? चर सटीक प्रकार जैसे FLOAT
और डबल
उन परिदृश्यों के लिए उपयुक्त हैं जहां सटीक मान आवश्यक नहीं हैं (उदाहरण के लिए, यदि उन्हें किसी भी तरह गोल किया जाएगा) और जब गति अत्यधिक मूल्यवान हो। परिवर्तनीय परिशुद्धता आम तौर पर NUMERIC
. पर प्रदर्शन लाभ प्रदान करेगी टाइप करें।
स्ट्रिंग प्रकार
MySQL के वर्ण प्रकार और स्ट्रिंग प्रकार दो श्रेणियों में रखे जा सकते हैं:निश्चित लंबाई और चर लंबाई . इन दोनों के बीच का चुनाव प्रभावित करता है कि कैसे MySQL प्रत्येक मान के लिए स्थान आवंटित करता है और यह कैसे इनपुट को मान्य करता है।
MySQL के भीतर सबसे सरल वर्ण-आधारित डेटा प्रकार है char
प्रकार। बिना किसी तर्क के, char
प्रकार इनपुट के रूप में एकल वर्ण को स्वीकार करता है:
CHAR
जब घोषणा में एक धनात्मक पूर्णांक प्रदान किया जाता है, तो char
कॉलम निर्दिष्ट वर्णों की संख्या के बराबर एक निश्चित लंबाई वर्ण स्ट्रिंग संग्रहीत करेगा:
CHAR(10)
यदि स्ट्रिंग कम वर्णों के साथ प्रदान की जाती है, तो रिक्त स्थान लंबाई को पैड करने के लिए जोड़ दिए जाएंगे:
इनपुट | # इनपुट वर्णों में से | संग्रहीत मान | संग्रहीत वर्णों में से# |
---|---|---|---|
'पेड़' | 4 | 'पेड़ ' | 10 |
यदि वर्णों की अनुमत संख्या से अधिक के साथ एक स्ट्रिंग दी गई है, तो MySQL एक त्रुटि उत्पन्न करेगा। इस नियम के अपवाद के रूप में, यदि अतिप्रवाहित वर्ण सभी रिक्त स्थान हैं, तो MySQL बस फ़ील्ड में फ़िट होने के लिए अतिरिक्त रिक्त स्थान को छोटा कर देगा।
निश्चित लंबाई वाले वर्ण फ़ील्ड के विकल्प चर लंबाई वाले फ़ील्ड हैं। इसके लिए MySQL varchar
. प्रदान करता है प्रकार। वर्कर
टाइप स्टोर वर्ण बिना किसी निश्चित आकार के। char
. के विपरीत , वर्कर
संग्रहीत करने के लिए वर्णों की अधिकतम संख्या निर्दिष्ट किए बिना उपयोग नहीं किया जा सकता है।
varchar
. को परिभाषित करके एक धनात्मक पूर्णांक के साथ, आप अधिकतम स्ट्रिंग लंबाई सेट कर सकते हैं:
VARCHAR(10)
यह char
. के प्रयोग से भिन्न है उस varchar
. में एक पूर्णांक के साथ टाइप करें यदि इनपुट अधिकतम फ़ील्ड लंबाई को पूरा नहीं करता है तो मान को पैड नहीं करेगा:
इनपुट | # इनपुट वर्णों में से | संग्रहीत मान | संग्रहीत वर्णों में से# |
---|---|---|---|
'पेड़' | 4 | 'पेड़' | 4 |
यदि स्ट्रिंग अधिकतम लंबाई से अधिक है, तो MySQL एक त्रुटि देगा। वही कटाव व्यवहार जो char
. में मौजूद है फ़ील्ड यहां होती हैं:यदि अतिप्रवाहित वर्ण रिक्त स्थान हैं, तो उन्हें अधिकतम वर्ण लंबाई के अंदर फ़िट करने के लिए छोटा कर दिया जाएगा।
MySQL बाइनरी
का भी समर्थन करता है और varbinary
डेटा के प्रकार। ये char
. के समान तरीके से काम करते हैं और varchar
प्रकार, लेकिन बाइनरी स्ट्रिंग्स को कैरेक्टर स्ट्रिंग्स के बजाय स्टोर करें। इसका प्रभाव इस बात पर पड़ता है कि उन्हें कैसे संग्रहीत और संचालित किया जाता है (तुलना, छँटाई, आदि जैसी चीज़ों के लिए)।
बाइनरी
. के लिए और varbinary
प्रकार, कॉलम प्रकार को परिभाषित करते समय दिया गया पूर्णांक वर्णों की संख्या के बजाय बाइट्स की संख्या को दर्शाता है।
MySQL स्ट्रिंग्स और कैरेक्टर स्टोरेज के लिए दो अन्य डेटा प्रकार प्रदान करता है blob
और पाठ
. ये प्रकार varchar
. के समान कार्य करते हैं और varbinary
क्रमशः प्रकार और बड़ी वस्तुओं के भंडारण के लिए हैं। वे ज्यादातर अपने समकक्षों के समान ही काम करते हैं, लेकिन कुछ अंतर होते हैं जैसे कि डिफ़ॉल्ट मान प्राप्त करने में सक्षम नहीं होना और इंडेक्स बनाते समय उपसर्ग लंबाई की आवश्यकता होती है।
बूलियन
MySQL में वास्तव में सही और गलत मानों का प्रतिनिधित्व करने के लिए एक देशी बूलियन प्रकार नहीं है।
MySQL प्रकारों को पहचानता है BOOL
या बूलियन
अन्य डेटाबेस सिस्टम के साथ संगतता के प्रयास में। हालाँकि, इसका आंतरिक कार्यान्वयन एक TINYINT(1)
. का उपयोग करता है मूल्यों को संग्रहीत करने के लिए कॉलम और नियमों के एक सेट के आधार पर उन्हें सही या गलत के रूप में व्याख्या करता है।
बूलियन संदर्भ में संख्यात्मक मानों की व्याख्या करते समय, 0
. का मान झूठा माना जाता है। सभी गैर-शून्य मान सत्य माने जाते हैं।
MySQL बूलियन अक्षर को पहचानता है TRUE
और गलत
और TRUE
. को रूपांतरित करता है से 1 और गलत
0 से उन्हें स्टोर करते समय।
तारीख और समय
MySQL के पास दिनांक, समय और दोनों के संयोजन का प्रतिनिधित्व करने के लिए समर्थन है।
तारीख
तारीख
प्रकार किसी संबद्ध समय मान के बिना दिनांक संग्रहीत कर सकता है:
DATE
तारीख
के लिए इनपुट संसाधित करते समय कॉलम, MySQL स्टोर करने की सही तिथि निर्धारित करने के लिए विभिन्न स्वरूपों की व्याख्या कर सकता है। हालाँकि, घटक भागों को हमेशा एक ही क्रम में आना चाहिए:वर्ष, महीना और फिर दिन। STR_TO_DATE()
फ़ंक्शन अन्य दिनांक स्वरूपों को एक प्रारूप में बदलने में सहायता के लिए उपलब्ध है जिसे MySQL सही ढंग से व्याख्यायित करेगा।
दिनांक प्रदर्शित करते समय, MySQL YYYY-MM-DD
. का उपयोग करता है प्रारूप। आप DATE_FORMAT()
. का उपयोग कर सकते हैं अन्य स्वरूपों में आउटपुट स्वरूपित करने के लिए कार्य करता है।
तारीख
type 1000-01-01
. से लेकर मानों को स्टोर कर सकता है करने के लिए 9999-12-31
।
समय
समय
डेटा प्रकार किसी संबद्ध समय क्षेत्र या दिनांक के बिना दिन का एक विशिष्ट समय संग्रहीत कर सकता है।
समय
के लिए इनपुट संसाधित करते समय कॉलम, MySQL स्टोर करने के लिए सही समय निर्धारित करने के लिए कई प्रारूपों की व्याख्या कर सकता है। जब इनपुट में कोलन होते हैं, तो इसे आमतौर पर hh:mm:ss
. के रूप में व्याख्यायित किया जाता है . कोई भी छोटा मान (केवल एक कॉलम का उपयोग करके) को hh:mm
. के उपयोग के रूप में व्याख्यायित किया जाएगा . जब इनपुट नहीं करता है कोलन हैं, तो समय को पहले सबसे छोटे मान को भरने के लिए संसाधित किया जाता है। उदाहरण के लिए, 1045
10 मिनट और 45 सेकंड के रूप में लिया जाता है।
यदि दशमलव बिंदु दिया जाता है तो MySQL भिन्नात्मक सेकंड का भी समर्थन करता है। यह दशमलव के बाद सटीकता के 6 अंकों तक संग्रहीत करता है। समय
में मान कॉलम -838:59:59.000000
. से लेकर हो सकते हैं करने के लिए 838:59:59.00000
।
समय मान प्रदर्शित करते समय, MySQL hh:mm:ss
. का उपयोग करता है प्रारूप। तारीखों की तरह, एक फ़ंक्शन प्रदान किया जाता है, जिसे TIME_FORMAT()
. कहा जाता है अन्य प्रारूपों का उपयोग करके समय मान प्रदर्शित करने के लिए।
टाइमस्टैम्प और डेटाटाइम
MySQL टाइमस्टैम्प का प्रतिनिधित्व कर सकता है, दो अलग-अलग रूपों में, समय में एक विशिष्ट क्षण का प्रतिनिधित्व करने के लिए उपयोग की जाने वाली तारीख और समय का संयोजन:टाइमस्टैम्प
का उपयोग करना टाइप करें और डेटाटाइम
टाइप करें।
डेटाटाइम
प्रकार 1000-01-01 00:00:00
. से मानों का प्रतिनिधित्व कर सकता है करने के लिए 9999-12-31 23:59:59
. इसमें समय
. के समान छह अंकों तक के भिन्नात्मक सेकंड भी शामिल हो सकते हैं टाइप करें।
टाइमस्टैम्प
प्रकार 1970-01-01 00:00:01
. से मानों का प्रतिनिधित्व कर सकता है UTC से 2038-01-19 03:14:07
UTC। यह भिन्नात्मक सेकंड भी संभाल सकता है। टाइमस्टैम्प
स्टोर करते समय मान, सभी मान दिए गए समय क्षेत्र से भंडारण के लिए यूटीसी में परिवर्तित हो जाते हैं और पुनर्प्राप्ति पर स्थानीय समय क्षेत्र में वापस परिवर्तित हो जाते हैं। डेटाटाइम
type ऐसा नहीं करता है।
MySQL 8.0.19 से आगे, आप टाइमस्टैम्प
स्टोर करते समय टाइमज़ोन ऑफ़सेट शामिल कर सकते हैं संग्रहीत मूल्य के लिए समय क्षेत्र को स्पष्ट रूप से सेट करने के लिए। आप समय घटक के बाद मान शामिल करके ऐसा करते हैं, जिसमें ऑफ़सेट को इंगित करने के लिए कोई स्थान नहीं है। स्वीकृत मानों की श्रेणी -14:00
. से जाती है करने के लिए +14:00
, जो यूटीसी से संग्रहीत मूल्य के ऑफसेट का प्रतिनिधित्व करता है।
datetime
. का उपयोग करके दिनांक और समय मानों को संग्रहीत करने का निर्णय लेते समय या समय क्षेत्र
प्रकारों के लिए, उन्हें इस आधार पर अलग करना अक्सर सहायक होता है कि वे किस चीज़ के लिए सर्वोत्तम हैं।
डेटाटाइम
के बारे में सोचें एक विशिष्ट तिथि और समय के रूप में मान, कैलेंडर और घड़ी के संबंध में जहां भी इसे पुनर्प्राप्त किया जाता है। अगर कोई व्यक्ति रात के 11 बजे बिस्तर पर जाता है, तो एक डेटाटाइम
मान उस मान का प्रतिनिधित्व कर सकता है, भले ही व्यक्ति वर्तमान में किसी भी समय क्षेत्र में हो।
दूसरी ओर, समय क्षेत्र
समय में एक विशिष्ट क्षण का प्रतिनिधित्व करने के लिए मूल्य सर्वोत्तम होते हैं जो पूरे समय क्षेत्र में स्पष्ट होता है। वीडियो कॉल आमंत्रण भेजने के लिए, एक समय क्षेत्र
value यह सुनिश्चित करने में सक्षम होगी कि बैठक सभी के लिए एक ही समय पर हो, चाहे प्रतिभागी किसी भी समय क्षेत्र में हो।
अन्य उपयोगी प्रकार
जिन प्रकारों को हमने ऊपर कुछ गहराई के साथ कवर किया है, उनमें अतिरिक्त प्रकार भी हैं जो विशिष्ट परिदृश्यों में उपयोगी होते हैं। इनका उपयोग कैसे करना है और कब उपयोगी हो सकते हैं, इसका अंदाजा लगाने के लिए हम इन्हें संक्षेप में कवर करेंगे।
गणित और सेट प्रकार
दो संबंधित प्रकार जो उपयोगकर्ताओं को एक कॉलम के लिए मान्य मान निर्धारित करने की अनुमति देते हैं, वे हैं enum
और सेट
प्रकार।
एनम
प्रकार एक स्ट्रिंग प्रकार है जो उपयोगकर्ता को कॉलम बनाते समय मान्य मानों के संग्रह को परिभाषित करने की अनुमति देता है। परिभाषित मानों में से किसी एक से मेल खाने वाला कोई भी मान स्वीकार किया जाता है और अन्य सभी मान अस्वीकार कर दिए जाते हैं। यह एक ड्रॉप डाउन मेनू के समान कार्य करता है जिसमें विकल्पों के एक विशिष्ट सेट से एक विकल्प बनाया जा सकता है। उदाहरण के लिए, एक enum
सीज़न
. कहा जाता है मूल्यों के साथ बनाया जा सकता है winter
, वसंत
, गर्मी
, और शरद ऋतु
।
एक enum
बनाने के लिए कॉलम, प्रकार को enum
. के रूप में निर्दिष्ट करें , कोष्ठकों के एक सेट के अंदर, अल्पविराम द्वारा अलग किए गए स्ट्रिंग्स के रूप में संभावित मान देना, जैसे:
season ENUM('winter', 'spring', 'summer', 'autumn')
एक समान प्रकार का उपयोगकर्ता-परिभाषित प्रकार है सेट
प्रकार। जैसे enum
टाइप करें, सेट
प्रकार उपयोगकर्ताओं को परिभाषा पर स्ट्रिंग के रूप में मान्य मान निर्दिष्ट करने की अनुमति देते हैं। इन दो प्रकारों में अंतर यह है कि एक सेट
. में , प्रत्येक रिकॉर्ड के लिए एक से अधिक मान संग्रहीत किए जा सकते हैं।
उदाहरण के लिए, यदि आपको सप्ताह के दिनों का प्रतिनिधित्व करने के लिए एक कॉलम की आवश्यकता है, तो स्वयंसेवक काम करने के लिए उपलब्ध हैं, तो आपके पास एक सेट
हो सकता है इस तरह का कॉलम:
availability SET('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday')
उपलब्धता
. के लिए मान दर्ज करते समय कॉलम हमने अभी बनाया है, आप स्वयंसेवक के उपलब्ध होने के सभी दिनों को अलग करते हुए अल्पविराम के साथ एक स्ट्रिंग प्रदान करते हैं। उदाहरण के लिए:
'monday,tuesday,wednesday,thursday,friday''sunday,saturday''monday,wednesday,friday''thursday'
सेट
के लिए MySQL में प्रकार, इनपुट में डुप्लिकेट मान हमेशा हटा दिए जाते हैं और पुनर्प्राप्ति पर, मान सेट
में उपयोग किए गए क्रम का पालन करते हैं कॉलम में इनपुट करते समय ऑर्डरिंग की परवाह किए बिना परिभाषा।
JSON
MySQL json
. का उपयोग करके JSON में कॉलम का समर्थन करता है प्रकार। डेटा json
. के रूप में संग्रहीत तेजी से निष्पादन और प्रसंस्करण के लिए बाइनरी में संग्रहीत किया जाता है ताकि सर्वर को JSON
पर संचालित करने के लिए एक स्ट्रिंग की व्याख्या करने की आवश्यकता न हो मान।
JSON
JSON
पर काम करने के लिए कॉलम, MySQL दस्तावेज़ के भीतर मूल्यों के साथ काम करने के लिए कई फ़ंक्शन प्रदान करता है।
निष्कर्ष
इस लेख में, हमने बहुत से सामान्य डेटा प्रकारों को शामिल किया है जो MySQL डेटाबेस के साथ काम करते समय उपयोगी होते हैं। इस गाइड में ऐसे अतिरिक्त प्रकार शामिल नहीं हैं जिनके बारे में जानने में मदद मिलती है, लेकिन ये अधिकांश उपयोग के मामलों के लिए एक अच्छे शुरुआती बिंदु का प्रतिनिधित्व करते हैं।
टाइप सिस्टम का उचित उपयोग करना महत्वपूर्ण है ताकि आप मान्य मानों को नियंत्रित कर सकें और डेटा पर अपेक्षित रूप से काम कर सकें। यदि आप कोई ऐसा प्रकार चुनते हैं जो आपके डेटा के लिए उपयुक्त नहीं है, तो आप में कुछ नुकसान हो सकते हैं, इसलिए अधिकांश मामलों में डेटा प्रकार के लिए प्रतिबद्ध होने से पहले इस पर विचार करना सार्थक होता है।
यदि आप अपने MySQL डेटाबेस के साथ काम करने के लिए प्रिज्मा क्लाइंट का उपयोग कर रहे हैं, तो आप प्रिज्मा के MySQL डेटा कनेक्टर डॉक्स में कुछ सामान्य MySQL और प्रिज्मा प्रकारों के बीच मैपिंग पा सकते हैं।