18/08/2018, 10:40

Các kiểu dữ liệu trong MySQL

Dữ liệu là gì? Ví dụ, khi bạn lên Facebook để đăng ký tài khoản. Hệ thống yêu cầu cung cấp: Họ tên, ngày sinh, giới tính, số điện thoại,…. Sau khi bấm nút đăng ký, những thông tin đó được lưu vào hệ thống (tức là lưu vào cơ sở dữ liệu), thì những thông tin được lưu trong cơ sở dữ liệu đó ...

Dữ liệu là gì?

Ví dụ, khi bạn lên Facebook để đăng ký tài khoản. Hệ thống yêu cầu cung cấp: Họ tên, ngày sinh, giới tính, số điện thoại,…. Sau khi bấm nút đăng ký, những thông tin đó được lưu vào hệ thống (tức là lưu vào cơ sở dữ liệu), thì những thông tin được lưu trong cơ sở dữ liệu đó được gọi là DỮ LIỆU.

Kiểu dữ liệu là gì?

Kiểu dữ liệu tức là KIỂU của DỮ LIỆU

Nhắc lại ví dụ trên, chúng ta có một mẫu dữ liệu đăng ký tài khoản như sau

HỌ TÊN NGÀY SINH GIỚI TÍNH SỐ ĐIỆN THOẠI
Nguyễn Thanh Nhân 11-11-1989 Nam 9999999999
  • Dữ liệu ở cột HỌ TÊN có dạng chuỗi ký tự, nên người ta gọi cột HỌ TÊN có kiểu dữ liệu là kiểu chuỗi
  • Dữ liệu ở cột NGÀY SINH có dạng ngày tháng, nên người ta gọi cột NGÀY SINH có kiểu dữ liệu là kiểu ngày tháng
  • Dữ liệu ở cột GIỚI TÍNH có dạng chuỗi ký tự, nên người ta gọi cột GIỚI TÍNH có kiểu dữ liệu là kiểu chuỗi
  • Dữ liệu ở cột SỐ ĐIỆN THOẠI có dạng số nguyên, nên người ta gọi cột SỐ ĐIỆN THOẠI có kiểu dữ liệu là kiểu số nguyên
Trong MySQL, các kiểu dữ liệu được thay thế bởi một cái tên tiếng Anh
(Ví dụ: Kiểu chuỗi thì gọi là VARCHAR, kiểu ngày tháng thì gọi là DATE, kiểu số nguyên thì gọi là INT)

Các kiểu dữ liệu trong MySQL

Trong MySQL, kiểu dữ liệu được chia làm ba loại chính: kiểu số, kiểu văn bản, kiểu ngày tháng

Kiểu số

Kiểu dữ liệu Mô tả
TINYINT(size) Lưu trữ một số nguyên có giá trị từ -128 đến -127 hoặc 0 đến 255
SMALLINT(size) Lưu trữ một số nguyên có giá trị từ -32768 đến 32767 hoặc 0 đến 65535
MEDIUMINT(size) Lưu trữ một số nguyên có giá trị từ -8388608 đến 8388607 hoặc 0 đến 16777215
INT(size) Lưu trữ một số nguyên có giá trị từ -2147483648 đến 2147483647 hoặc 0 đến 4294967295
BIGINT(size) Lưu trữ một số nguyên có giá trị từ -9223372036854775808 đến 9223372036854775807 hoặc 0 đến 18446744073709551615.
FLOAT(size,d) Lưu trữ một số thập phân loại nhỏ (Ví dụ: 567.25). Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).
DOUBLE(size,d) Lưu trữ một số thập phân loại lớn. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).
DECIMAL(size,d) Lưu trữ như một chuỗi, cho phép một dấu thập phân cố định. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).

Kiểu văn bản

Kiểu dữ liệu Mô tả
CHAR(size) Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự
VARCHAR(size) Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự. Nếu đặt “size” lớn hơn 255 thì nó sẽ chuyển sang kiểu TEXT
TINYTEXT Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự
TEXT Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 65,535 ký tự
BLOB Dùng để lưu trữ dữ liệu nhị phân tối đa là 65,535 byte
MEDIUMTEXT Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 16,777,215 ký tự
MEDIUMBLOB Dùng để lưu trữ dữ liệu nhị phân tối đa là 16,777,215 byte
LONGTEXT Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 4,294,967,295 ký tự
LONGBLOB Dùng để lưu trữ dữ liệu nhị phân tối đa là 4,294,967,295 byte

Kiểu ngày tháng

Kiểu dữ liệu Mô tả
DATE() Lưu trữ một ngày theo định dạng YYYY-MM-DD (Ví dụ: 2016-09-12 tức là lưu ngày 12 tháng 9 năm 2016)
TIME() Lưu trữ thời gian theo định dạng HH:MI:SS (Ví dụ 17:25:36 tức là lưu 17 giờ 25 phút 36 giây)
YEAR() Lưu trữ một năm theo định dạng hai số hoặc bốn số
DATETIME() Lưu trữ một ngày cùng với thời gian theo định dạng YYYY-MM-DD HH:MI:SS (Ví dụ: 2016-09-12 17:25:36 tức là lưu ngày 12 tháng 9 năm 2016 lúc 17 giờ 25 phút 36 giây)
0