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

Kiểu dữ liệu của Postgres NUMERIC có thể lưu trữ các giá trị đã ký không?

Bạn chắc chắn có thể sử dụng kiểu chính xác tùy ý numeric với độ chính xác là 5 và tỷ lệ là 1, giống như @Simon đã nhận xét, nhưng không có lỗi cú pháp. Sử dụng dấu phẩy (, ) thay vì dấu chấm (. ) trong công cụ sửa đổi loại:

SELECT numeric(5,1) '-999.9' AS nr_lower
     , numeric(5,1) '9999.9' AS nr_upper;

 nr_lower | nr_upper
----------+----------
   -999.9 |   9999.9

Dấu trừ và dấu chấm trong chuỗi ký tự không tính vào số chữ số có nghĩa tối đa được phép (precision ).
Nếu bạn không cần hạn chế độ dài, chỉ cần sử dụng numeric .
Nếu bạn cần thực thi tối thiểu và tối đa, hãy thêm ràng buộc kiểm tra:

CHECK (nr_column BETWEEN -999.9 AND 9999.9)

numeric lưu trữ số của bạn chính xác . Nếu bạn không cần độ chính xác tuyệt đối và lỗi làm tròn nhỏ không thành vấn đề, bạn cũng có thể sử dụng một trong các loại dấu phẩy động double precision (float8 ) hoặc real (float4 ).

Hoặc, vì bạn chỉ cho phép một chữ số thập phân phân số duy nhất, bạn có thể nhân với 10 và sử dụng integer , đó sẽ là bộ nhớ hiệu quả nhất:4 byte, không có lỗi làm tròn và xử lý nhanh nhất. Chỉ cần sử dụng và ghi lại số đúng cách.

Thông tin chi tiết về các kiểu số trong sách hướng dẫn.




  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 để loại bỏ cơ sở dữ liệu PostgreSQL nếu có các kết nối đang hoạt động với nó?

  2. Hướng dẫn phân vùng dữ liệu trong PostgreSQL

  3. Hội thảo trên web:Các tính năng mới trong Postgres 12 [Theo dõi]

  4. Cách cài đặt Haproxy và Keepalived

  5. PostgreSQL DATEADD () Tương đương