mysql int(11) ile int(3) arasındaki fark.

tahmin edildiğinin tersine int(3) ve int(11) sayı değeri olarak aynı sayıları tutabilir.

1234567 sayısını int(3) veya int(11) olarak tanımlanmış bir alanda tutabiliriz.

Sayı Değerlerini belirten kısım mysql veri tipidir.

Column Type Bytes On Disk Signed Storage Range Unsigned Storage Range
tinyint 1 bytes -128 to 127 0 to 255
smallint 2 bytes -32768 to 32767 0 to 65535
mediumint 3 bytes -8388608 to 8388607 0 to 16777215
int 4 bytes -2147483648 to 2147483647 0 to 4294967295
bigint 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615

Parantez içindeki int(3) , int(11) ise zerofill özelliğinde devreye giriyor;
mysql> create table t (t int(3) zerofill);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
1 row in set (0.11 sec)

mysql> create table t (t int(11) zerofill);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.02 sec)
mysql> select * from t;
+————+
| t |
+————+
| 00000000010 |
+————+
1 row in set (0.08 sec)

Yani parantez içindeki sayı , görüntülenebilir kısmı temsil ediyor. Sayının alabileceği değerlere bir etkisi yok.
http://dev.mysql.com/doc/refman/5.6/en/numeric-type-overview.html

>

2 Yorum “mysql int(11) ile int(3) arasındaki fark”

  1. ediz :

    bildiğim kadarıyla,
    mysql
    int(33) için 33 baytt
    int(255) için 255 bayt
    smallint(2) için 2bayt
    … yer açıyormuş (ahım şahım bir alan/performans farkı olmayabilir)
    performans için ne gerekiyorsa onu açın derler,
    mysql in kendi yapı önerme fonksiyonu da bu yönde tavsiye yapıyor.

  2. ayhan :

    int(33) , int(255) de 4 byte yer açar. parantez içindeki deger zerofill de görüntülenecek basamak sayısıdır.

Cevapla

Son Yazılar :

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES (’istanbul’), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES (’istanbul’), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES (’istanbul’), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES (’istanbul’), [...]

if(5==$deger) yada if ($deger==5)

if(5==$deger) yada if ($deger==5) Sizin de dikkatinizi çekmiştir, Bazı projelerde alıştığımız if şartını ters yazıyorlar; if ($deger==5) yerine if(5==$deger) bu yazımın kaynağı C’den geliyor. = atama. == eşit mi karşılaştırması. C türevi tüm dillerde karşılaştırma operatöri == ‘ dir. Yazılımcılar dalgınlık/unutkanlık ile if’lerde == yerine = (tek eşit) kullanırlarsa büyük bir mantık hatasına ve bug’a sebep olurlar. # root [...]