Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa INT và INTEGER trong MySQL

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.
  • INT ngắn gọn hơn, phổ biến hơn trong cộng đồng MySQL.
  • INTEGER tuâ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.