Dari segi data, tinyint(1)
, tinyint(2)
, tinyint(3)
dll semua persis sama. Semuanya dalam kisaran -128 hingga 127 untuk SIGNED
atau 0-255 untuk UNSIGNED
. Seperti yang dicatat oleh jawaban lain, angka dalam tanda kurung hanyalah petunjuk lebar tampilan.
Namun, Anda mungkin ingin mencatat bahwa aplikasi=bijaksana mungkin terlihat berbeda. Di sini, tinyint(1)
dapat mengambil arti khusus. Misalnya, Konektor/J (konektor Java) memperlakukan tinyint(1)
sebagai nilai boolean, dan alih-alih mengembalikan hasil numerik ke aplikasi, itu mengubah nilai menjadi true
dan false
. ini dapat diubah melalui tinyInt1isBit=false
parameter koneksi.
Sebuah tinyint(1) dapat menyimpan angka dalam kisaran -128 hingga 127, karena tipe datanya adalah 8 bit (1 byte) - jelas sebuah tinyint yang tidak ditandatangani dapat menyimpan nilai 0-255.
Ini akan secara diam-diam memotong nilai rentang:
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>
... kecuali jika Anda mengubah sql_mode
atau ubah konfigurasi server:
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>
Nilai yang digunakan dalam DDL untuk tipe data (misalnya:tinyint(1)), seperti yang Anda duga, adalah lebar tampilan. Namun, ini opsional dan klien tidak harus menggunakannya. Klien MySQL standar tidak menggunakannya, misalnya.
https://dev.mysql .com/doc/refman/5.1/en/integer-types.html
https://dev .mysql.com/doc/refman/5.0/en/numeric-type-overview.html
MySql:Tinyint (2 ) vs tinyint(1) - apa bedanya?