ใน MySQL INT และ INTEGER เป็นสิ่งเดียวกัน (Synonym) ทั้งคู่แสดงเป็น INT(11) ภายใน และมีช่วงค่าเท่ากัน
ทดสอบ INT
mysql> CREATE TABLE IntDemo (Id INT);
mysql> DESC IntDemo;
ผลลัพธ์: Type = int(11)
mysql> INSERT INTO IntDemo VALUES (2147483647), (-2147483648);
mysql> SELECT * FROM IntDemo;
ผลลัพธ์: เก็บค่าสูงสุด/ต่ำสุดของ Signed 32-bit ได้ปกติ
ทดสอบ INTEGER
mysql> CREATE TABLE IntegerDemo (Id INTEGER);
mysql> DESC IntegerDemo;
ผลลัพธ์: Type = int(11) (เหมือนกันทุกประการ)
mysql> INSERT INTO IntegerDemo VALUES (2147483647), (-2147483648);
mysql> SELECT * FROM IntegerDemo;
ผลลัพธ์: เหมือน INT ทุกประการ
สรุป
INT=INTEGER(Synonym)- ทั้งคู่เป็น Signed 32-bit integer (-2,147,483,648 ถึง 2,147,483,647)
- แสดงเป็น
INT(11)ในDESCRIBE - ใช้ตัวไหนก็ได้ ตามสไตล์โค้ดของทีม