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

Sự khác biệt giữa số, số thực và số thập phân trong SQL Server

sử dụng float hoặc thực loại dữ liệu chỉ khi độ chính xác được cung cấp bởi decimal (tối đa 38 chữ số) là không đủ

  • Các kiểu dữ liệu số gần đúng (xem bảng 3.3) không lưu trữ các giá trị chính xác được chỉ định cho nhiều những con số; họ lưu trữ rất gần ước tính của giá trị. (Technet)

  • Tránh sử dụng các cột thực hoặc thực trong các điều kiện tìm kiếm mệnh đề WHERE, đặc biệt là các toán tử =và <>. Tốt nhất là giới hạn các cột thực và thực ở> hoặc

vì vậy thường chọn Thập phân làm kiểu dữ liệu của bạn là cách tốt nhất nếu

  • số của bạn có thể vừa với nó. Độ chính xác thập phân là 10E38 [~ 38 chữ số]
  • không gian lưu trữ nhỏ hơn (và có thể là tốc độ tính toán) của Float không quan trọng đối với bạn
  • hành vi số chính xác là bắt buộc, chẳng hạn như trong các ứng dụng tài chính, trong các hoạt động liên quan đến làm tròn hoặc trong kiểm tra bình đẳng. (Technet)
  1. Chính xác Loại dữ liệu số thập phân và số - MSDN
  • numeric =decimal (5 đến 17 byte)
    • sẽ ánh xạ tới Hệ thập phân trong .NET
    • cả hai đều có (18, 0) làm tham số mặc định (độ chính xác, tỷ lệ) trong máy chủ SQL
    • scale =số chữ số thập phân tối đa có thể được lưu trữ ở bên phải của dấu thập phân.
    • money (8 byte) và smallmoney (4 byte) cũng là Loại dữ liệu chính xác và sẽ ánh xạ thành Decimal Trong .NET và có 4 dấu thập phân (MSDN)
  1. Gần đúng Kiểu dữ liệu số thực và thực - MSDN
  • real (4 byte)
    • sẽ ánh xạ tới Single trong .NET
    • Từ đồng nghĩa của ISO với real là float (24)
  • float (8 byte)
    • sẽ ánh xạ tới Double trong .NET

  • Tất cả chính xác các kiểu số luôn tạo ra cùng một kết quả, bất kể loại kiến ​​trúc bộ xử lý nào đang được sử dụng hoặc độ lớn của các số
  • Tham số được cung cấp cho kiểu dữ liệu float xác định số bit được sử dụng để lưu trữ phần định trị của số dấu phẩy động .
  • Loại dữ liệu số gần đúng thường sử dụng ít dung lượng hơn và có tốc độ tốt hơn (lên đến 20 lần) và bạn cũng nên cân nhắc khi chúng được chuyển đổi trong .NET
  • Sự khác biệt giữa Decimal, Float và Double trong C #
  • Số thập phân so với Tốc độ gấp đôi
  • SQL Server - Ánh xạ kiểu dữ liệu .NET (Từ MSDN)

nguồn chính :Bộ công cụ đào tạo theo nhịp độ tự MCTS (Bài thi 70-433):Phát triển cơ sở dữ liệu Microsoft® SQL Server® 2008 - Chương 3 - Bảng, kiểu dữ liệu và tính toàn vẹn của dữ liệu khai báo Bài 1 - Chọn kiểu dữ liệu (Nguyên tắc) - Trang 93



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận giá trị tối đa từ các hàng và tham gia vào một bảng khác

  2. Cách chuyển đổi danh sách được phân tách bằng dấu phẩy thành hàng trong SQL Server

  3. Chuyển đổi ‘datetime’ thành ‘datetimeoffset’ trong SQL Server (Ví dụ T-SQL)

  4. Chuyển đổi ‘smalldatetime’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)

  5. Thay thế một chuỗi bằng một chuỗi khác trong SQL Server (T-SQL)