Kiểu dữ liệu bit trong mysql

MySQL là hệ quản trị cơ sở dữ liệu phổ biến hàng đầu hiện nay. Để sử dụng tốt MySQL, bạn cần nằm được một số kiểu dữ liệu quan trọng. Trong bài viết này, Vietnix sẽ giới thiệu bạn những kiểu dữ liệu trong MySQL mà bạn cần biết

1. Kiểu dữ liệu chuỗi (String Types)

kiểu dữ liệu chuỗi gồm 6 dạng chính là CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT.

Kiểu dữ liệu CHAR và VARCHAR

CHAR(size): Một chuỗi có độ dài CỐ ĐỊNH (có thể chứa các chữ cái, số và các ký tự đặc biệt). Tham số kích thước chỉ định độ dài cột theo ký tự – có thể từ 0 đến 255. Mặc định là 1.

VARCHAR(size):

  • Một chuỗi có độ dài VARIABLE (có thể chứa các chữ cái, số và các ký tự đặc biệt).
  • Tham số kích thước chỉ định độ dài cột tối đa tính bằng ký tự – có thể từ 0 đến 65535.

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

BINARY(size):

  • Bằng với CHAR (), nhưng lưu trữ chuỗi byte nhị phân.
  • Tham số kích thước chỉ định độ dài cột tính bằng byte. Mặc định là 1.

VARBINARY(size):

  • Bằng với VARCHAR (), nhưng lưu trữ chuỗi byte nhị phân.
  • Tham số kích thước chỉ định độ dài cột tối đa tính bằng byte.

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

TINYBLOB:

  • Dành cho BLOB (Binary Large Objects).
  • Độ dài tối đa: 255 byte.

TINYTEXT:

  • Giữ một chuỗi có độ dài tối đa là 255 ký tự.

TEXT(size):

  • Giữ một chuỗi có độ dài tối đa là 65,535 byte.

BLOB(size):

  • Dành cho BLOB (Binary Large Objects). Lưu trữ lên đến 65.535 byte dữ liệu.

MEDIUMTEXT:

  • Giữ một chuỗi có độ dài tối đa là 16,777,215 ký tự.

MEDIUMBLOB:

  • Dành cho BLOB (Binary Large Objects). Lưu trữ lên đến 16.777.215 byte dữ liệu.

LONGTEXT:

  • Giữ một chuỗi có độ dài tối đa là 4,294,967,295 ký tự.

LONGBLOB:

  • Dành cho BLOB (Binary Large Objects). Chứa tới 4.294.967.295 byte dữ liệu.

ENUM(val1, val2, val3, …):

  • Một đối tượng chuỗi chỉ có thể có một giá trị, được chọn từ danh sách các giá trị có thể có.
  • Bạn có thể liệt kê tới 65535 giá trị trong danh sách ENUM.
  • Nếu một giá trị được chèn mà không có trong danh sách, một giá trị trống sẽ được chèn.
  • Các giá trị được sắp xếp theo thứ tự bạn nhập vào.

SET(val1, val2, val3, …):

  • Một đối tượng chuỗi có thể có 0 hoặc nhiều giá trị, được chọn từ danh sách các giá trị có thể.
  • Bạn có thể liệt kê tối đa 64 giá trị trong danh sách SET.

>> Xem thêm: MySQL là gì? Toàn bộ kiến thức về MySQL

2. Kiểu dữ liệu số (Numeric Data Types)

Các kiểu dữ liệu số bao gồm 2 dạng là:

  1. Kiểu dữ liệu số nguyên.
  2. Kiểu dữ liệu số thực.

Kiểu dữ liệu số nguyên

BIT(size): Kiểu giá trị bit. Số lượng bit trên mỗi giá trị được chỉ định rõ về kích thước. Tham số kích thước có thể giữ giá trị từ 1 đến 64. Giá trị mặc định cho kích thước là 1.

TINYINT(size): Một số nguyên rất nhỏ. Phạm vi đã ký là từ -128 đến 127. Phạm vi chưa ký là từ 0 đến 255. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255).

BOOL: Số 0 được coi là sai, các giá trị khác 0 được coi là đúng.

BOOLEAN: Tương đương với BOOL.

SMALLINT(size): Một số nguyên nhỏ. Dải ô đã ký là từ -32768 đến 32767. Dải ô chưa ký là từ 0 đến 65535. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255).

MEDIUMINT(size): Một số nguyên trung bình. Dải ô đã ký là từ -8388608 đến 8388607. Dải ô chưa ký là từ 0 đến 16777215. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255).

INT(size): Một số nguyên trung bình. Dải ô đã ký là từ -2147483648 đến 2147483647. Dải ô chưa ký là từ 0 đến 4294967295. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255).

INTEGER(size): Bằng INT(size).

BIGINT(size): Một số nguyên lớn. Dải ô đã ký là từ -9223372036854775808 đến 9223372036854775807. Dải ô chưa ký là từ 0 đến 18446744073709551615. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255).

Kiểu dữ liệu số thực

FLOAT(size, d):

  • Một số dấu phẩy động. Tổng số chữ số được chỉ định về kích thước.
  • Số chữ số sau dấu thập phân được chỉ định trong tham số d. Cú pháp này không được chấp nhận trong MySQL 8.0.17 và nó sẽ bị xóa trong các phiên bản MySQL trong tương lai.

FLOAT(p):

  • Một số dấu phẩy động.
  • MySQL sử dụng giá trị p để xác định xem nên sử dụng FLOAT hay DOUBLE cho kiểu dữ liệu kết quả.
  • Nếu p từ 0 đến 24, kiểu dữ liệu sẽ trở thành FLOAT (). Nếu p từ 25 đến 53, kiểu dữ liệu trở thành DOUBLE ().

DOUBLE(size, d):

  • Một số dấu phẩy động có kích thước thông thường.
  • Tổng số chữ số được chỉ định về kích thước. S
  • ố chữ số sau dấu thập phân được chỉ định trong tham số d.

DOUBLE PRECISION(size, d)

DECIMAL(size, d):

  • Một số điểm cố định chính xác.
  • Tổng số chữ số được chỉ định về kích thước.
  • Số chữ số sau dấu thập phân được chỉ định trong tham số d. Số tối đa cho kích thước là 65. Số lớn nhất cho d là 30.
  • Giá trị mặc định cho kích thước là 10. Giá trị mặc định cho d là 0.

DEC(size, d): Bằng với DECIMAL(size,d).

3. Kiểu dữ liệu ngày và giờ (Date and Time)

Các kiểu dữ liệu ngày và giờ trong MySQL cần lưu ý về định dạng và phạm vi được hỗ trợ.

Kiểu dữ liệu DATE

  • Dữ liệu ngày tháng.
  • Định dạng: YYYY-MM-DD.
  • Phạm vi được hỗ trợ là từ ‘1000-01-01’ đến ‘9999-12-31’.

Kiểu dữ liệu DATETIME(fsp)

  • Ngày và giờ kết hợp.
  • Định dạng: YYYY-MM-DD hh: mm: ss.
  • Phạm vi được hỗ trợ là từ ‘1000-01-01 00:00:00’ đến ‘9999-12-31 23:59:59’.
  • Thêm DEFAULT và ON UPDATE trong định nghĩa cột để tự động khởi tạo và cập nhật cho ngày và giờ hiện tại.

Kiểu dữ liệu TIMESTAMP(fsp)

  • Dấu thời gian.
  • Giá trị TIMESTAMP được lưu trữ dưới dạng số giây kể từ kỷ nguyên Unix (‘1970-01-01 00:00:00’ UTC).
  • Định dạng: YYYY-MM-DD hh: mm: ss.
  • Phạm vi được hỗ trợ là từ ‘1970-01-01 00:00:01’ UTC đến ‘2038-01-09 03:14:07’ UTC.
  • Có thể chỉ định tự động khởi tạo và cập nhật cho ngày và giờ hiện tại bằng cách sử dụng.

DEFAULT CURRENT_TIMESTAMP và ON UPDATE CURRENT_TIMESTAMP trong định nghĩa cột.

Kiểu dữ liệu TIME(fsp)

  • Dữ liệu thời gian.
  • Định dạng: hh: mm: ss.
  • Phạm vi được hỗ trợ là từ ‘-838: 59: 59’ đến ‘838: 59: 59’.

Kiểu dữ liệu YEAR

  • Một năm ở định dạng bốn chữ số.
  • Các giá trị được phép ở định dạng bốn chữ số: 1901 đến 2155 và 0000.
  • Kiểu dữ liệu trong MySQL 8.0 không hỗ trợ năm ở định dạng hai chữ số.

>> Xem thêm: Xử lý datetime trong Laravel và PHP

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

Sau đây Vietnix sẽ liệt kê tóm tắt các kiểu dữ liệu đã kê ở trên:

DATE TYPEĐẶC ĐIỂMDATA TYPEĐẶC ĐIỂM
CHAR String (0 – 255) INT Integer (-2147483648 to 2147483647)
VARCHAR String (0 – 255) BIGINT Integer (-9223372036854775808 to 9223372036854775807)
TINYTEXT String (0 – 255) FLOAT Decimal (precise to 23 digits)
TEXT String (0 – 65535) DOUBLE Decimal (24 to 53 digits)
BLOB String (0 – 65535) DECIMAL “DOUBLE” stored as string
MEDIUMTEXT String (0 – 16777215) DATE YYYY-MM-DD
MEDIUMBLOB String (0 – 16777215) DATETIME YYYY-MM-DD HH:MM:SS
LONGTEXT String (0 – 4294967295) TIMESTAMP YYYYMMDDHHMMSS
LONGBLOB String (0 – 4294967295) TIME HH:MM:SS
TINYINT Integer (-128 to 127) ENUM Một đối tượng chuỗi chỉ có thể có một giá trị,
Có thể liệt kê tới 65535 giá trị
SMALLINT Integer (-32768 to 32767) SET Một đối tượng chuỗi chỉ có thể có một giá trị,
Tối đa 64 giá trị trong danh sách SET
MEDIUMINT Integer (-8388608 to 8388607) BOOLEAN TINYINT(1)

Lời kết

Hy vọng bài viết trên sẽ giúp bạn nắm được kiến thức về các kiểu dữ liệu trong MySQL. Nếu có thắc mắc hay bất kỳ ý kiến gì, mời bạn để lại bình luận phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn đã quan tâm.