Chiều rộng hiển thị "tính năng" bổ sung này khá khó hiểu, vì trong các loại cột khác như CHAR
là chỉ định độ dài.
Đây là bảng phân tích ngắn:
- Quan trọng nhất:Nó không xác định "không gian lưu trữ" hoặc "số chữ số". Nó chỉ cho biết cách dữ liệu trong cột này được định dạng trước khi nó được trả lại. INT (5) có thể lưu trữ giống nhau các giá trị như INT (16) hoặc INT (255) - cả ba đều có thể lưu trữ tất cả (và duy nhất) các giá trị hợp lệ cho INT. INT (255) không thể lưu trữ một số có 255 chữ số. Không gian lưu trữ cho tất cả chúng là không gian mà INT chiếm.
- Nếu bạn sử dụng
ZEROFILL
trên cột có chiều rộng hiển thị và biểu diễn chuỗi của số được lưu trữ ngắn hơn chiều rộng hiển thị, nó sẽ được đệm bên trái bằng các số không. Nếu nó lâu hơn, không có gì xảy ra. Nếu bạn chọn INT (5) và giá trị là 13, nó sẽ được trả về là 00013. Nếu giá trị là 123456, nó sẽ được trả về là 123456. - Nếu bạn không sử dụng
ZEROFILL
, sẽ không có phần đệm nào cả (không có khoảng trắng và như vậy) - Nếu bạn sử dụng
ZEROFILL
, bạn phải lưu ý rằng cột cũng sẽ làUNSIGNED
- Trong mọi trường hợp, chiều rộng hiển thị được trả về khi dữ liệu meta bảng được truy vấn. Vì vậy, một ứng dụng có thể biết dữ liệu sẽ được định dạng như thế nào.
Tôi không thích chiều rộng hiển thị, vì lớp lưu trữ "biết" về cách trình bày trực quan của dữ liệu được lưu trữ. Ngoài điều này ra, tôi không biết là có ích lợi gì.