Tổng hợp các kiểu dữ liệu trong MySQL

Khi sử dụng MySQL, bạn sẽ phải làm việc rất nhiều với dữ liệu. Mỗi hệ cơ sở dữ liệu sẽ có một số điểm khác nhau. Nếu bạn đang muốn tìm hiểu về các kiểu dữ liệu trong MySQL, bài viết này là dành riêng cho bạn!

Tìm hiểu về các kiểu dữ liệu trong MySQL

Kiểu dữ liệu là gì?

Kiểu dữ liệu hay Data type là một quy trình/ quy ước về cấu trúc, miền giá trị của data có thể nhập vào và những phép toán, toán tử có thể tác động lên miền giá trị của data đó. Mỗi ngôn ngữ lập trình sẽ tuân theo quy định của riêng. Và mỗi dữ liệu sẽ có một kiểu dữ liệu khác nhau.

  • Các kiểu dữ liệu được xây dựng trên tiêu chuẩn của ANSI/ISO cung cấp
  • Có tổng số 16/143 kiểu dữ liệu thông dụng được sử dụng trong các hệ quản trị cơ sở dữ liệu thương mại.
  • Dạng dữ liệu mỗi Trường – Column được chỉ định sẽ thể hiện thuộc tính của dữ liệu.
  • Kiểu dữ liệu sẽ quyết định kích thước bộ nhớ dữ liệu trường có thể sử dụng.
cac-kieu-du-lieu-trong-mysql

Vì sao phải xác định đúng kiểu dữ liệu?

Việc xác định đúng các trường trong bản và chọn loại dữ liệu là rất quan trọng để tối ưu tổng thể cơ sở dữ liệu của bạn. Ví dụ, nếu bạn có một dữ liệu cần rộng ít nhất 10 ký tự nhưng bạn lại chọn kiểu dữ liệu chỉ chứa 2 ký tự. Điều này sẽ dẫn đến rất nhiều sự cố trong lúc vận hành. Ngược lại, nếu một trường chỉ cần rộng 2 ký tự nhưng bạn lại chọn loại dữ liệu rộng 10 ký tự sẽ dẫn đến tình trạng quá tải hệ dữ liệu.

Các kiểu dữ liệu trong MySQL là gì?

Tài liệu chính thức của MySQL có bao gồm 11 kiểu dữ liệu. Ta có thể phân ra thành 3 kiểu dữ liệu chính bao gồm:

  • Kiểu dữ liệu số – Number
  • Kiểu dữ liệu Date and Time – ngày và thời gian
  • Kiểu dữ liệu String – chuỗi

Không để bạn đợi lâu, chúng ta sẽ đi sâu vào việc tìm hiểu từng loại kiểu dữ liệu trong MySQL nhé!

cac-kieu-du-lieu-trong-mysql

3 kiểu dữ liệu trong MySQL

Kiểu dữ liệu số trong MySQL

Trong hệ cơ sở dữ liệu MySQL, các kiểu dữ liệu chuẩn như Int, Smallint, Integer,… đều được hỗ trợ. Ngoài ra, MySQL còn hỗ trợ nhiều loại dữ liệu số nguyên khác như: TINYINT, MEDIUMINT, và BIGINT.

Để rõ hơn, bạn tham khảo bảng sau với nội dung giá trị lớn nhất, nhỏ nhất, có dấu và không dấu nhé!

Bảng dữ liệu kiểu số nguyên

Tên kiểu dữ liệu Độ dài

(số byte)

Giá trị nhỏ nhất

(Có dấu)

Giá trị lớn nhất

(Có dấu)

Giá trị nhỏ nhất

(Không dấu)

Giá trị lớn nhất

(Không dấu)

TINYINT 1 -128 127 0 255
SMALLINT 2 -32768 32767 0 65535
MEDIUMINT 3 -8388608 8388607 to 0 16777215
INT 4 -2147483648 2147483647 0 4294967295
BIGINT 8 -9223372036854775808 92233720368

54775807

0 184467440737

09551615

Bảng dữ liệu kiểu dấu chấm động – Floating-Point Types

Kiểu dữ liệu Độ dài

(Số Bytes)

Giá trị nhỏ nhất

(Có dấu)

Giá trị lớn nhất

(Có dấu)

Giá trị nhỏ nhất

(Không dấu)

Giá trị lớn nhất

(Không dấu)

FLOAT 4 -3.402823466E+38 -1.175494351E-38 1.175494351E-38 3.402823466E+38
DOUBLE 8 -1.7976931348623

157E+ 308

-2.22507385850720

14E- 308

0, and

2.22507385850720

14E- 308

1.797693134862315

7E+ 308

Kiểu dấu chấm cố định – Fixed-Point Types

Kiểu dữ liệu dấu chấm cố định được sử dụng nhằm để đảm độ chính xác của dữ liệu, thường sẽ được sử dụng cho các đơn vị như tiền tệ.

Chúng ta có 2 kiểu chính là:

  • DECIMAL: lưu dữ liệu theo kiểu nhị phân, có độ dài tối đa là 65.
  • NUMERIC: lưu chính xác các dữ liệu số, có độ dài trong phạm vi từ -999.99 tới 999.99.

Kiểu dữ liệu Bit – Bit Value Types

Kiểu dữ liệu Bit thường được sử dụng để lưu trường giá trị bit. Phạm vi của Bit từ 1 đến 64.

Kiểu số và kiểu thuộc tính

Đây là kiểu dữ liệu mở rộng cho phép tùy chỉnh độ dài hiển thị trong ngoặc ngay sau từ khóa.

Chúng ta có 2 kiểu dữ liệu chính bao gồm:

  • TYPE(N): N là một số nguyên và cho phép chứa N chữ số.
  • ZEROFILL: các khoảng đệm sẽ được thay thế bằng số 0. Ví dụ như: INT(5) ZEROFILL, số 5 sẽ được hiển thị là 00005.

Kiểu dữ liệu Date and Time trong MySQL

Kiểu dữ liệu Date and Time Mô tả
DATE ngày sẽ được hiển thị theo dạng CCYY-MM-DD
TIME Thời gian sẽ được hiển thị theo định dạng hh:mm:ss
DATETIME Ngày và thời gian sẽ được hiển thị theo định dạng inCCYY-MM-DD hh:mm:ss
TIMESTAMP Dấu thời gian sẽ có giá trị định dạng là: CCYY-MM-DD hh:mm:ss
YEAR Giá trị của năm sẽ được hiển thị theo định dạng CCYY hoặc YY format

Kiểu dữ liệu String trong MySQL

Với kiểu dữ liệu String – chuỗi, chúng ta sẽ có những kiểu dữ liệu phổ biến như sau:

  • CHAR
  • VARCHAR
  • BINARY
  • VARBINARY
  • BLOB
  • TEXT
  • ENUM
  • SET

Trước tiên, chúng ta sẽ tìm hiểu về CHAR và VARCHAR.

CHAR và VARCHAR

Về mặt dữ liệu, CHAR và VARCHAR là giống nhau. Tuy nhiên, chúng khác nhau ở cách lưu trữ cũng như truy xuất dữ liệu.

Điểm khác biệt lớn nhất giữa CHAR và VARCHAR bạn có thể thấy là thông qua khoảng trống.

cac-kieu-du-lieu-trong-mysql
  • CHAR: chứa chuỗi không phải nhị phân và có độ dài cố định khi bạn thực hiện khai báo, có giá trị từ 0 – 255.

Ví dụ: Trang thủ thuật =>có bán Hosting giá rẻ. Với CHAR, khoảng trắng phía trước sẽ bị loại bỏ.

  • VARCHAR: chữa chuỗi không phải nhị phân và cột là chuỗi có chiều dài thay đổi, có giá trị từ 0 đến 65,535.

Ví dụ: Trang thủ thuật => có bán Hosting giá rẻ. VARCHAR có cách lưu trữ giống như bình thường.

Kiểu dữ liệu BINARY và VARBINARY

Kiểu dữ liệu BINARY và VARBINARY giống như CHAR và VARCHAR ngoại trừ việc 2 kiểu dữ liệu BINARY và VARBINARY chứa các chuỗi nhị phân.

  • BINARY: giá trị từ 0 tới 255
  • VARBINARY: giá trị từ 0 tới 255 đối với MySQL trước 5.0.3, với MySQL phiên bản 5.0.3 trở lên, giá trị lưu trữ là từ 0 đến 65,535

Kiểu dữ liệu BLOB và TEXT

Cuối cùng, chúng ta có kiểu dữ liệu BLOB và TEXT.

  • Kiểu dữ liệu BLOB: có chứa một lượng dữ liệu lớn.
  • Kiểu dữ liệu TEXT: tương tự với BLOB và lưu trữ giá trị được coi như một chuỗi các ký tự có mã hóa.

Với cả 2 kiểu dữ liệu này sẽ có tương ứng 4 loại con với độ dài khác nhau.

Tên kiểu dữ liệu Loại Độ dài
BLOB TINYBLOB Chiều dài tối đa là 255 ký tự.
MEDIUMBLOB Chiều dài tối đa là 16777215 ký tự.
LONGBLOB Chiều dài tối đa là 4294967295 ký tự
TEXT TINYBLOB Chiều dài tối đa là 255 ký tự.
MEDIUMBLOB Chiều dài tối đa là 16777215 ký tự.
LONGBLOB Chiều dài tối đa là 4294967295 ký tự.

Vậy là chúng ta đã cùng nhau tìm hiểu về các kiểu dữ liệu trong MySQL rồi. Nếu bạn muốn t tìm hiểu chi tiết thêm về 11 kiểu dữ liệu được nhắc đến trong bài viết, bạn có thể tham khảo tài liệu chính thức của MySQL nhé! Chúc bạn thành công với sự nghiệp quản trị cơ sở dữ liệu.

Viết một bình luận