Đượ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.
Nội dung
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
- Clean Code là gì? Tại sao phải nên sử dụng CLEAN CODE?
- Sử dụng CLI thay vì GUI bạn đã biết hay chưa?
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. |