mysql data types what are different data types mysql
विभिन्न MySQL डेटा प्रकारों के बारे में जानें यानी न्यूमेरिक, स्ट्रिंग, दिनांक डेटा प्रकार, JSON, बूलियन, आदि।
इस ट्यूटोरियल में, हम विभिन्न डेटा प्रकारों के बारे में जानेंगे जो MySQL द्वारा समर्थित हैं। जब तालिका बनाई जाती है और मौजूदा तालिका में एक नया स्तंभ जोड़ने के लिए तालिका को अद्यतन / परिवर्तित करते समय प्रत्येक स्तंभ के विरुद्ध डेटा प्रकार निर्दिष्ट किए जाते हैं
हम तीन अलग-अलग श्रेणियों में डेटा प्रकारों के बारे में जानेंगे यानी न्यूमेरिक डेटा प्रकार, स्ट्रिंग डेटा प्रकार और डेटाटाइम डेटा प्रकार।
आप क्या सीखेंगे:
MySQL डेटा प्रकार
आवश्यक शर्तें
हम MySQL में काम कर रहे उदाहरणों के साथ सभी डेटा प्रकार सीख रहे होंगे। इसलिए अवधारणा की बेहतर समझ के लिए विवरणों के साथ MySQL को स्थापित करने की सिफारिश की गई है।
इसके अलावा, आप sql_data_types नाम का एक नमूना डेटाबेस बना सकते हैं जिसमें वे सभी तालिकाएँ होंगी जिनका हम उदाहरणों के लिए उपयोग करेंगे।
create database sql_data_types; use sql_data_types;
संख्यात्मक डेटा प्रकार
संख्यात्मक डेटा प्रकारों को 3 प्रकारों में विभाजित किया जा सकता है:
- पूर्णांक डेटा प्रकार
- निश्चित बिंदु प्रकार
- फ्लोटिंग पॉइंट प्रकार
आइए इनमें से प्रत्येक पर चर्चा करें:
पूर्णांक डेटा प्रकार
ये डेटा प्रकार किसी भी दशमलव प्रतिनिधित्व के बिना पूरी संख्या का समर्थन करते हैं। इसके विभिन्न उपप्रकार हैं - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
वाक्य - विन्यास:
INT((width)) (UNSIGNED) (ZEROFILL)
तथ्य:
विवरण | रेंज | याद | विकल्प |
---|---|---|---|
MEDIUMBLOB | 0-16,777,215 (16MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
सबसे अधिक इस्तेमाल किया संख्यात्मक प्रकार। पूरे नंबर स्टोर DEFAULT - अहस्ताक्षरित मान | -2,147,483,648 से 2,147,483,647 | 4 बाइट्स | यदि UNSIGNED विकल्प के साथ प्रयोग किया जाता है - रेंज में परिवर्तन होता है 0 से 4,294,967,295 रु चौड़ाई को शून्य से कम की चौड़ाई वाले मान के लिए प्रविष्टियों को पैड करने के लिए ZEROFILL के साथ उपयोग किया जा सकता है |
उदाहरण:
हम 1 कॉलम बनाएंगे जिसमें INT डेटा टाइप और विभिन्न विकल्प होंगे।
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
सेलेक्ट कमांड का आउटपुट:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
उपरोक्त कमांड का आउटपुट:
INT के अन्य रूप:
विशिष्ट आवश्यकताओं के आधार पर INT के लिए कई विकल्प उपलब्ध हैं। ये आमतौर पर तब उपयोग किए जाते हैं जब मेमोरी या स्पेस एक चिंता का विषय होता है, लेकिन सभी व्यावहारिक उद्देश्यों के लिए, INT सबसे व्यापक रूप से उपयोग किया जाता है।
INT डेटा प्रकार के विभिन्न प्रकार उपलब्ध हैं जो नीचे सूचीबद्ध हैं:
डेटा प्रकार | रेंज | उदाहरण | मेमोरी / बाइट्स का उपयोग किया जाता है |
---|---|---|---|
टिनिनेट | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | दो |
मध्यस्थ | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | ३ |
BIGINT | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | । |
फ्लोटिंग पॉइंट प्रकार
फ्लोटिंग प्वाइंट प्रकार अनुमानित मूल्य प्रकार हैं और यह संख्या पर निर्भर करता है। स्तंभ प्रकार की घोषणा के दौरान निर्दिष्ट दशमलव बिंदु परिशुद्धता।
फ्लोटिंग-पॉइंट डेटा प्रकार 2 प्रकार के होते हैं: FLOAT और DOUBLE जो विभिन्न श्रेणियों का समर्थन करते हैं और मेमोरी / स्टोरेज की खपत करते हैं।
फ्लोट और डबल
नए अनुशंसित सिंटैक्स के अनुसार - FLOAT और DOUBLE परिशुद्धता दोनों को केवल FLOAT डेटा प्रकारों का उपयोग करके निर्दिष्ट किया जा सकता है।
वाक्य - विन्यास:
FLOAT(p)
यहाँ, पी -> सटीक
तथ्य:
विवरण | याद | विकल्प | उदाहरण |
---|---|---|---|
FLOAT / DOUBLE अनुमानित मूल्यों के साथ फ्लोटिंग पॉइंट नंबरों का प्रतिनिधित्व करता है अर्थात। जब MySQL इन मूल्यों को संग्रहीत करता है, तो ये मान घोषित प्रकार के अनुसार निकटतम परिशुद्धता के लिए अनुमानित होते हैं। 0-23 के बीच परिशुद्धता FLOAT प्रकार का प्रतिनिधित्व करता है, जबकि 24 से 53 एक डबल प्रकार का उपभोग करेगा जो 8 बाइट्स का होगा | -प्रतीक्षा - ०-२३ => ४ बाइट्स -प्रतिष्ठा -24-53 => 8 बाइट्स | -फ्लोटिंग पॉइंट नंबर्स को SIGNED के साथ-साथ UNSIGNED भी किया जा सकता है -FFLOAT आम तौर पर 7 दशमलव स्थानों तक सटीक होता है जबकि DOUBLE 14 दशमलव बिंदुओं तक सटीक होता है -इसके अलावा सटीक बिंदुओं के विनिर्देश के साथ FLOAT और DOUBLE घोषित करने का एक और गैर मानक तरीका है FLOAT (n, d) - जहाँ n कुल अंक है और d दशमलव अंक का नहीं है | स्तंभ डेटा डेटा प्रकार के साथ तालिका बनाएँ TABLE नंबर_double (double_col FLOAT (30)); एक स्तंभ के साथ तालिका बनाएँ डेटा प्रकार और सटीक अंक 5 के रूप में TABLE नंबर_double (double_col DOUBLE (20,5)); |
आइए, दो प्रकारों के मूल्यों को पुनः प्राप्त करने के कुछ उदाहरण देखें:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
सेलेक्ट स्टेटमेंट का आउटपुट:
हम यहां देख सकते हैं कि मान डेटा प्रकार घोषणा के दौरान निर्दिष्ट 5 दशमलव बिंदुओं तक संग्रहीत हैं।
निश्चित बिंदु प्रकार
इन डेटा प्रकारों का उपयोग निर्धारित सटीकता के साथ एक सटीक मान संग्रहीत करने के लिए किया जाता है। ये डेटा प्रकार आमतौर पर सटीक सटीक भंडारण की आवश्यकता होने पर उपयोग किए जाते हैं। उदाहरण के लिए, बैंक के पास 2 दशमलव बिंदुओं के साथ संतुलन बनाए रखने की आवश्यकता है, हमें सटीक सटीकता के साथ डेटा संग्रहीत करने की आवश्यकता है।
DECIMAL / NUMERIC
वाक्य - विन्यास:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
तथ्य:
विवरण | रेंज | याद | विकल्प |
---|---|---|---|
DECIMAL MySQL में एक संख्यात्मक डेटा प्रकार है और सटीक निर्दिष्ट किए गए सटीक मान संग्रहीत करता है। DECIMAL डेटा प्रकार के लिए डिफ़ॉल्ट स्केल या चौड़ाई 10 और 0 परिशुद्धता है। कृपया ध्यान दें कि DECIMAL और NUMERIC के प्रकारों का परस्पर विनिमय किया जा सकता है। | निर्दिष्ट सीमा पर निर्भर करता है उदाहरण के लिए DECIMAL (5,2) की रेंज -999.99 से 999.99 होगी | MySQL उपयोगकर्ता बाइनरी प्रारूप को DECIMAL डेटा प्रकार स्टोर करने के लिए - इसके लिए हर 9 अंकों के लिए चार बाइट्स की आवश्यकता होती है - इसलिए उदाहरण के लिए, अगर हमारे पास DECIMAL (14,2) है - को कुल - 9 (4) + 2 (1) => 7 बाइट्स की आवश्यकता होगी | -चौड़ाई का मान 265 हो सकता है दशमलव की संख्या वैकल्पिक है और डिफ़ॉल्ट मान 0 है |
उदाहरण:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
डेटटाइम डेटा प्रकार
MySQL में डेटटाइम डेटा प्रकार, जैसा कि नाम से पता चलता है, का उपयोग MySQL डेटाबेस में दिनांक और समय मानों को संग्रहीत करने के लिए किया जाता है।
MySQL द्वारा समर्थित 2 लौकिक प्रकार हैं - डाइटटाइम और टाइमस्टैम्प
नीचे दिए गए अनुभागों में इन दोनों पर चर्चा करें।
दिनांक और समय
वाक्य - विन्यास:
DATETIME(n)
यहाँ, n -> सटीक / अंश भाग सेकंड (अधिकतम परिशुद्धता समर्थित 6) है।
तथ्य:
विवरण | रेंज | याद | उदाहरण |
---|---|---|---|
MySQL कॉलम में दिनांक और समय संग्रहीत करने के लिए उपयोग किया जाता है जब बोली, नीचे प्रारूप में कॉलम डेटा डिस्प्ले डेटाइम: YYYY-MM-DD HH: MM: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 बाइट्स जब एक भिन्नात्मक भाग शामिल होता है तो प्रत्येक 2 भिन्नात्मक अंकों के लिए एक अतिरिक्त बाइट का सेवन किया जाता है। | CREATE table datetime_example(date_col DATETIME); // OUTPUT date_col 2020-08-08 22:22:53 |
TIMESTAMP
वाक्य - विन्यास:
TIMESTAMP(n)
यहाँ, n -> सेकंड का सटीक / आंशिक अंश (अधिकतम परिशुद्धता समर्थित 6 है)
तथ्य:
विवरण | रेंज | याद | उदाहरण |
---|---|---|---|
डेटाटाइम को संग्रहीत करने के लिए उपयोग किया जाने वाला एक अन्य अस्थायी डेटा प्रकार। यह समय 1970 और 2038 के बीच सीमित सीमा के साथ UTC के रूप में है | 1970-01-01 00:00:01 यूटीसी - 2038-01-19 03:14:07 यूटीसी | 4 बाइट्स | CREATE table timestamp_example(ts_col TIMESTAMP); आउटपुट ts_col 2020-08-08 22:19:11 |
स्ट्रिंग डेटा प्रकार
स्ट्रिंग डेटा प्रकार, जैसा कि नाम से पता चलता है, का उपयोग डेटाबेस में तार / ग्रंथों या पाठ संबंधी जानकारी के ब्लब्स को संग्रहीत करने के लिए किया जाता है। उपयोग के मामले के आधार पर इस तरह के अलग-अलग प्रकार के डेटा उपलब्ध हैं- VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET और BLOB
उदाहरण के साथ इन विभिन्न डेटा प्रकारों में से प्रत्येक को समझने दें।
चार और वरच
इन दोनों प्रकारों का उपयोग MySQL में स्तंभों में स्ट्रिंग मानों को संग्रहीत करने के लिए किया जाता है, लेकिन वे भिन्न होते हैं कि मान कैसे संग्रहीत और पुनर्प्राप्त किए जाते हैं।
CHAR & VARCHAR को लंबाई के साथ घोषित किया जाता है, जो उस स्ट्रिंग की अधिकतम लंबाई को इंगित करता है जिसे आप कॉलम में संग्रहीत करना चाहते हैं।
वाक्य - विन्यास:
CHAR(n) VARCHAR(n)
यहां, n -> अधिकतम सं। स्तंभ द्वारा संग्रहीत किए जाने वाले वर्ण
तथ्य:
प्रकार | विवरण | रेंज | उदाहरण |
---|---|---|---|
CHAR सिंटैक्स - CHAR (n) | घोषणा के दौरान CHAR as n 'लंबाई स्ट्रिंग को स्टोर कर सकता है। यदि स्ट्रिंग n वर्ण से कम है, तो यह रिक्त स्थान के साथ गद्देदार है। | CHAR डेटा प्रकार की लंबाई 0 - 255 से भिन्न हो सकती है लंबाई के आधार पर, मेमोरी की खपत 0 - 255 बाइट्स से होती है। | CREATE TABLE string_example(char_col CHAR(50)); |
वाराह सिंटेक्स - VARCHAR (n) | VARCHAR आपको चर लंबाई स्ट्रिंग्स को संग्रहीत करने और स्तंभ परिभाषा के दौरान निर्दिष्ट अधिकतम मान के बजाय संग्रहीत स्ट्रिंग के वास्तविक आकार के विरुद्ध मेमोरी का उपभोग करने की अनुमति देता है। | VARCHAR डेटा प्रकार की लंबाई 0 - 65535 से भिन्न हो सकती है लंबाई के आधार पर, मेमोरी की खपत 0 - 65535 बाइट्स से होगी। | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINARY और VARBINARY
CHAR और VARCHAR के समान - ये डेटा प्रकार स्ट्रिंग्स को स्टोर करते हैं लेकिन बाइनरी प्रारूप में।
BINARY और VARBINARY डेटा प्रकारों की लंबाई CHAR और VARCHAR डेटा प्रकारों में वर्णों की संख्या के विपरीत बाइट्स में मापी जाती है।
वाक्य - विन्यास:
BINARY(n) VARBINARY(n)
यहां, n -> अधिकतम सं। कॉलम द्वारा संग्रहीत करने के लिए बाइट्स का।
तथ्य:
प्रकार | विवरण | रेंज | उदाहरण |
---|---|---|---|
बायनरी सिंटैक्स - BINARY (n) | बायनेरी ’एन’ बाइनरी बाइट्स को स्टोर कर सकता है। N से कम मानों के लिए वे 0 बाइट के साथ सही गद्देदार होते हैं और संग्रहीत होते हैं | BINARY डेटा प्रकार की लंबाई 0 - 255 से भिन्न हो सकती है लंबाई के आधार पर, मेमोरी की खपत 0 - 255 बाइट्स से होती है। | CREATE TABLE binary_string(binary_col BINARY(50)); |
वार्बिनरी सिंटेक्स - VARBINARY (n) | VARBINARY आपको binary n लंबाई (कॉलम परिभाषा में निर्दिष्ट) तक वैरिएबल लंबाई बाइनरी स्ट्रिंग्स को स्टोर करने की अनुमति देता है | VARBINARY डेटा प्रकार की लंबाई 0 - 65535 से भिन्न हो सकती है लंबाई के आधार पर, मेमोरी की खपत 0 - 65535 बाइट्स से होगी। | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
आइए BINARY डेटा प्रकार को और अधिक विस्तार से समझें। हम बाइनरी और वर्बिनरी डेटा प्रकार के प्रत्येक कॉलम के साथ एक टेबल बनाएंगे और सामग्री का निरीक्षण करेंगे।
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
अब हमने आउटपुट को BLOB के रूप में देखा है जिसका अर्थ है - ख inary एल खराब ओबी ject - और ये कुछ भी नहीं हैं बल्कि बाइनरी / हेक्स का प्रतिनिधित्व करते हैं जो स्ट्रिंग के मानों को कॉलम में सम्मिलित करते हैं।
अब हम इन बाइनरी स्ट्रिंग्स के मूल्यों का निरीक्षण करेंगे और देखेंगे कि उन्हें कैसे संग्रहीत किया जाता है।
सबसे पहले, 'बाइनरी_ कलर' में मौजूद मान को देखें जो कि BINARY डेटा प्रकार का है।
आइए समझते हैं कि कौन से मूल्य संग्रहीत किए जा रहे हैं - यदि आप पहले 5 प्रविष्टियों के खिलाफ मान नोटिस करते हैं - यानी पहली पंक्ति और पहली 5 कॉलम (0-4)
ये स्ट्रिंग lo हैलो ’के पात्रों के लिए केवल HEX अभ्यावेदन हैं जिन्हें हमने संग्रहीत किया है।
अब चूंकि यह BINARY डेटा प्रकार की लंबाई 50 है, इसलिए हम देख सकते हैं कि बाकी बाइट्स को is 00 'मानों के साथ रखा गया है, जो अंक ’0' के लिए बाइट प्रतिनिधित्व के अलावा कुछ नहीं है।
B varbinary_col ’में मौजूद मान देखें जो कि VARBINARY डेटा प्रकार का है।
यहाँ, VARBINARY के लिए, आप देख सकते हैं कि मान सिर्फ 5 की लंबाई के लिए आबाद हैं, जो हमारे द्वारा संग्रहीत स्ट्रिंग की लंबाई के बराबर है। 50 की लंबाई के VARBINARY कॉलम घोषित करने के बावजूद कोई ज़ीरो पैडिंग नहीं है।
BLOB और पाठ
BLOB और TEXT डेटा प्रकार, BINARY और CHAR डेटा प्रकारों के समान हैं, जिसमें वे अपने मूल समकक्षों के मुकाबले बड़े आकार का समर्थन कर सकते हैं।
यह नोट करना महत्वपूर्ण है कि BLOB डेटा को बाइनरी स्ट्रिंग्स के रूप में संग्रहीत करता है जबकि TEXT डेटा प्रकार गैर-बाइनरी स्ट्रिंग्स के रूप में संग्रहीत करता है। इसके अलावा, इन सभी डेटा प्रकारों को डेटा प्रकार का उल्लेख करते समय लंबाई निर्दिष्ट करने की आवश्यकता नहीं है। वे स्वभाव में स्वाभाविक रूप से चर लंबाई हैं और केवल वास्तविक स्तंभ मान के रूप में संग्रहीत स्मृति के विरुद्ध स्मृति का उपभोग करते हैं।
BLOB डेटा प्रकार आमतौर पर छवियों को संग्रहीत करने के लिए उपयोग किया जाता है जैसे कि छवियाँ, पीडीएफ दस्तावेज़, आदि एक सुरक्षित और कुशल तरीके से बाइनरी स्ट्रिंग्स के रूप में।
BLOB और TEXT डेटा प्रकारों के विभिन्न प्रकारों के बारे में विवरण नीचे सूचीबद्ध हैं:
प्रकार | रेंज | विवरण | उदाहरण |
---|---|---|---|
TINYTEXT | 0-255 (255 बाइट्स) | रेंज VARCHAR की तरह ही है - जिसका इस्तेमाल छोटी-छोटी जानकारी जैसे शीर्षक, लेखक के नाम आदि के भंडारण के लिए किया जाता है। | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
पाठ | 0-65535 (64KB) | यह डेटा प्रकार एक छोटे से मध्यम आकार के लेख के लिए पाठ को संग्रहीत करने के लिए पर्याप्त है। | CREATE TABLE text_example(text_col TEXT); |
मेडिटेट | 0-16,777,215 (16MB) | यह डेटा प्रकार संपूर्ण पाठ्यपुस्तक के लिए पाठ को संग्रहीत करने के लिए पर्याप्त हो सकता है | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
लम्पट | 0 - 4,294,967,295 (4 जीबी) | LONGTEXT का उपयोग शायद ही कभी उन मामलों में किया जाता है जहां MEDIUMTEXT पर्याप्त नहीं है। | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
टिनिब्बल | 0-255 (255 बाइट्स) | सभी BLOB डेटा प्रकारों का उपयोग बाइनरी स्ट्रिंग्स को संग्रहीत करने के लिए किया जाता है और आमतौर पर छवियों, पीडीएफ दस्तावेजों या छोटे अनुप्रयोगों जैसे फ़ाइलों को संग्रहीत करने के लिए पसंद किया जाता है। आकार की आवश्यकताओं के आधार पर, विभिन्न BLOB डेटा प्रकारों को चुना और उपयोग किया जा सकता है। | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
ब्लॉब | 0-65535 (64KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4,294,967,295 (4 जीबी) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM एक स्ट्रिंग डेटा प्रकार है जो एक स्तंभ के लिए अनुमत मानों को पूर्व निर्धारित करता है। यह ENUM डेटा प्रकारों के समान है जो विभिन्न प्रोग्रामिंग भाषाओं जैसे कि JAVA, C #, आदि में मौजूद हैं।
ENUM मान, जब संग्रहीत प्रत्येक स्तंभ मान के विरुद्ध संख्याओं में परिवर्तित हो जाते हैं, जिसके परिणामस्वरूप तालिकाओं की एक बड़ी संख्या के साथ रिकॉर्ड नहीं होने वाले तालिकाओं के लिए काफी मेमोरी सेविंग होती है, मान लें कि हमारे पास ENUM मान हैं - value1, value2, और value3 तो वास्तविक मेमोरी संग्रहण संख्यात्मक होगा पर्दे के पीछे 1,2,3 अनुक्रमित।
वाक्य - विन्यास:
ENUM({comma separated enum values})
उदाहरण प्रश्न:
स्ट्रिंग और कंपनी के नाम के रूप में मोबाइल मॉडल को स्टोर करने के लिए 2 कॉलम के साथ एक तालिका बनाएं जैसे कि ENUM डेटा प्रकार में मान हैं - APPLE, सैमसंग और NOKIA। आइए किसी विशेष ENUM मान के विरुद्ध डेटा प्राप्त करने के लिए क्वेरीज़ देखें।
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
उपरोक्त क्वेरी में, आप देख सकते हैं कि हमने Enum नामों के साथ-साथ डालने के दौरान संख्यात्मक अनुक्रमित दोनों का उपयोग किया है।
आइए हम सभी मोबाइल उपकरणों को 'नाम' के साथ-साथ सैमसंग के संख्यात्मक सूचकांक के खिलाफ क्वेरी करने के लिए 'सैमसंग' जो '1' है, क्वेरी करें।
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
उपरोक्त दोनों प्रश्नों का आउटपुट नीचे बताए अनुसार ही होगा:
सेट
MySQL SET डेटाटाइप एक स्ट्रिंग ऑब्जेक्ट है जो कॉलम परिभाषा के दौरान वर्णित अनुमत सीमा से एक या एक से अधिक मान हो सकता है। यह ENUM के समान है लेकिन यह परिभाषित सूची से कई मानों को स्तंभ मान के रूप में संबद्ध करने की अनुमति देता है।
इसके अलावा, SET डेटा प्रकार 2 ^ 0 से शुरू होने वाले नंबर इंडेक्स के रूप में संग्रहीत किए जाते हैं - अर्थात 1,2,4,8 आदि।
वाक्य - विन्यास:
SET({comma separated list of allowed values})
उदाहरण:
उदाहरण के साथ SET डेटा प्रकार को समझने की कोशिश करते हैं। हम String प्रकार के कॉलम मॉडल और समर्थित OS नाम के कॉलम के साथ mobile_details नामक एक तालिका बनाएंगे जो एक सेट डेटा प्रकार है और इसमें समर्थित ऑपरेटिंग सिस्टम संस्करणों की एक सूची है।
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
हम देख सकते हैं कि हमने SET डेटा प्रकार वाले कॉलम के भाग के रूप में ऑपरेटिंग सिस्टम मानों को सूचीबद्ध किया है। इन्हें निर्दिष्ट किए जाने वाले संबंधित DECIMAL मान नीचे सूचीबद्ध हैं:
अब, यदि हम SET मान निर्दिष्ट करना चाहते हैं, उदाहरण के लिए, ‘Android8, android9’ एक पंक्ति में हम केवल निर्दिष्ट दशमलव मानों को जोड़ने के लिए असाइन कर सकते हैं अर्थात् 12 का समान प्रभाव।
कृपया ‘GALAXYM1’ के नाम के साथ पंक्ति लगाने के लिए ऊपर दिए गए INSERT क्वेरी का संदर्भ लें
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
उपरोक्त कमांड का आउटपुट:
हम उनके दशमलव प्रतिनिधित्व के खिलाफ SET कॉलम को भी क्वेरी कर सकते हैं - मान लें कि हम query ios9, ios10 'के लिए क्वेरी करना चाहते हैं - दशमलव प्रतिनिधित्व का योग 3 है, इसलिए हम इस प्रकार क्वेरी कर सकते हैं:
SELECT * from mobile_details where supported_os=3
आउटपुट:
विशेष डेटा प्रकार
बूलियन
MySQL बूलियन डेटा प्रकार TRUE या FALSE के रूप में एक स्तंभ मान संग्रहीत करता है। यह डेटा प्रकार आमतौर पर MySQL तालिकाओं में ध्वज मूल्यों को संग्रहीत करने के लिए अनुकूल है। उदाहरण के लिए - एक बैंक खाता तालिका जिसका नाम is_savings_account है, सही या गलत संग्रहीत कर सकता है।
BOOLEAN मूल्य क्रमशः TRUE और FALSE के लिए MySQL में 1 या 0 के रूप में संग्रहीत किया जाता है।
वाक्य - विन्यास:
columnName BOOLEAN
उदाहरण:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
BOOLEAN डेटा प्रकार के लिए मान सम्मिलित या पुनर्प्राप्त करते समय हम या तो TRUE या FALSE या उनके संख्यात्मक निरूपण - अर्थात 1 या 0 का उपयोग कर सकते हैं।
select * from account_details where is_savings=1;
उपरोक्त आदेश का आउटपुट:
JSON
MySQL JSON नोटेशन में ऑब्जेक्ट्स के डेटा प्रकार के रूप में देशी JSON का समर्थन करता है। यह टेक्स्ट स्ट्रिंग्स या बाइनरी ब्लब्स के रूप में संग्रहीत करने के बजाय JSON प्रकार दस्तावेजों के लिए भंडारण, क्वेरी और पुनर्प्राप्ति को आसान बनाता है।
वाक्य - विन्यास:
columnName JSON
तथ्य:
परिभाषा | रेंज | उदाहरण |
---|---|---|
JSON डेटा प्रकार का उपयोग JSON प्रारूप में दस्तावेज़ों को संग्रहीत करने के लिए किया जाता है। JSON के रूप में परिभाषित कोई भी स्तंभ त्रुटि को फेंक देगा यदि अमान्य JSON को INSERT क्वेरी द्वारा संग्रहीत किया जाता है। | JSON डेटा प्रकार की सीमा या आकार LONGTEXT या LONGBLOB के समान है | CREATE TABLE json_example(json_col JSON); |
उदाहरण:
MySQL JSON डेटा को क्वेरी करने के लिए अलग-अलग फ़ंक्शन प्रदान करता है। आइए JSON के नीचे सम्मिलित करने का प्रयास करें और फिर हम MySQL फ़ंक्शन को क्वेरी करने के लिए देखेंगे।
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
आइए JSON डेटा डालें और टेबल बनाने के लिए कमांड देखें।
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
तालिका को क्वेरी करें और तालिका के पंक्तियों में संग्रहीत JSON डेटा से पहला नाम और ईमेल फ़ील्ड प्रिंट करें।
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
आउटपुट:
बार बार पूछे जाने वाले प्रश्न
Q # 1) एक बार असाइन किए गए MySQL कॉलम के लिए हम डेटा प्रकार कैसे बदल सकते हैं?
उत्तर: स्तंभ के डेटा प्रकार का उपयोग करके बदला जा सकता है पहले से आदेश ।
एक तालिका student_info पर विचार करें जिसमें क्रमशः 2 कॉलम नाम और आयु प्रकार VARCHAR और INT है। इसे निम्नलिखित क्रिएट टेबल कमांड का उपयोग करके प्राप्त किया जा सकता है:
CREATE TABLE student_info(name CHAR(20), age INT);
इस आदेश में कुछ भिन्नताएँ हैं
तकनीकी सहायता साक्षात्कार प्रश्न और फ्रेशर्स के उत्तर
- यदि हम कॉलम के सिर्फ डेटा प्रकार को बदलना चाहते हैं - हम ALTER के साथ MODIFY कमांड का उपयोग कर सकते हैं
उपरोक्त सारणी के अनुसार, हम आयु कॉलम को बदलना चाहते हैं जिसे हम निम्नलिखित कमांड का उपयोग कर सकते हैं
ALTER TABLE student_info MODIFY age TINYINT
- अगर हम कॉलम का नाम और साथ ही कॉलम का डेटा टाइप बदलना चाहते हैं - हम ALTER के साथ CHANGE कमांड का उपयोग कर सकते हैं
उपरोक्त तालिका के अनुसार, हम कॉलम के नाम को to नाम ’से’ sname ’में बदलना चाहते हैं और CHAR से VARCHAR (50) तक डेटा प्रकार हम निम्नलिखित कमांड का उपयोग कर सकते हैं:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Q # 2) mysql में छवि के लिए डेटा प्रकार क्या है?
उत्तर: MySQL में किसी भी प्रकार की फाइल को स्टोर करने के लिए जैसे इमेज, पीडीएफ आदि BLOB या बाइनरी डेटा टाइप सबसे अनुकूल प्रकार है। हमारे द्वारा संग्रहित लक्ष्य फ़ाइल के आकार के आधार पर बीएलओबी डेटा प्रकार के विभिन्न प्रकार उपलब्ध हैं। हम BLOB के वेरिएंट का उपयोग कर सकते हैं जैसे - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
Q # 3) mysql में दस्तावेजों को संग्रहीत करने के लिए कौन सा डेटाटाइप अधिक उपयुक्त है?
उत्तर: छवियों या पीडीएफ फाइलों के लिए BLOB के समान, पाठ दस्तावेज़ों / लेखों को संग्रहीत करने के लिए, TEXT डेटा प्रकार का उपयोग किया जा सकता है। यह अतिरिक्त वर्ण संग्रहण के समर्थन के साथ CHAR डेटा प्रकार का विस्तार है।
उपलब्ध TEXT डेटा प्रकार के विभिन्न प्रकार हैं - पाठ, TINYTEXT, MEDIUMTEXT और LONGTEXT
Q # 4) MySQL में मुद्रा के लिए डेटा प्रकार क्या है?
उत्तर: मुद्रा मूल्यों के लिए डेटा संग्रहीत करने के लिए, सबसे अनुकूल डेटा प्रकार DECIMAL है। इसका उपयोग सटीक प्रकार के साथ डेटा प्रकारों को संग्रहीत करने के लिए किया जाता है। उदाहरण के लिए, DECIMAL (4,2) के साथ एक स्तंभ नाम, -99.99 से 99.99 की सीमा में मूल्यों को संग्रहीत करेगा और इसके विपरीत पुनर्प्राप्ति पर समान परिशुद्धता के साथ मान लौटाएगा। फ़्लोटिंग पॉइंट संख्याओं के लिए सन्निकटन।
Q # 5) यदि कोई व्यक्ति UNSIGNED पूर्णांक स्तंभों के लिए ऋणात्मक संख्याएँ डालने का प्रयास करता है तो क्या होगा?
उत्तर: MySQL ऐसे इंसर्ट स्टेटमेंट के लिए एक त्रुटि उत्पन्न करता है
आइए UNSIGNED विकल्प वाले INT कॉलम के साथ एक टेबल बनाने की कोशिश करें।
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
Q # 6) mysql में करंट डेट डेटा कैसे प्राप्त करें?
उत्तर: MySQL वर्तमान मान प्राप्त करने के लिए अंतर्निहित दिनांक समय कार्यों में 2 प्रदान करता है
CURDATE () फ़ंक्शन वर्तमान तिथि देता है
SELECT CURDATE();
उत्पादन
2020-08-10
अब () फ़ंक्शन टाइमस्टैम्प के साथ वर्तमान तिथि लौटाता है।
SELECT NOW();
उत्पादन
2020-08-10 00:42:54
Q # 7) CHAR और VARCHAR में से - कौन अधिक उपयुक्त है?
उत्तर: VARCHAR चर वर्ण के लिए खड़ा है और उसी लंबाई के CHAR के मुकाबले कम मेमोरी का उपभोग करने का एक महत्वपूर्ण लाभ है। उदाहरण के लिए, VARCHAR (50) के साथ एक स्तंभ अगर लंबाई 20 के तारों को संकलित करता है, तो CHAR (50) के साथ घोषित डेटा प्रकार के विपरीत सिर्फ 20 बाइट्स की खपत होगी।
Q # 8) MySQL में ENUM मान कैसे अपडेट करें?
उत्तर: MySQL में ENUM कॉलम अपडेट करने के लिए, आपको मौजूदा कॉलम मानों का उल्लेख करते हुए संशोधित करना होगा ताकि मौजूदा प्रविष्टियाँ बरकरार रहें।
आइए इसे एक उदाहरण से समझने की कोशिश करें।
मान लीजिए कि हमारे पास एक मोबाइल फ़ील्ड है, जिसका नाम String (VARCHAR) और ब्रांड कॉलम के रूप में एक मॉडल फ़ील्ड है, जिसमें ENUM as APPLE ’, SAMSUNG’ और IA NOKIA ’के रूप में प्रारंभिक मान हैं
अब, मान लीजिए कि हम मौजूदा एनम में एक और ब्रांड नाम 'मोटरोला' जोड़ना चाहते हैं। आइए उन प्रश्नों को देखें जिन्हें हमें निष्पादित करने की आवश्यकता है।
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
एक बार बनाने के बाद, आप DESCRIBE कमांड का उपयोग करके मूल ENUM मानों का विवरण प्राप्त कर सकते हैं
DESCRIBE mobile_details;
अब ENUM अपडेट करने के लिए कमांड को रन करें
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
हम फिर से DESCRIBE कमांड चला सकते हैं यह देखने के लिए कि क्या अपडेट सफलतापूर्वक लागू हुए हैं।
DESCRIBE mobile_details
यहाँ उपरोक्त कमांड का आउटपुट है:
निष्कर्ष
इस ट्यूटोरियल में हमने विभिन्न डेटा प्रकारों के बारे में सीखा जो MySQL द्वारा समर्थित हैं।
हमने सिंटैक्स और विभिन्न उदाहरणों के साथ न्यूमेरिक, फ्लोटिंग, स्ट्रिंग और डेट टाइम डेटा प्रकारों के बारे में सीखा।
MySQL डेटा प्रकार आरंभ करने के लिए नींव निर्माण ब्लॉक हैं और MySQL स्कीमा डिज़ाइन के दौरान सबसे महत्वपूर्ण पहलुओं में से एक है।
अनुशंसित पाठ
- C ++ डेटा प्रकार
- पायथन डेटा प्रकार
- उदाहरणों के साथ C # डेटा प्रकार और चर
- पीएल एसक्यूएल डेटा प्रकार, चर, लगातार और साहित्य
- एरे डेटा प्रकार - इंट एरे, डबल ऐरे, ऐरे ऑफ स्ट्रिंग्स आदि।
- MySQL Delete स्टेटमेंट - डिलीट कमांड सिंटैक्स और उदाहरण
- MySQL इंटे टेबल में डालें - स्टेटमेंट सिंटैक्स और उदाहरण डालें
- MySQL जॉय ट्यूटोरियल: इनर, आउटर, क्रॉस, लेफ्ट, राइट एंड सेल्फ