डेटा-वार, tinyint(1)
, tinyint(2)
, tinyint(3)
आदि सभी बिल्कुल समान हैं। वे सभी SIGNED
. के लिए -128 से 127 की सीमा में हैं या 0-255 UNSIGNED
. के लिए . जैसा कि अन्य उत्तरों ने नोट किया कि कोष्ठक में संख्या केवल एक प्रदर्शन चौड़ाई संकेत है।
हालांकि, आप यह नोट करना चाहेंगे कि एप्लिकेशन =बुद्धिमान चीजें अलग दिख सकती हैं। यहाँ, tinyint(1)
विशेष अर्थ ले सकता है। उदाहरण के लिए, कनेक्टर/जे (जावा कनेक्टर) tinyint(1)
. का व्यवहार करता है एक बूलियन मान के रूप में, और अनुप्रयोग के लिए एक संख्यात्मक परिणाम लौटाने के बजाय, यह मानों को true
में बदल देता है और false
. इसे tinyInt1isBit=false
. के माध्यम से बदला जा सकता है कनेक्शन पैरामीटर।
डेटाटाइप 8 बिट्स (1 बाइट) होने के कारण एक टिनिंट (1) -128 से 127 की सीमा में संख्याओं को पकड़ सकता है - जाहिर है कि एक हस्ताक्षरित टिनिंट 0-255 मान रख सकता है।
यह चुपचाप सीमा मानों से बाहर हो जाएगा:
mysql> create table a
-> (
-> ttt tinyint(1)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> insert into a values ( 127 );
Query OK, 1 row affected (0.00 sec)
mysql> insert into a values ( -128 );
Query OK, 1 row affected (0.00 sec)
mysql> insert into a values ( 128 );
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert into a values ( -129 );
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from a;
+------+
| ttt |
+------+
| 127 |
| -128 |
| 127 |
| -128 |
+------+
4 rows in set (0.00 sec)
mysql>
... जब तक आप sql_mode
. नहीं बदलते या सर्वर कॉन्फ़िगरेशन बदलें:
mysql> set sql_mode=STRICT_ALL_TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into a values ( -129 );
ERROR 1264 (22003): Out of range value for column 'ttt' at row 1
mysql>
डेटाटाइप के लिए डीडीएल में उपयोग किया जाने वाला मान (उदाहरण:टिनिंट (1)), जैसा कि आपको संदेह था, डिस्प्ले चौड़ाई है। हालाँकि, यह वैकल्पिक है और ग्राहकों को इसका उपयोग करने की आवश्यकता नहीं है। उदाहरण के लिए, मानक MySQL क्लाइंट इसका उपयोग नहीं करता है।
https://dev.mysql .com/doc/refman/5.1/hi/integer-types.html
https://dev .mysql.com/doc/refman/5.0/hi/numeric-type-overview.html
MySql:Tinyint (2 ) बनाम टिनींट(1) - क्या अंतर है?