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

Làm thế nào để sử dụng MySQL DECIMAL?

Cột DOUBLE không giống như các cột DECIMAL và bạn sẽ gặp rắc rối nếu bạn sử dụng DOUBLE cột cho dữ liệu tài chính.

DOUBLE thực chất chỉ là phiên bản độ chính xác kép (64 bit thay vì 32 bit) của FLOAT . Số dấu phẩy động là đại diện gần đúng của số thực và chúng không chính xác. Trên thực tế, các số đơn giản như 0,01 không có đại diện chính xác trong các loại FLOAT hoặc DOUBLE.

Các cột DECIMAL là các đại diện chính xác, nhưng chúng chiếm nhiều không gian hơn cho một phạm vi nhỏ hơn nhiều số có thể. Để tạo một cột có khả năng giữ các giá trị từ 0,0001 đến 99,9999 như bạn đã hỏi, bạn sẽ cần câu lệnh sau

CREATE TABLE your_table
(
    your_column DECIMAL(6,4) NOT NULL
);

Định nghĩa cột tuân theo định dạng DECIMAL (M, D) trong đó M là số chữ số tối đa ( độ chính xác ) và D là số chữ số ở bên phải của dấu thập phân ( tỷ lệ ).

Điều này có nghĩa là lệnh trước đó tạo một cột chấp nhận các giá trị từ -99.9999 đến 99.9999. Bạn cũng có thể tạo một cột QUYẾT ĐỊNH CHƯA ĐĂNG KÝ, nằm trong khoảng từ 0,0000 đến 99,9999.

Ví dụ:nếu bạn muốn một cột chấp nhận các giá trị từ -9999,99 đến 9999,99, lệnh sẽ là DECIMAL(6,2) . Như bạn có thể thấy, bạn vẫn sử dụng độ chính xác trên 6, nhưng chỉ cho phép một thang điểm trong tổng số 2.

Để biết thêm thông tin về MySQL DECIMAL, hãy tham khảo tài liệu chính thức luôn là một nguồn tài nguyên tuyệt vời.

Hãy nhớ rằng tất cả thông tin này đều đúng với các phiên bản MySQL 5.0.3 trở lên. Nếu bạn đang sử dụng các phiên bản trước, bạn thực sự nên nâng cấp.

Cập nhật trên MySQL 8.0.17+

Unsigned không được dùng nữa cho các cột FLOAT, DOUBLE và DECIMAL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - LÀM THẾ NÀO ĐỂ ĐẶT HÀNG THEO TƯƠNG QUAN? Bảng INNODB

  2. Khi nào tôi nên sử dụng $ wpdb-> chuẩn bị, nếu có?

  3. nhận Mất kết nối với mysql khi sử dụng mysqldump ngay cả với tham số max_allowed_packet

  4. MySQL INSERT .... ON DUPLICATE UPDATE - Thêm một vào autoincrement

  5. Tại sao TRẠNG THÁI BẢNG HIỂN THỊ của innodb lại không đáng tin cậy như vậy?