Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Tại sao chỉ định chiều rộng hiển thị mà không sử dụng zerofill

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ì.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để phân vùng bảng theo cột ngày giờ?

  2. apache mysql - gói không có thứ tự trên 3306

  3. Không thể tạo mô hình dữ liệu thực thể - sử dụng MySql và EF6

  4. Hiệu suất Mysql trên bảng hàng 6 triệu

  5. Django ManyToMany thông qua với nhiều cơ sở dữ liệu