INT vs INTEGER trong MySQL: Giống nhau hoàn toàn
INT là từ đồng nghĩa (synonym) của INTEGER trong MySQL. Cả hai đều lưu trữ số nguyên 4 byte, phạm vi -2,147,483,648 đến 2,147,483,647 (signed).
Chứng minh qua DESCRIBE
Tạo bảng dùng INT:
CREATE TABLE IntDemo (Id INT);
DESC IntDemo;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| Id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
Tạo bảng dùng INTEGER:
CREATE TABLE IntegerDemo (Id INTEGER);
DESC IntegerDemo;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| Id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
Cả hai đều hiển thị int(11) nội bộ.
Kiểm tra phạm vi giá trị
INSERT INTO IntDemo VALUES (2147483647), (-2147483648);
INSERT INTO IntegerDemo VALUES (2147483647), (-2147483648);
Cả hai đều chấp nhận giá trị max/min của INT 32-bit signed.
Kết luận
- Không có sự khác biệt về lưu trữ, phạm vi, hiệu năng.
INTngắn gọn hơn, phổ biến hơn trong cộng đồng MySQL.INTEGERtuân thủ tiêu chuẩn SQL (ANSI), dùng khi viết code portable cross-DB.- Số trong ngoặc
(11)chỉ là display width (chiều hiển thị), không ảnh hưởng đến phạm vi lưu trữ.
Khuyến nghị: Dùng INT cho gọn, trừ khi quy chuẩn dự án yêu cầu INTEGER.