Được biết MySQL là hệ quản trị cơ sở dữ liệu phổ biến hàng đầu hiện nay. Để có thể sử dụng tốt MySQL, bạn cần phải nắm bắt được một số kiểu dữ liệu quan trọng. Hãy theo dõi bài viết dưới đây, chúng tôi sẽ giới thiệu đến bạn những kiểu dữ liệu trong MySQL mà bạn cần phải biết.

String Types ( kiểu dữ liệu chuỗi)

Kiểu dữ liệu này bao gồm 6 dạng chính đó là VARCHAR, CHAR, VARBINARY, BINARY, BLOB, TEXT.

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

VARCHAR(size)

Mỗi chuỗi có độ dài là VARCHAR ( có chứa các chữ cái, số và đặc biệt là các ký tự đặc biệt

Tham số kích thước chỉ định độ dài cột tối đa được tính bằng ký tự – có thể sẽ là từ 0 – 65535

CHAR(size)

Là một chuỗi có độ dài cố định ( có thể chứa các chữ cái, số, các ký tự đặc biệt,…) Tham số kích thước chỉ định độ dài cột theo các ký tự – có thể từ 0-225. Mặc định là con số 1.

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

VARBINARY(size)

Giống với VARCHAR(), nhưng lưu trữ chuỗi byte nhị phân

Tham số kích thước được chỉ định độ dài cột tối đa tính bằng byte

BINARY(size)

Giống với CHAR(), nhưng lưu trữ chuỗi byte nhị phân

Tham số kích thước được chỉ định độ dài cột tính bằng byte. Mặc định là con số 1

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

TINYBLOB

Dành cho BLOB ( viết tắt của Binary Large Objects)

Độ dài tối đa: 255 ký tự

TINYTEXT

Giữ 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 ký tự

BLOB(size)

Dành cho BLOB, có khả năng lưu trữ lên đến 65.535 byte dữ liệu

MEDIUMTEXT

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

MEDIUMBLOB

Dành cho BLOB, có khả năng 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ên đến 4,292,967,295 ký tự

LONGBLOB

Dành cho BLOB, có khả năng lưu trữ lên đến 4.292.967.295 byte dữ liệu

ENUM(val1, val2,…)

Một đối tượng chuỗi chỉ có 1 giá trị, được chọn từ danh sách các giác trị có thể có

Bạn có thể liệt kê tới 65535 giá trị trong danh sách của 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 một thứ tự mà bạn nhập vào.

SET (val1, val2,…)

Một đối tượng chuỗi có thể có 0 hoặc rất nhiều giá trị, được chọn bởi 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

Numeric Data Types ( kiểu dữ liệu số)

Kiểu dữ liệu số gồm 2 dạng đó là: Kiểu dữ liệu số nguyên và kiểu dữ liệu số thực

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

  • BIT: Kiểu giá trị bit, số lượng bit trên mỗi một giá trị đều được chỉ định một cách rõ ràng về kích thước. Tham số kích thước có thể giữ giá trị từ 1 – 64. 1 là giá trị mặc định của kích thước
  • TINYINT: Một số nguyên nhỏ. Phạm vi đã ký là từ 128 – 127. Phạm vi chưa được ký là 0-255. Tham số kích thước được chỉ định chiều rộng hiển thị tối đa là 255.
  • BOOL: Số 0 được coi là sai còn các giá trị khác 0 được coi là đúng.
  • BOOLEAN: gần giống với BOOL
  • SMALLINT: một số nguyên nhỏ. Dải ô đã ký là từ 32768 đến 32767. Dải ô chưa ký là từ 0- 65635. Tham số kích thước chỉ định chiều rộng hiển thị tối đa là 255.
  • MEDIUMINT: một số nguyên trung bình. Dải ô đã ký là từ 8388608 – 8388607. Dải ô chưa ký là từ 0 – 16777215. Tham số kích thước được chỉ định chiều rộng hiển thị tối đa là 255.
  • INT: một số nguyên trung bình. Dải ô đã được ký là từ 214783648 – 2147483647. Dải ô chưa được ký là từ 0- 4294967295. Tham số kích thước chỉ định chiều rộng hiển thị tối đa là 255.
  • INTEDER: bằng với INT
  • BIGINT: Một số nguyên lớn. Dải ô đã ký là từ 9223372036854775808 – 9223372036854775807. Dải ô chưa được ký từ 0- 18446744073709551615. Tha, số kích thước được chỉ định hiển thị tối đa là 255

Kiểu dữ liệu 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ó đã bị xóa trong các phiên bản của MYSQL ở tương lai.

FLOAT(p)

  • Là một số dấu phẩy động
  • MYSQL sử dụng giá trị p để xác định nên sử dụng FLOAT hay DOUBLE cho kiểu dữ liệu kết quả.
  • Nếu p là những con số từ 0 – 24 thì kiểu dữ liệu sẽ trở thành FLOAT (). Nếu p là những con số từ 25 – 53 thì kiểu dữ liệu sẽ 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

DECIMAL(size, d)

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

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

Date and time ( kiểu dữ liệu thời gian)

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

Kiểu dữ liệu DATE

  • Kiểu dữ liệu ngày tháng
  • Định dạng: năm, tháng, ngày
  • Phạm vi được hỗ trợ là ‘1000-01-01’ – ‘ 9999-12-31

Kiểu dữ liệu DATETIME

  • Ngày và giờ được kết hợp với nhau
  • ĐỊnh dạng: năm, tháng, ngày ; giờ, phút, giây
  • Phạm vi được hỗ trợ từ ‘1000-01-01 00:00:00’ – ‘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 theo ngày và giờ hiện tại.

Kiểu dữ liệu TIMESTAMP

  • Kiểu dữ liệu 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 
  • Định dạng: năm, tháng, ngày và giờ, phút, giây
  • Phạm vi được hỗ trợ là từ ‘1970-01-01 00:00:01’ UTC – ‘2038-01-09 03:14:07’ UTC.
  • Có thể chỉ định tự động khởi tại và cập nhật cho ngày tháng năm và giờ hiện tại bằng cách sử dụng.

Kiểu dữ liệu thời gian

  • Là dữ liệu thời gian
  • Định dạng: giờ, phút, giây
  • Phạm vi được hỗ trợ là từ ‘-838: 59: 59’ – ‘838: 59: 59’.

Kiểu dữ liệu năm

  • Một số năm ở định dạng bốn chữ số
  • Các giá trị được phép chỉ định dạng bốn chữ số: 1901 – 2155 – 0000
  • Các kiểu dữ liệu trong MySQL 8.0 được hỗ trợ năm ở định dạng 2 chữ số

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

Sau đây chúng tôi sẽ liệt kê tóm tắt các kiểu dữ liệu đã kê ở trên, giúp bạn sẽ dễ hiểu hơn.

DATE TYPE ĐẶC ĐIỂM DATA 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ỗi 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ỗi 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)

Trên đây là một số thông tin mà chúng tôi muốn chia sẻ đến bạn về các kiểu dữ liệu trong MySQL. Mong rằng bài viết này sẽ giúp bạn nắm rõ hơn các kiến thức về các dữ liệu trong MySQL. Nếu còn bất kỳ thắc mắc nào liên quan đến bài viết thì hãy liên hệ ngay với chúng tôi để được giải đáp sớm nhất có thể bạn nhé.

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96