डेटा प्रकारों के बारे में
किसी कॉलम का डेटा प्रकार परिभाषित करता है कि वह कॉलम किस प्रकार के मान रख सकता है: पूर्णांक, वर्ण, पैसा, दिनांक और समय, बाइनरी, आदि।
नोट:
विभिन्न डेटाबेस में डेटा प्रकारों के अलग-अलग नाम हो सकते हैं। हालाँकि नाम एक ही है, आकार और अन्य विवरण भिन्न हो सकते हैं! हमेशा दस्तावेज़ीकरण की जाँच करें!
SQL डेटा प्रकार
डेटाबेस तालिका में प्रत्येक कॉलम में एक नाम और एक डेटा प्रकार होना चाहिए।
तालिका बनाते समय, SQL डेवलपर को यह तय करना होगा कि प्रत्येक कॉलम में किस प्रकार का डेटा संग्रहीत किया जाएगा। डेटा प्रकार SQL के लिए यह समझने के लिए एक मार्गदर्शिका है कि प्रत्येक कॉलम में किस प्रकार का डेटा अपेक्षित है, और यह यह भी निर्धारित करता है कि SQL संग्रहीत डेटा के साथ कैसे इंटरैक्ट करेगा।
MySQL डेटा प्रकार (संस्करण 8.0)
MySQL में तीन महत्वपूर्ण डेटा प्रकार हैं: स्ट्रिंग, संख्या, और दिनांक और समय।
स्ट्रिंग डेटा प्रकार
| डेटा प्रकार | व्याख्या |
|---|---|
| CHAR(size) | एक निश्चित लंबाई वाली स्ट्रिंग (इसमें अक्षर, संख्याएं और विशेष वर्ण हो सकते हैं)। आकार पैरामीटर वर्णों में कॉलम की लंबाई को इंगित करता है - 0 से 255 तक हो सकता है। डिफ़ॉल्ट 1 है |
| VARCHAR(size) | एक परिवर्तनीय लंबाई वाली स्ट्रिंग (इसमें अक्षर, संख्याएं और विशेष वर्ण हो सकते हैं)। आकार पैरामीटर वर्णों में अधिकतम स्ट्रिंग लंबाई इंगित करता है - 0 से 65535 तक हो सकता है |
| BINARY(size) | CHAR() के समान, लेकिन बाइनरी बाइट स्ट्रिंग्स को संग्रहीत करता है। आकार पैरामीटर बाइट्स में कॉलम की लंबाई को इंगित करता है। डिफ़ॉल्ट 1 है |
| VARBINARY(size) | VARCHAR() के समान, लेकिन बाइनरी बाइट स्ट्रिंग्स को संग्रहीत करता है। आकार पैरामीटर बाइट्स में अधिकतम कॉलम लंबाई इंगित करता है। |
| TINYBLOB | बीएलओबी (बाइनरी लार्ज ऑब्जेक्ट) के लिए। अधिकतम लंबाई: 255 बाइट्स |
| TINYTEXT | अधिकतम 255 वर्णों की लंबाई वाली एक स्ट्रिंग धारण करता है |
| TEXT(size) | 65,535 बाइट्स की अधिकतम लंबाई वाली एक स्ट्रिंग धारण करता है |
| BLOB(size) | बीएलओबी (बाइनरी लार्ज ऑब्जेक्ट) के लिए। 65,535 बाइट्स तक डेटा रखता है |
| MEDIUMTEXT | 16,777,215 वर्णों की अधिकतम लंबाई वाली एक स्ट्रिंग धारण करता है |
| MEDIUMBLOB | बीएलओबी (बाइनरी लार्ज ऑब्जेक्ट) के लिए। 16,777,215 बाइट्स तक डेटा रखता है |
| LONGTEXT | 4,294,967,295 वर्णों की अधिकतम लंबाई वाली एक स्ट्रिंग धारण करता है |
| LONGBLOB | बीएलओबी (बाइनरी लार्ज ऑब्जेक्ट) के लिए। 4,294,967,295 बाइट्स तक डेटा रखता है |
| ENUM(val1, val2, val3, ...) | एक स्ट्रिंग ऑब्जेक्ट, जिसमें केवल एक मान हो सकता है, संभावित मानों की सूची से चुना गया है। एक ENUM सूची 65535 मानों तक सूचीबद्ध कर सकती है। यदि कोई ऐसा मान डाला जाता है जो सूची में नहीं है, तो एक खाली मान डाला जाता है। आपके द्वारा उन्हें दर्ज करने के क्रम में मानों को क्रमबद्ध किया जाता है |
| SET(val1, val2, val3, ...) | एक स्ट्रिंग ऑब्जेक्ट, जिसमें 0 या अधिक मान हो सकते हैं, संभावित मानों की सूची से चुना गया है। एक SET सूची 64 मानों तक सूचीबद्ध कर सकती है |
संख्यात्मक डेटा प्रकार
| डेटा प्रकार | व्याख्या |
|---|---|
| BIT(size) | एक बिट-वैल्यू प्रकार. किसी मान के लिए बिट्स की संख्या स्केल में निर्दिष्ट होती है। आकार पैरामीटर 1 से 64 तक मान रख सकता है। आकार के लिए डिफ़ॉल्ट मान 1 है। |
| TINYINT(size) | एक बहुत छोटा पूर्णांक. हस्ताक्षरित सीमा -128 से 127 है। अहस्ताक्षरित सीमा 0 से 255 है। आकार पैरामीटर अधिकतम प्रदर्शन चौड़ाई (जो 255 है) को इंगित करता है। |
| BOOL | शून्य को असत्य माना जाता है, शून्येतर मानों को सत्य माना जाता है। |
| BOOLEAN | बूल के बराबर |
| SMALLINT(size) | एक छोटा पूर्णांक. हस्ताक्षरित सीमा -32768 से 32767 है। अहस्ताक्षरित सीमा 0 से 65535 है। आकार पैरामीटर अधिकतम प्रदर्शन चौड़ाई (जो 255 है) को इंगित करता है। |
| MEDIUMINT(size) | एक मध्यम पूर्णांक. हस्ताक्षरित सीमा -8388608 से 8388607 है। अहस्ताक्षरित सीमा 0 से 16777215 है। आकार पैरामीटर अधिकतम प्रदर्शन चौड़ाई (जो 255 है) को इंगित करता है। |
| INT(size) | एक मध्यम पूर्णांक. हस्ताक्षरित सीमा -2147483648 से 2147483647 है। अहस्ताक्षरित सीमा 0 से 4294967295 है। आकार पैरामीटर अधिकतम प्रदर्शन चौड़ाई (जो 255 है) को इंगित करता है। |
| INTEGER(size) | INT(आकार) के बराबर। |
| BIGINT(size) | एक बड़ा पूर्णांक. हस्ताक्षरित सीमा -9223372036854775808 से 9223372036854775807। अहस्ताक्षरित सीमा 0 से 18446744073709551615 है। आकार पैरामीटर अधिकतम प्रदर्शन चौड़ाई (जो 255 है) को इंगित करता है। |
| FLOAT(size, d) | एक फ़्लोटिंग पॉइंट नंबर. अंकों की कुल संख्या पैमाने पर दर्शाई गई है। दशमलव बिंदु के बाद अंकों की संख्या d पैरामीटर में निर्दिष्ट है। यह सिंटैक्स MySQL 8.0.17 में अप्रचलित है, और भविष्य के MySQL संस्करणों में हटा दिया जाएगा |
| FLOAT(p) | एक फ़्लोटिंग पॉइंट नंबर. MySQL यह निर्धारित करने के लिए p मान का उपयोग करता है कि परिणामी डेटा प्रकार के लिए FLOAT या DOUBLE का उपयोग करना है या नहीं। यदि p 0 और 24 के बीच है, तो डेटा प्रकार FLOAT() में बदल जाता है। यदि p 25 और 53 के बीच है, तो डेटा प्रकार DOUBLE() हो जाता है |
| DOUBLE(size, d) | एक सामान्य आकार का फ़्लोटिंग-पॉइंट नंबर। अंकों की कुल संख्या पैमाने पर दर्शाई गई है। दशमलव बिंदु के बाद अंकों की संख्या d पैरामीटर में निर्दिष्ट है |
| DOUBLE PRECISION(size, d) | |
| DECIMAL(size, d) | एक सटीक निश्चित-बिंदु संख्या। अंकों की कुल संख्या पैमाने पर दर्शाई गई है। दशमलव बिंदु के बाद अंकों की संख्या d पैरामीटर में निर्दिष्ट है। आकार के लिए अधिकतम संख्या 65 है। d के लिए अधिकतम संख्या 30 है। आकार के लिए डिफ़ॉल्ट मान 10 है। d के लिए डिफ़ॉल्ट मान 0 है। |
| DEC(size, d) | दशमलव के बराबर(आकार,डी)। |
नोट:
सभी संख्यात्मक डेटा प्रकारों में एक अतिरिक्त विकल्प हो सकता है: अहस्ताक्षरित या शून्य भरण। यदि आप UNSIGNED विकल्प जोड़ते हैं, तो MySQL कॉलम के लिए नकारात्मक मानों की अनुमति नहीं देता है। यदि आप ZEROFILL विकल्प जोड़ते हैं, तो MySQL स्वचालित रूप से कॉलम में UNSIGNED विशेषता जोड़ता है।
दिनांक और समय डेटा प्रकार
| डेटा प्रकार | व्याख्या |
|---|---|
| DATE | एक तिथि। प्रारूप: YYYY-MM-DD। समर्थित सीमा '1000-01-01' से '9999-12-31' है |
| DATETIME(fsp) | दिनांक और समय का संयोजन. प्रारूप: YYYY-MM-DD hh:mm:ss. समर्थित सीमा '1000-01-01 00:00:00' से '9999-12-31 23:59:59' है। वर्तमान दिनांक और समय के लिए स्वचालित आरंभीकरण और अद्यतन प्राप्त करने के लिए कॉलम परिभाषा में डिफ़ॉल्ट और चालू अद्यतन जोड़ना |
| TIMESTAMP(fsp) | एक समय मोहर. टाइमस्टैम्प मान यूनिक्स समय ('1970-01-01 00:00:00' यूटीसी) के बाद से सेकंड की संख्या के रूप में संग्रहीत किए जाते हैं। प्रारूप: YYYY-MM-DD hh:mm:ss. समर्थित सीमा '1970-01-01 00:00:01' यूटीसी से '2038-01-09 03:14:07' यूटीसी तक है। वर्तमान दिनांक और समय के लिए स्वचालित आरंभीकरण और अद्यतन को कॉलम परिभाषा में DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP का उपयोग करके निर्दिष्ट किया जा सकता है। |
| TIME(fsp) | एक समय. प्रारूप: hh:mm:ss. समर्थित सीमा '-838:59:59' से '838:59:59' है |
| YEAR | चार अंकीय प्रारूप में एक वर्ष. चार-अंकीय प्रारूप में अनुमत मान: 1901 से 2155, और 0000। MySQL 8.0 दो-अंकीय प्रारूप में वर्ष का समर्थन नहीं करता है। |