Các kiểu dữ liệu (DATA TYPE) trong MySQL
1) Dữ liệu là gì !?
- Dữ liệu (data) có thể tạm hiểu là những thông tin được lưu trữ bên trong cơ sở dữ liệu thông qua các cái bảng.
- Ví dụ: Trong cơ sở dữ liệu của tôi có một bảng SinhVien như bên dưới, các thông tin: 1 Nguyễn Thành Nhân 1993 Nam 2 La Thiếu Bảo 1988 Nam . . . . chính là dữ liệu.
MSSV | HoTen | NamSinh | GioiTinh |
1 | Nguyễn Thành Nhân | 1993 | Nam |
2 | La Thiếu Bảo | 1988 | Nam |
3 | Doãn Quốc Thiên Thanh | 1992 | Nữ |
4 | Tây Môn Khánh | 1986 | Nam |
2) Kiểu dữ liệu là gì !?
- Kiểu dữ liệu (DATA TYPE) được dùng để đại diện cho một "thể loại" dữ liệu nào đó.
- Mỗi kiểu dữ liệu sẽ có một cái tên bằng tiếng Anh, ví dụ:
- Kiểu dữ liệu TEXT dùng để đại diện cho những dữ liệu có dạng chuỗi ký tự.
- Kiểu dữ liệu INT dùng để đại diện cho những dữ liệu có dạng số nguyên.
- Kiểu dữ liệu DECIMAL dùng để đại diện cho những dữ liệu có dạng số thập phân.
- . . . .
3) Các kiểu dữ liệu trong MySQL
- Trong hệ quản trị cơ sở dữ liệu MySQL, khi tạo một cái bảng, việc xác định chính xác kiểu dữ liệu của từng cột đóng một vai trò hết sức quan trọng, nó giúp cho dữ liệu đầu vào được minh bạch, tránh nhận phải những giá trị không hợp lệ. Ngoài ra thì việc xác định chính xác kiểu dữ liệu của từng cột còn giúp tiết kiệm được tài nguyên, cải thiện tốc độ truy vấn dữ liệu, . . . .
- Trong bài học này, tôi sẽ giới thiệu tất cả những kiểu dữ liệu được hỗ trợ trong MySQL cho các bạn tham khảo, điều đó sẽ giúp các bạn biết & chọn được chính xác kiểu dữ liệu mà mình cần trong quá trình tạo bảng, nhằm để đạt được hiệu quả tối ưu nhất.
3.1) Các kiểu dữ liệu liên quan đến chuỗi ký tự
CHAR(size) |
- Một chuỗi ký tự (có thể chứa các chữ cái, số, ký tự đặc biệt). Trong đó, tham số size là tùy chọn, nó dùng để xác định độ dài tối đa của chuỗi tính theo đơn vị số lượng ký tự, nó có thể nhận một giá trị trong phạm vi từ 0 đến 255. Mặc định là 1. |
VARCHAR(size) |
- Gần giống với kiểu chữ liệu CHAR. Tuy nhiên, tham số size là bắt buộc, nó cần phải nhận một giá trị nằm trong phạm vi từ 0 đến 4,294,967,295 - Lưu ý:
|
TYNYTEXT | - Một chuỗi ký tự có độ dài tối đa 255 ký tự. |
TEXT | - Một chuỗi ký tự có độ dài tối đa 65,535 ký tự. |
MEDIUMTEXT | - Một chuỗi ký tự có độ dài tối đa 16,777,215 ký tự. |
LONGTEXT | - Một chuỗi ký tự có độ dài tối đa 4,294,967,295 ký tự. |
ENUM(str1, str2, str3) |
- Một danh sách các chuỗi (có thể lên đến 65,535 chuỗi). Khi chèn vào bảng, dữ liệu phải là một trong số các chuỗi nằm trong danh sách, nếu không sẽ bị thay thế bằng một chuỗi rỗng. - Ví dụ, nếu các bạn muốn trường nhận một trong các chuỗi X, Y, Z thì kiểu dữ liệu cần phải xác định là ENUM("X", "Y", "Z") |
3.2) Các kiểu dữ liệu liên quan đến số
TINYINT |
- Một số nguyên nằm trong phạm vi:
|
SMALLINT |
- Một số nguyên nằm trong phạm vi:
|
MEDIUMINT |
- Một số nguyên nằm trong phạm vi:
|
INT |
- Một số nguyên nằm trong phạm vi:
|
BIGINT |
- Một số nguyên nằm trong phạm vi:
|
DECIMAL(size,d) |
- Một số thập phân, trong đó:
|
3.3) Các kiểu dữ liệu liên quan đến ngày tháng
DATE |
- Một ngày với định dạng là YYYY-MM-DD (giá trị hợp lệ nằm trong phạm vi từ 1000-01-01 đến 9999-12-31) |
DATETIME |
- Một ngày & thời gian với định dạng là YYYY-MM-DD hh:mm:ss (giá trị hợp lệ nằm trong phạm vi từ 1000-01-01 00:00:00 đến 9999-12-31 23:59:59) |
TIME |
- Thời gian với định dạng là hh:mm:ss (giá trị hợp lệ nằm trong phạm vi từ -838:59:59 đến 838:59:59) |
YEAR | - Một năm với định dạng bốn chữ số (giá trị hợp lệ trong phạm vi từ 1901 đến 2155) |
- Trong quá trình tạo bảng, khi xác định kiểu dữ liệu từng cột, các bạn chỉ nên chọn kiểu dữ liệu vừa đủ đáp ứng nhu cầu công việc (như thế sẽ giúp tiết kiệm tài nguyên, cải thiện tốc độ truy vấn dữ liệu)
- Ví dụ như khi xác định kiểu dữ liệu cho cột HoTen (trong cái bảng SinhVien ở mục một), thường thì họ tên của sinh viên sẽ không vượt quá 100 ký tự, cho nên tôi chỉ cần dùng kiểu dữ liệu CHAR(100) là đủ rồi, nếu dùng những kiểu dữ liệu khác như TEXT, MEDIUMTEXT, LONGTEXT thì quá dư thừa.