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.
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é!
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ả |
---|---|
ngày sẽ được hiển thị theo dạng CCYY-MM-DD | |
Thời gian sẽ được hiển thị theo định dạng hh:mm:ss | |
Ngày và thời gian sẽ được hiển thị theo định dạng inCCYY-MM-DD hh:mm:ss | |
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.
- 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ụ: TinoHost =>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ụ: TinoHost => 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.
FAQs về các kiểu dữ liệu trong MySQL
MariaDB và MySQL có liên hệ gì với nhau hay không?
Trước tiên, MariaDB là một phiên bản nhánh mã nguồn mở của MySQL do chính nhà sáng lập của MySQL thực hiện do lo sợ việc sau khi bị Oracle mua lại MySQL, cơ sở dữ liệu này sẽ không còn miễn phí nữa.
Nên sử dụng MariaDB và MySQL?
Về mặt chi phí, MariaDB vẫn sẽ đảm bảo trong tương lai vẫn là mã nguồn mở miễn phí. Tuy nhiên, đối với MySQL, Oracle sẽ có thể thay đổi chính sách sử dụng bất cứ lúc nào và dĩ nhiên là bạn sẽ phải chọn giải pháp “cắn răng chịu trả phí” hoặc chuyển đổi nền tảng sử dụng. Về mặt chức năng, bạn có thể xem thêm về bài viết So Sánh MariaDB và MySQL của Tino Group để hiểu thêm về công dụng nhé!
Làm sao để chuyển MySQL sang Mariadb DirectAdmin?
Nếu trong tương lai MySQL thay đổi chính sách sử dụng thật, bạn có thể lựa chọn việc thay đổi nền tảng. Tuy việc này sẽ mất thời gian, công sức nhưng tiền bạc sẽ được cắt giảm rất nhiều. Bạn có thể lựa chọn việc chuyển đổi dữ liệu từ MySQL sang Mariadb DirectAdmin cũng là một giải pháp rất tối ưu đấy! Bạn có thể tham khảo bài viết hướng dẫn của Tino Group tại đây.
Làm sao để fix các lỗi MySQL trong WordPress?
Nếu bạn đang gặp các vấn đề trong WordPress liên quan đến MySQL, tn có rất nhiều bài viết để hỗ trợ các bạn đấy! Ví dụ như: