Làm cách nào để sử dụng độ chính xác kép trong MySQL?

Các loại dữ liệu dấu phẩy động bao gồm FLOAT và   DOUBLE. Mỗi loại trong số này có thể được sử dụng để biểu thị các số có giá trị gần đúng có phần nguyên, phần phân số hoặc cả hai. Các loại dữ liệu FLOAT   và DOUBLE biểu thị các giá trị ở định dạng dấu phẩy động nhị phân gốc được sử dụng bởi CPU của máy chủ lưu trữ. Đây là một loại rất hiệu quả để lưu trữ và tính toán, nhưng các giá trị có thể bị lỗi làm tròn

FLOAT đại diện cho các giá trị dấu phẩy động có độ chính xác đơn yêu cầu bốn byte cho mỗi giá trị để lưu trữ. DOUBLE đại diện cho các giá trị dấu phẩy động có độ chính xác kép, mỗi giá trị này yêu cầu 8 byte để lưu trữ

Bạn có thể chỉ định các giá trị tỷ lệ và độ chính xác rõ ràng trong định nghĩa cột   để biểu thị số chữ số có nghĩa và số vị trí thập phân ở bên phải dấu thập phân. Các định nghĩa sau   chỉ định cột có độ chính xác đơn với độ chính xác 10 chữ số và tỷ lệ 3 thập phân và cột có độ chính xác kép với độ chính xác 20 chữ số và tỷ lệ 7 chữ số thập phân

weight FLOAT(10,3)
avg_score DOUBLE(20,7)

Nếu bạn không chỉ định độ chính xác hoặc tỷ lệ, thì MySQL biểu thị các giá trị   được lưu trữ trong các cột FLOAT và NHÂN ĐÔI với độ chính xác tối đa   được phần cứng của máy chủ lưu trữ MySQL cho phép. Các định nghĩa sau đây không bao gồm độ chính xác hoặc tỷ lệ rõ ràng

float_col FLOAT
double_col DOUBLE   

Các giá trị dấu phẩy động được lưu trữ bằng cách sử dụng biểu diễn phần định trị/số mũ, có nghĩa là độ chính xác được xác định theo chiều rộng của phần định trị và tỷ lệ thay đổi tùy thuộc vào giá trị số mũ. Kết quả của những yếu tố này là giá trị được lưu trữ là giá trị gần đúng

Việc xác định đúng các trường trong bảng rất quan trọng đối với việc tối ưu hóa tổng thể cơ sở dữ liệu của bạn. Bạn chỉ nên sử dụng loại và kích thước trường mà bạn thực sự cần sử dụng. Ví dụ: không xác định trường rộng 10 ký tự, nếu bạn biết bạn sẽ chỉ sử dụng 2 ký tự. Các loại trường (hoặc cột) này còn được gọi là kiểu dữ liệu, theo tên loại dữ liệu bạn sẽ lưu trữ trong các trường đó

MySQL sử dụng nhiều loại dữ liệu khác nhau được chia thành ba loại -

  • số
  • Ngày và giờ
  • Các loại chuỗi

Bây giờ chúng ta hãy thảo luận chi tiết về chúng

Kiểu dữ liệu số

MySQL sử dụng tất cả các kiểu dữ liệu số ANSI SQL tiêu chuẩn, vì vậy nếu bạn đến với MySQL từ một hệ thống cơ sở dữ liệu khác, các định nghĩa này sẽ trông quen thuộc với bạn

Danh sách sau đây hiển thị các kiểu dữ liệu số phổ biến và mô tả của chúng –

  • INT − Một số nguyên có kích thước bình thường có thể được ký hoặc không dấu. Nếu được ký, phạm vi cho phép là từ -2147483648 đến 2147483647. Nếu không dấu, phạm vi cho phép là từ 0 đến 4294967295. Bạn có thể chỉ định chiều rộng tối đa 11 chữ số

  • TINYINT − Một số nguyên rất nhỏ có thể được ký hoặc không dấu. Nếu được ký, phạm vi cho phép là từ -128 đến 127. Nếu không dấu, phạm vi cho phép là từ 0 đến 255. Bạn có thể chỉ định chiều rộng tối đa 4 chữ số

  • SMALLINT − Một số nguyên nhỏ có thể được ký hoặc không dấu. Nếu được ký, phạm vi cho phép là từ -32768 đến 32767. Nếu không dấu, phạm vi cho phép là từ 0 đến 65535. Bạn có thể chỉ định chiều rộng tối đa 5 chữ số

  • MEDIUMINT − Một số nguyên có kích thước trung bình có thể được ký hoặc không dấu. Nếu được ký, phạm vi cho phép là từ -8388608 đến 8388607. Nếu không dấu, phạm vi cho phép là từ 0 đến 16777215. Bạn có thể chỉ định chiều rộng tối đa 9 chữ số

  • BIGINT − Một số nguyên lớn có thể được ký hoặc không dấu. Nếu được ký, phạm vi cho phép là từ -9223372036854775808 đến 9223372036854775807. Nếu không dấu, phạm vi cho phép là từ 0 đến 18446744073709551615. Bạn có thể chỉ định chiều rộng tối đa 20 chữ số

  • FLOAT(M,D) − Một số dấu phẩy động không thể bỏ dấu. Bạn có thể xác định độ dài hiển thị (M) và số thập phân (D). Điều này là không bắt buộc và sẽ mặc định là 10,2, trong đó 2 là số thập phân và 10 là tổng số chữ số (bao gồm cả số thập phân). Độ chính xác thập phân có thể lên tới 24 vị trí đối với FLOAT

  • DOUBLE(M,D) − Một số dấu phẩy động có độ chính xác kép không thể bỏ dấu. Bạn có thể xác định độ dài hiển thị (M) và số thập phân (D). Điều này là không bắt buộc và sẽ mặc định là 16,4, trong đó 4 là số thập phân. Độ chính xác thập phân có thể lên tới 53 vị trí cho NHÂN ĐÔI. REAL là một từ đồng nghĩa với NHÂN ĐÔI

  • DECIMAL(M,D) − Một số dấu phẩy động đã giải nén không thể bỏ dấu. Trong các số thập phân được giải nén, mỗi số thập phân tương ứng với một byte. Cần xác định độ dài hiển thị (M) và số thập phân (D). NUMERIC là một từ đồng nghĩa với DECIMAL

Loại ngày và giờ

Các kiểu dữ liệu ngày và giờ của MySQL như sau -

  • NGÀY − Một ngày ở định dạng YYYY-MM-DD, giữa 1000-01-01 và 9999-12-31. Ví dụ: ngày 30 tháng 12 năm 1973 sẽ được lưu thành 1973-12-30

  • DATETIME − Một sự kết hợp ngày và giờ trong YYYY-MM-DD HH. MM. Định dạng SS, giữa 1000-01-01 00. 00. 00 và 9999-12-31 23. 59. 59. Ví dụ: 3. 30 giờ chiều ngày 30 tháng 12 năm 1973 sẽ được lưu trữ là 1973-12-30 15. 30. 00

  • DẤU THỜI GIAN − Dấu thời gian giữa nửa đêm, ngày 1 tháng 1 năm 1970 và đôi khi vào năm 2037. Định dạng này trông giống như định dạng NGÀY trước đó, chỉ khác là không có dấu gạch nối giữa các số; . 30 giờ chiều ngày 30 tháng 12 năm 1973 sẽ được lưu trữ thành 19731230153000 ( YYYYMMDDHHMMSS )

  • TIME - Lưu trữ thời gian trong một HH. MM. định dạng SS

  • NĂM(M) – Lưu trữ một năm ở định dạng 2 chữ số hoặc 4 chữ số. Nếu độ dài được chỉ định là 2 (ví dụ: NĂM(2)), NĂM có thể nằm trong khoảng từ 1970 đến 2069 (70 đến 69). Nếu độ dài được chỉ định là 4, thì NĂM có thể là 1901 đến 2155. Độ dài mặc định là 4

Các loại chuỗi

Mặc dù kiểu số và ngày tháng rất thú vị nhưng hầu hết dữ liệu bạn sẽ lưu trữ sẽ ở định dạng chuỗi. Danh sách này mô tả các kiểu dữ liệu chuỗi phổ biến trong MySQL

  • CHAR(M) − Một chuỗi có độ dài cố định từ 1 đến 255 ký tự (ví dụ CHAR(5)), được đệm bên phải bằng khoảng trắng theo độ dài đã chỉ định khi được lưu trữ. Xác định độ dài là không bắt buộc, nhưng mặc định là 1

  • VARCHAR(M) − Một chuỗi có độ dài thay đổi từ 1 đến 255 ký tự. Ví dụ: VARCHAR(25). Bạn phải xác định độ dài khi tạo trường VARCHAR

  • BLOB hoặc TEXT − Một trường có độ dài tối đa là 65535 ký tự. BLOB là "Đối tượng lớn nhị phân" và được sử dụng để lưu trữ lượng lớn dữ liệu nhị phân, chẳng hạn như hình ảnh hoặc các loại tệp khác. Các trường được định nghĩa là TEXT cũng chứa một lượng lớn dữ liệu. Sự khác biệt giữa hai loại này là việc sắp xếp và so sánh trên dữ liệu được lưu trữ phân biệt chữ hoa chữ thường trên BLOB và không phân biệt chữ hoa chữ thường trong các trường TEXT. Bạn không chỉ định độ dài với BLOB hoặc TEXT

  • TINYBLOB hoặc TINYTEXT − Một cột BLOB hoặc TEXT có độ dài tối đa là 255 ký tự. Bạn không chỉ định độ dài với TINYBLOB hoặc TINYTEXT

  • MEDIUMBLOB hoặc MEDIUMTEXT − Một cột BLOB hoặc TEXT có độ dài tối đa là 16777215 ký tự. Bạn không chỉ định độ dài với MEDIUMBLOB hoặc MEDIUMTEXT

  • LONGBLOB hoặc LONGTEXT − Một cột BLOB hoặc TEXT có độ dài tối đa là 4294967295 ký tự. Bạn không chỉ định độ dài với LONGBLOB hoặc LONGTEXT

  • ENUM − Một phép liệt kê, là một thuật ngữ ưa thích cho danh sách. Khi xác định một ENUM, bạn đang tạo một danh sách các mục mà từ đó giá trị phải được chọn (hoặc có thể là NULL). Ví dụ: nếu bạn muốn trường của mình chứa "A" hoặc "B" hoặc "C", bạn sẽ xác định ENUM của mình là ENUM ('A', 'B', 'C') và chỉ các giá trị đó (hoặc NULL)

    Làm cách nào để viết NHÂN ĐÔI trong MySQL?

    Cú pháp cho loại dữ liệu kép là CHÍNH XÁC NHÂN ĐÔI(m,d) trong đó 'm' là tổng số chữ số và ' . Ví dụ, DOUBLE(7,5) có nghĩa là nó sẽ lưu trữ một giá trị có bảy chữ số và năm số thập phân.

    CHÍNH XÁC NHÂN ĐÔI trong ví dụ SQL là gì?

    CHÍNH XÁC NHÂN ĐÔI . Không cần tham số khi khai báo kiểu dữ liệu DOUBLE PRECISION. Nếu bạn cố gán một giá trị có độ chính xác lớn hơn 64 thì sẽ xảy ra lỗi. The REAL data type accepts approximate numeric values, up to a precision of 64. No parameters are required when declaring a DOUBLE PRECISION data type. If you attempt to assign a value with a precision greater than 64 an error is raised.

    Kiểu dữ liệu CHÍNH XÁC NHÂN ĐÔI trong SQL là gì?

    CHÍNH XÁC NHÂN ĐÔI(kích thước, d) DECIMAL(kích thước, d) Một số điểm cố định chính xác . Tổng số chữ số được quy định trong kích thước. Số chữ số sau dấu thập phân được chỉ định trong tham số d.

    Số thập phân 7 2 sẽ được lưu trữ trong MySQL như thế nào?

    MySQL sử dụng định dạng nhị phân để lưu trữ các giá trị trong cột DECIMAL có 4 byte cho mỗi bội số của chín chữ số thập phân. Nó chỉ định riêng các yêu cầu lưu trữ cho các phần nguyên và phần thập phân của từng giá trị.