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

Khác biệt giữa BIGINT và BIGINT(20) trong MySQL: Chỉ là độ rộng hiển thị

Số trong ngoặc sau kiểu số nguyên: Chỉ ảnh hưởng hiển thị (ZEROFILL)

BIGINT và BIGINT(20) giống hệt nhau về phạm vi lưu trữ (8 byte, -9 quintillion đến +9 quintillion). Số 20 chỉ là display width - độ rộng hiển thị khi kết hợp với ZEROFILL.

1. Tạo bảng với BIGINT(20) ZEROFILL

mysql> CREATE TABLE DemoTable (
    Number BIGINT(20) ZEROFILL
);

2. Chèn các số có độ dài khác nhau

mysql> INSERT INTO DemoTable VALUES (1), (12), (123), (1234);

3. Xem kết quả - Số được đệm 0 bên trái đến độ rộng 20

mysql> SELECT * FROM DemoTable;
+----------------------+
| Number               |
+----------------------+
| 00000000000000000001 |
| 00000000000000000012 |
| 00000000000000000123 |
| 00000000000000001234 |
+----------------------+

Giải thích:

  • ZEROFILL tự động thêm UNSIGNED (chỉ số dương)
  • Số được đệm '0' bên trái cho đủ 20 ký tự
  • Không ảnh hưởng đến giá trị lưu trữ thực tế (vẫn là 1, 12, 123, 1234)
  • Không ảnh hưởng đến phép tính, so sánh, index

Các kiểu số nguyên và display width mặc định:

KiểuKích thướcDisplay width mặc địnhMax ZEROFILL width
TINYINT1 byte43
SMALLINT2 bytes65
MEDIUMINT3 bytes98
INT4 bytes1110
BIGINT8 bytes2019

Lưu ý: Từ MySQL 8.0.17, display width cho kiểu số nguyên bị deprecated (khuyên không dùng). Tương lai sẽ bỏ qua hoàn toàn. Nên dùng BIGINT thuần túy.

Khi nào dùng ZEROFILL: Mã số cố định độ dài (mã sinh viên, mã sản phẩm, số tài khoản) để hiển thị đẹp, căn lề.