MySQL'de Boole biliyordum tinyint (1)
.
Bugün gibi tanımlanmış bir tamsayı olan bir tabloya bakın tinyint(2)
ve aynı zamanda başkalarının gibi int(4)
, int(6)
...
İnteger ve tinyint türünde boyut ne demektir?
MySQL'de Boole biliyordum tinyint (1)
.
Bugün gibi tanımlanmış bir tamsayı olan bir tabloya bakın tinyint(2)
ve aynı zamanda başkalarının gibi int(4)
, int(6)
...
İnteger ve tinyint türünde boyut ne demektir?
Yanıtlar:
Ekran genişliği anlamına gelir
Tinyint (1) veya tinyint (2) kullansanız da, herhangi bir fark yaratmaz.
Her zaman tinyint (1) ve int (11) kullanıyorum, birkaç mysql istemcisi (navicat, sequel pro) kullandım.
TÜMÜNDE hiçbir şey ifade etmiyor! Bir test yaptım, tüm istemciler veya hatta komut satırı istemcisi bunu görmezden geliyor gibi görünüyor.
Ancak, seçenek kullanıyorsanız ekran genişliği çok önemlidir ZEROFILL
, örneğin tablonuzda şu 2 sütun bulunur:
Bir Tinyint (2) zerofill
B tinyint (4) sıfır dolgu
Her iki sütun 1 değerine sahiptir, kolon çıkış A olur 01
ve 0001
için B , ekran görüldüğü gibi, aşağıda :)
(m)
Sütunu görüntüleme genişliğini belirtir; MySQL istemcisi gibi uygulamalar, sorgu sonuçlarını gösterirken bunu kullanır.
Örneğin:
| v | a | b | c |
+-----+-----+-----+-----+
| 1 | 1 | 1 | 1 |
| 10 | 10 | 10 | 10 |
| 100 | 100 | 100 | 100 |
Burada a
, b
ve c
kullandığınız TINYINT(1)
, TINYINT(2)
ve TINYINT(3)
sırasıyla. Gördüğünüz gibi, ekran genişliğini kullanarak sol taraftaki değerleri doldurur.
Belirli bir tür için kabul edilen değer aralığını etkilemediğini, yani TINYINT(1)
yine de kabul ettiğini not etmek önemlidir [-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)
INT, TINYINT Hakkında ... Bunlar farklı veri türleridir, INT 4 bayt sayıdır, TINYINT 1 bayt sayıdır. Daha fazla bilgi burada - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .
TINYINT veri türünün sözdizimi TINYINT (M) şeklindedir; burada M maksimum görüntüleme genişliğini gösterir (yalnızca MySQL istemciniz destekliyorsa kullanılır).