Saya tahu boolean di mysql sebagai tinyint (1)
.
Hari ini saya melihat tabel dengan bilangan bulat seperti tinyint(2)
, dan juga yang lain seperti int(4)
, int(6)
...
Apa arti ukuran di bidang tipe integer dan tinyint?
Saya tahu boolean di mysql sebagai tinyint (1)
.
Hari ini saya melihat tabel dengan bilangan bulat seperti tinyint(2)
, dan juga yang lain seperti int(4)
, int(6)
...
Apa arti ukuran di bidang tipe integer dan tinyint?
Jawaban:
Itu berarti lebar layar
Apakah Anda menggunakan tinyint (1) atau tinyint (2), itu tidak ada bedanya.
Saya selalu menggunakan tinyint (1) dan int (11), saya menggunakan beberapa klien mysql (navicat, sequel pro).
Sama sekali tidak berarti apa-apa! Saya menjalankan tes, semua klien di atas atau bahkan klien baris perintah tampaknya mengabaikan ini.
Tapi, lebar layar paling penting jika Anda menggunakan ZEROFILL
opsi, misalnya tabel Anda memiliki 2 kolom berikut:
A tinyint (2) zerofill
B tinyint (4) zerofill
kedua kolom memiliki nilai 1, output untuk kolom A akan 01
dan 0001
untuk B , seperti yang terlihat pada tangkapan layar di bawah ini :)
Yang (m)
menunjukkan lebar tampilan kolom; aplikasi seperti klien MySQL memanfaatkan ini ketika menampilkan hasil permintaan.
Sebagai contoh:
| v | a | b | c |
+-----+-----+-----+-----+
| 1 | 1 | 1 | 1 |
| 10 | 10 | 10 | 10 |
| 100 | 100 | 100 | 100 |
Di sini a
, b
dan c
menggunakan TINYINT(1)
, TINYINT(2)
dan TINYINT(3)
masing - masing. Seperti yang dapat Anda lihat, ini memberi nilai pada sisi kiri menggunakan lebar layar.
Penting untuk dicatat bahwa itu tidak mempengaruhi rentang nilai yang diterima untuk jenis tertentu, yaitu TINYINT(1)
masih menerima [-128 .. 127]
.
mysql> CREATE TABLE tin3(id int PRIMARY KEY,val TINYINT(10) ZEROFILL);
Query OK, 0 rows affected (0.04 sec)
mysql> INSERT INTO tin3 VALUES(1,12),(2,7),(4,101);
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tin3;
+----+------------+
| id | val |
+----+------------+
| 1 | 0000000012 |
| 2 | 0000000007 |
| 4 | 0000000101 |
+----+------------+
3 rows in set (0.00 sec)
mysql>
mysql> SELECT LENGTH(val) FROM tin3 WHERE id=2;
+-------------+
| LENGTH(val) |
+-------------+
| 10 |
+-------------+
1 row in set (0.01 sec)
mysql> SELECT val+1 FROM tin3 WHERE id=2;
+-------+
| val+1 |
+-------+
| 8 |
+-------+
1 row in set (0.00 sec)
Tentang INT, TINYINT ... Ini adalah tipe data yang berbeda, INT adalah nomor 4-byte, TINYINT adalah nomor 1-byte. Informasi lebih lanjut di sini - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .
Sintaks tipe data TINYINT adalah TINYINT (M), di mana M menunjukkan lebar tampilan maksimum (hanya digunakan jika klien MySQL Anda mendukungnya).