Loại DECIMAL của MySQL

Loại cột dữ liệu này tương tự như FLOAT, nhưng nó được sử dụng cho các số có điểm cố định, chính xác. Khi tính toán với cột DECIMAL, nó có mức chính xác 65 chữ số. Chiều rộng đã cho là chiều rộng tối đa của tổng số chữ số—ở cả hai bên của vị trí thập phân, không bao gồm dấu thập phân hoặc dấu âm nếu là số âm. Các số thập phân đã cho là số thập phân được phép và số mà nó điền vào số không. Ví dụ: cài đặt loại cột của DECIMAL(4,2) được cung cấp giá trị là 123. 4 sẽ trả về cảnh báo và lưu trữ giá trị là 99. 99, số tiền tối đa cho chiều rộng. Nếu cùng một cột được cho giá trị là 12. 3, nó sẽ không tạo ra bất kỳ cảnh báo nào và sẽ lưu trữ giá trị là 12. 30. Nếu sử dụng UNSIGNED với DECIMAL, giá trị âm không được phép

MySQL lưu trữ số trong cột DECIMAL dưới dạng chuỗi. Do đó, các số nằm ngoài phạm vi số tối đa cho loại dữ liệu này có thể được lưu trữ trong cột DECIMAL. Loại dữ liệu này có thể được truy xuất và hiển thị dưới dạng chuỗi, nhưng trong ngữ cảnh số (i. e. , như một phần của phép tính), nó không thể vượt quá các giá trị được hiển thị trong bảng

Để lưu trữ các giá trị số, chúng ta có thể sử dụng kiểu dữ liệu số nguyên trong MySQL. Nhưng khi chúng ta phải duy trì độ chính xác của các giá trị số thì chúng ta phải sử dụng kiểu dữ liệu thập phân cho phép chúng ta chỉ định độ chính xác và tỷ lệ của các số thập phân sẽ bao gồm dấu thập phân trong giá trị của nó. Loại dữ liệu này thường được sử dụng để lưu trữ các giá trị về số lượng và trọng lượng cần được duy trì độ chính xác và độ chính xác

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Loại DECIMAL của MySQL
Loại DECIMAL của MySQL
Loại DECIMAL của MySQL
Loại DECIMAL của MySQL

Loại DECIMAL của MySQL
Loại DECIMAL của MySQL
Loại DECIMAL của MySQL
Loại DECIMAL của MySQL

Giá
Xem khóa học

360+ Khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 7 (82.736 xếp hạng)

Trong bài viết này, chúng ta sẽ tìm hiểu về kiểu dữ liệu thập phân, khai báo của nó, các thuộc tính được nó hỗ trợ, các từ đồng nghĩa thay thế cho kiểu dữ liệu thập phân, không gian lưu trữ cần thiết để lưu trữ số lượng thập phân và cách chúng ta có thể sử dụng kiểu dữ liệu thập phân một cách hiệu quả và hiệu quả trong

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

cú pháp

Cú pháp khai báo kiểu dữ liệu thập phân trong cột bảng MySQL như sau –

nameOfColumn DECIMAL(Precision,Scale);

Trong đó nameOf Column là tên cột mà bạn muốn lưu trữ dữ liệu ở kiểu dữ liệu thập phân

  • DECIMAL là từ khóa để khai báo kiểu dữ liệu thập phân không phân biệt chữ hoa chữ thường
  • Độ chính xác là số của tổng các chữ số trong số thập phân sẽ được lưu trữ. Giá trị này có thể nằm trong khoảng từ 1 đến 65
  • Thang đo là tham số quy định số chữ số thập phân là số chữ số có thể lưu sau dấu thập phân. Giá trị này phải nằm trong khoảng từ 0 đến 30 và phải luôn nhỏ hơn giá trị độ chính xác i. e Thang đo < Độ chính xác

Các từ đồng nghĩa cho kiểu dữ liệu DECIMAL là NUMERIC, FIXED và DEC có thể được sử dụng thay thế cho từ khóa DECIMAL

Thuộc tính

Như với kiểu dữ liệu INTEGER có thuộc tính UNSIGNED và thuộc tính ZEROFILL. Tương tự, kiểu dữ liệu DECIMAL cũng có các thuộc tính UNSIGNED và ZEROFILL có thể được gán cho các giá trị thập phân. Thuộc tính UNSIGNED khi được gán cho dữ liệu DECIMAL, cột typed giúp chúng ta hạn chế việc lưu trữ các số thập phân âm và đảm bảo rằng chỉ các giá trị thập phân dương mới được lưu trữ trong cột đó

Thuộc tính ZEROFILL khi được gán cho cột kiểu dữ liệu thập phân sẽ luôn hiển thị giá trị của giá trị thập phân bằng cách đệm các số 0 lên theo chiều rộng của số thập phân được khai báo cho cột đó

Hành vi

Hãy xem xét một ví dụ trong đó kiểu dữ liệu cho cột được xác định theo cách sau –

DECIMAL(5,3) sẽ cho phép chúng tôi lưu trữ các giá trị từ 99. 999 đến 99. 999 vì tỷ lệ là 3 chữ số thập phân sau dấu thập phân có thể có tối đa 3 vị trí và độ chính xác là 5 do đó, 5-3=2 hai chữ số sẽ được phép lưu trữ trong giá trị thập phân của cột đó. Vì không có thuộc tính nào được chỉ định nên các giá trị âm là giá trị đã ký cũng có thể được lưu trữ trong trường này

Xem xét thêm một ví dụ trong đó chúng tôi không chỉ định giá trị tỷ lệ, DECIMAL(3). Trong trường hợp này, giá trị mặc định của tỷ lệ được coi là 0 và không có giá trị số nào chứa dấu thập phân có thể được lưu trữ trong cột này. Chỉ các số nguyên có thể được lưu trữ với phạm vi từ -999 đến 999

Hãy để chúng tôi lấy thêm một ví dụ trong đó chúng tôi không chỉ định một trong hai giá trị tham số i. e precision hoặc scale và khai báo kiểu dữ liệu của cột là DECIMAL. Trong trường hợp này, giá trị mặc định của độ chính xác sẽ được coi là 10 và đối với giá trị 0 của tham số tỷ lệ sẽ được coi là. Do đó, phạm vi cho phép của các giá trị được lưu trữ trong cột này sẽ nằm trong khoảng từ -9999999999 đến 9999999999

Do đó, có thể kết luận rằng các giá trị tham số độ chính xác và tỷ lệ là hoàn toàn tùy chọn đối với thông số kỹ thuật và giá trị mặc định của tỷ lệ là 0 trong khi giá trị mặc định của tham số độ chính xác là 10

Lưu trữ kiểu dữ liệu DECIMAL trong MySQL

Các giá trị cho phần phân số và phần nguyên của giá trị thập phân là giá trị trước và sau dấu thập phân được gán không gian lưu trữ riêng biệt trong MYSQL. Vì định dạng nhị phân được sử dụng để lưu trữ các giá trị trong MYSQL cho kiểu dữ liệu thập phân, nó cần 4 byte bộ nhớ để lưu trữ 9 chữ số. Đối với mỗi gói gồm 9 chữ số trước và sau dấu thập phân, cần có 4 byte dung lượng lưu trữ. Đối với các chữ số còn lại để lưu trữ, chúng yêu cầu dung lượng lưu trữ theo cách sau –

1 hoặc 2 chữ số còn lại chiếm 1 byte dung lượng lưu trữ, 3 hoặc 4 chữ số còn lại chiếm 2 byte dung lượng lưu trữ, 5 hoặc 6 chữ số còn lại chiếm 3 byte dung lượng lưu trữ và 7 hoặc 9 chữ số còn lại chiếm 4 byte dung lượng lưu trữ

Xem xét một ví dụ, kiểu dữ liệu DECIMAL(20,8) sẽ yêu cầu 4 byte dung lượng lưu trữ cho 8 chữ số sẽ xuất hiện sau dấu thập phân và cho phần còn lại 20-8=12 i. e 12 chữ số sẽ được chia thành hai. Trong số 12, 9 chữ số sẽ yêu cầu 4 byte và đối với 12-9 chữ số còn lại, tôi. e 3 chữ số 2 byte sẽ được yêu cầu. Do đó, tổng cộng 4+4+2 =10 byte dung lượng lưu trữ sẽ được yêu cầu để lưu trữ giá trị thập phân của loại này

Thí dụ

Hãy để chúng tôi tạo một bảng sẽ chứa cột kiểu dữ liệu thập phân trong đó. Ở đây, tôi sẽ tạo một bảng có tên educba_stock chứa cột cost_in_rupees của kiểu dữ liệu thập phân với độ chính xác 20 và tỷ lệ 2 bằng cách sử dụng truy vấn tạo sau –

________số 8

dẫn đến đầu ra sau -

Loại DECIMAL của MySQL

Hãy để chúng tôi chèn một số bản ghi vào đó bằng cách thực hiện lệnh sau

INSERT INTO educba_stock(description,cost_in_rupees)
VALUES('Java', 4500.26),('Angular',8512.6),('Mysql',4587.45);

cung cấp đầu ra sau trong trình soạn thảo sqlyog –

Loại DECIMAL của MySQL

Bây giờ chúng ta hãy truy xuất dữ liệu được lưu trữ trong bảng educba_stock bằng truy vấn chọn sau –

DECIMAL0

dẫn đến đầu ra sau -

Loại DECIMAL của MySQL

Hãy để chúng tôi thay đổi cột cost_in_rupees và đặt thuộc tính ZEROFILL cho nó bằng truy vấn ALTER sau –

DECIMAL1

điều đó sẽ dẫn đến đầu ra sau -

Loại DECIMAL của MySQL

Lưu ý rằng bất cứ khi nào thuộc tính ZEROFILL được gán cho kiểu dữ liệu DECIMAL, MYSQL sẽ tự động thêm thuộc tính UNSIGNED vào bên trong nó

Hãy để chúng tôi truy xuất các giá trị từ bảng và kiểm tra xem chúng được hiển thị như thế nào sau khi gán thuộc tính ZEROFILL cho kiểu dữ liệu thập phân của cột cost_in_rupees bằng cách sử dụng truy vấn chọn sau –

DECIMAL0

điều đó bây giờ dẫn đến đầu ra sau -

Loại DECIMAL của MySQL

Có thể thấy rằng các số 0 được thêm vào và thêm vào trước cho chiều rộng hiển thị tối đa của cột đó

Sự kết luận

Kiểu dữ liệu thập phân được sử dụng để lưu trữ các giá trị số cần được duy trì độ chính xác và độ chính xác và các giá trị sau dấu thập phân cần được lưu trữ. Các thuộc tính ZEROFILL và UNSIGNED có thể được sử dụng để thêm các số 0 vào các chữ số còn lại và hạn chế các giá trị âm đã ký để lưu trữ trong cột của bạn với kiểu dữ liệu thập phân

Bài viết được đề xuất

Đây là hướng dẫn về MySQL Decimal. Ở đây chúng ta thảo luận về định nghĩa, cú pháp, thuộc tính, Lưu trữ kiểu dữ liệu DECIMAL trong MySQL và ví dụ về triển khai mã. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Kiểu dữ liệu cho số thập phân trong MySQL là gì?

Trong MySQL, NUMERIC được triển khai dưới dạng DECIMAL , vì vậy các nhận xét sau đây về DECIMAL áp dụng như nhau cho NUMERIC. MySQL lưu trữ các giá trị DECIMAL ở định dạng nhị phân . Xem Phần 12. 25, “Toán chính xác”.

Kiểu dữ liệu cho số thập phân là gì?

Kiểu dữ liệu thập phân là một phương pháp độc lập với máy đại diện cho các số có tối đa 32 chữ số có nghĩa, với các giá trị hợp lệ trong khoảng 10 -129 - 10 +125. Khi bạn xác định một cột có kiểu dữ liệu DECIMAL( p ) , cột đó có tổng cộng p (< = 32) chữ số có nghĩa.

Số thập phân có phải là kiểu dữ liệu trong SQL Server không?

Chuyển đổi dữ liệu thập phân và số . Ví dụ: thập phân (5,5) và thập phân (5,0) được coi là các loại dữ liệu khác nhau. SQL Server considers each combination of precision and scale as a different data type. For example, decimal(5,5) and decimal(5,0) are considered different data types.

Kiểu dữ liệu số trong MySQL là gì?

MySQL hỗ trợ tất cả các kiểu dữ liệu số SQL tiêu chuẩn. Các loại này bao gồm các loại dữ liệu số chính xác ( INTEGER , SMALLINT , DECIMAL và NUMERIC ), cũng như các loại dữ liệu số gần đúng ( FLOAT , REAL , .