MySQL tablo yapılarında sayısal değerlerin yanındaki uzunluk ne işe yarıyor

2 Temmuz 2009 Perşembe - Unknown

MySQL tablo yapılarına baktığımızda tinyint(4) gibi değerler görüyoruz. Ya da int(11), bigint(20)...

tinyint’in boyutu standart olarak 0-255 arası sayıları kapsıyor (unsigned ise eğer). Dolayısıyla tinyint(4) ‘nin anlamı kapasite ile alakalı olmamalı.

Eğer tablo yaratılırken zerofill seçilmişse, tinyint’in yanına yazdığımız uzunluğa ulaşana kadar sayının soluna 0 ekleniyor.

Yani çok fazla bir işe yarayan bir özellik değil.

Örneğin select sorgusu bize 35 geri dönecekse, eğer tablo yaratırken “tinyint(4) zerofill” demişsek 0035 geri dönecek.

2 yorum:

Adsız dedi ki...

Erişim hızı ile alakalı galiba. varchar 255 ten küçük seçildiğinde arama süreleri uzuyordu.

Anıl Özselgin dedi ki...

Sayı değerlerinden bahsediliyor yazıda. varchar bu konunun dışında kalıyor. int, tinyint, bigint...

Zerofill ile kolonu oluşturmamışsanız int(8) yazdığınızda hiç bir anlamı olmuyor.

CREATE TABLE yourtable (x INT(8) ZEROFILL NOT NULL, y INT(8) NOT NULL);

Mesele burda "select x from yourtable;" yazdığımızda 8 uzunluğuna 0 ekleyerek tamamlıyor mysql.