Kiểu dữ liệu Decimal trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về kiểu dữ liệu DECIMAL trong SQL Server và cách sử dụng nó để lưu trữ các giá trị số thập phân.

Tổng quan về kiểu dữ liệu DECIMAL trong SQL Server

Để lưu trữ các số có độ chính xác và tỷ lệ cố định, bạn sử dụng kiểu dữ liệu DECIMAL.

Sau đây là cú pháp của kiểu dữ liệu DECIMAL:

DECIMAL(p,s)

Trong cú pháp này:

  • p là độ chính xác là tổng số chữ số thập phân tối đa sẽ được lưu trữ, cả ở bên trái và bên phải của dấu thập phân. Độ chính xác có phạm vi từ 1 đến 38. Độ chính xác mặc định là 38.
  • s là tỷ lệ là số chữ số thập phân sẽ được lưu trữ ở bên phải của dấu thập phân. Thang đo có phạm vi từ 0 đến p (độ chính xác). Chỉ có thể chỉ định thang đo nếu độ chính xác được chỉ định. Theo mặc định, tỷ lệ bằng không.

Kích thước bộ nhớ tối đa khác nhau, tùy thuộc vào độ chính xác như được minh họa trong bảng sau:

Độ chính xácSố byte lưu trữ
1 – 95
10-199
20-2813
29-3817

Và vì NUMERICsynonym của DECIMAL, do đó, bạn có thể sử dụng chúng thay thế cho nhau.

Các khai báo sau là tương đương:

DECIMAL(10,2)
NUMERIC(10,2)

Bởi vì ISO synonym của DECIMALDECDEC(p,s), bạn có thể sử dụng một trong hai DECIMAL hoặc DEC:

DECIMAL(10,2)
DEC(10,2)

Ví dụ về DECIMAL trong SQL Server

Hãy lấy một ví dụ về việc sử dụng kiểu dữ liệu DECIMALNUMERIC.

Đầu tiên, hãy tạo một bảng mới bao gồm hai cột: một cột DECIMAL và một cột NUMERIC như sau:

CREATE TABLE test.sql_server_decimal (
    dec_col DECIMAL (4, 2),
    num_col NUMERIC (4, 2)
);

Thứ hai, thêm một hàng mới vào bảng test.sql_server_decimal:

INSERT INTO test.sql_server_decimal (dec_col, num_col)
VALUES
    (10.05, 20.05);

Thứ ba, truy vấn dữ liệu từ bảng:

SELECT
    dec_col,
    num_col
FROM
    test.sql_server_decimal;

Thứ tư, ví dụ sau cố gắng chèn một hàng mới vào bảng với các giá trị vượt quá độ chính xác và tỷ lệ được chỉ định trong định nghĩa cột:

INSERT INTO test.sql_server_decimal (dec_col, num_col)
VALUES
    (99.999, 12.345);

SQL Server sẽ thông báo lỗi và dừng câu lệnh:

Arithmetic overflow error converting numeric to data type numeric.
The statement has been terminated

Trong hướng dẫn này, bạn đã học cách sử dụng kiểu dữ liệu DECIMAL trong SQL Server để lưu trữ các giá trị số thập phân.

SQL ServerKiểu dữ liệu trong SQL Server
Bài Viết Liên Quan:
GUID trong SQL Server
Trung Nguyen 12/03/2022
GUID trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.

Kiểu dữ liệu DATETIMEOFFSET trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATETIMEOFFSET trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.

Kiểu dữ liệu TIME trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu TIME trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.

Kiểu dữ liệu DATE trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.