VPS
Hosting
Email
Máy chủ
Firewall
Tên Miền
SSL
4
4

Những kiểu dữ liệu trong MySQL (Data Types) mà bạn cần biết

590
Lượt xem
Home Tài Liệu Kỹ Thuật Những kiểu dữ liệu trong MySQL (Data Types) mà bạn cần biết

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

Banner Hosting Cao Cấp dành cho SEOer

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

Banner Hosting Giá Rẻ dành cho cá nhân

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
CHARString (0 – 255)INTInteger (-2147483648 to 2147483647)
VARCHARString (0 – 255)BIGINTInteger (-9223372036854775808 to 9223372036854775807)
TINYTEXTString (0 – 255)FLOATDecimal (precise to 23 digits)
TEXTString (0 – 65535)DOUBLEDecimal (24 to 53 digits)
BLOBString (0 – 65535)DECIMAL“DOUBLE” stored as string
MEDIUMTEXTString (0 – 16777215)DATEYYYY-MM-DD
MEDIUMBLOBString (0 – 16777215)DATETIMEYYYY-MM-DD HH:MM:SS
LONGTEXTString (0 – 4294967295)TIMESTAMPYYYYMMDDHHMMSS
LONGBLOBString (0 – 4294967295)TIMEHH:MM:SS
TINYINTInteger (-128 to 127)ENUMMột đối tượng chuỗi chỉ có thể có một giá trị,
Có thể liệt kê tới 65535 giá trị
SMALLINTInteger (-32768 to 32767)SETMộ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
MEDIUMINTInteger (-8388608 to 8388607)BOOLEANTINYINT(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.

Chia sẻ bài viết
Đánh giá
5/5 - (1 bình chọn)
Kết nối với mình qua
Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix
Bài viết liên quan
Bình luận
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Yêu cầu Vietnix gọi lại

Vui lòng nhập thông tin để chúng tôi liên hệ lại với bạn