Kiểu dữ liệu trong MySQL

Tìm hiểu các kiểu dữ liệu data type trong MySQL, kiểu dạng số như int, double, float, decimal, kiểu dữ liệu ngày tháng trong MySQL như datetime, chuỗi như varchar, text …

Kiểu dữ liệu trong MySQL cho biết loại dữ liệu mà cột lưu trữ, từ đó có thể
truy vấn, tính toán theo giá trị của dữ liệu. MySQL có các loại (kiểu dữ liệu) cơ bản sau:

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

Kiểu
Độ dài (byte)
Giá trị lưu trữ

TINYINT
1
-128 đên 128 (số nguyên có dấu) hoặc 0 … 255 (số nguyên không dấu)

SMALLINT
2
-32768 … 32767 (số nguyên có dấu) hoặc 0 … 65535 (số nguyên không dấu)

MEDIUMINT
3
-8388608 … 8388607 (số nguyên có dấu) hoặc 0 … 16777215 (số nguyên không dấu)

INT
4
-2147483648 … 2147483647 (số nguyên có dấu) hoặc 0 … 4294967295 (số nguyên không dấu)

BIGINT
8
-9223372036854775808 … 9223372036854775807 (số nguyên có dấu) hoặc 0 … 18446744073709551615 (số nguyên không dấu)

Kiểu dữ liệu số thực dấu chấm động trong MySQL

Kiểu
Độ dài (byte)
Giá trị lưu trữ

FLOAT
4
-3.402823466E+38 … -1.175494351E-38 (có dấu) hoặc 1.175494351E-38 … 3.402823466E+38 (không dấu)

DOUBLE
8
-1.7976931348623157E+ 308 … -2.2250738585072014E- 308(có dấu) hoặc 0 và 2.2250738585072014E-308 … 1.7976931348623157E+ 308 (không dấu)

DOUBLE và FLOAT là kiểu biểu diễn số thực dấu chấm động (gần chính xác số thực), float dùng 4 byte còn
double có độ chính xác gấp đôi (dùng 8 byte). Ngoài ra MySQL cho phép dùng cú pháp DOUBLE(M,D) và FLOAT(M,D) với M là phần số nguyên (số chữ số) và
D là phần thập phân – số chữ số sau dấu chấm

Kiểu dữ liệu số thực dấu chấm cố định DECIMAL trong MySQL

DECIMAL : Số thực dấu chấm cố định đó là số thực nhưng số con số sau dấu chấm – phần thập phân là cố định,
ví dụ các số có hai số phần thập phân,
trong các phép toán nó không làm tròn (biểu diễn gần đúng) như float,
double nên nó chính xác hơn (ví dụ nếu float thì 0.1 + 0.2 có thể là 0.300000001 còn với DECIMAL nó sẽ là 0.30).
Trong MySQL các số dạng này biểu diễn bởi kiểu dữ liệu DECIMAL và NUMERIC,
nó được biểu diễn cho các số chính xác như tiền tệ. MySQL cũng dùng cú pháp DECIMAL(M,D) để xác định
rõ phần nguyên và thập phân.

Kiểu dữ liệu DATE, TIME, DATETIME, TIMESTAMP, YEAR trong MySQL

Kiểu
Mô tả
Định dạng hiện thị
Giá trị lưu trữ

DATETIME
Lưu trữ đủ thông tin năm-tháng-ngày-giờ-phút-giây
YYYY-MM-DD HH:MM:SS
‘1000-01-01 00:00:00’ đến ‘9999-12-31 23:59:59’

DATE
Lưu trữ đủ thông tin năm-tháng-ngày
YYYY-MM-DD
‘1000-01-01 00:00:00’ đến ‘9999-12-31 23:59:59’

TIMESTAMP
Lưu trữ thời gian (năm-tháng-ngày-giờ-phút-giây) của
timezone hiện tại được convert về UTC. Khi truy vấn đọc thì tự động
convert về timezone hiện tại(timezone hiện tại thường là timezone của Server).
Như vậy cùng một giá trị TIMESTAMP, nhưng tùy thuộc vào timezone của server mà giá trị đọc được
có thể khác nhau.
YYYY-MM-DD HH:MM:SS

‘1970-01-01 00:00:01’ UTC

đến

‘2038-01-19 03:14:07’ UTC

YEAR
Sử dụng 1 byte để lưu trữ năm
YYYY
1901 tới 2155 và giá trị 0000

Kiểu dữ liệu chuỗi ký tự trong MySQL

Lưu trữ dữ liệu chuỗi MySQL có các kiểu dữ liệu: CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET

Kiểu
Mô tả

CHAR(n)
Kiểu dữ liệu char trong MySQL lưu trữ chuỗi có chiều dài cố định (n ký tự từ 0 – 255, do bạn chỉ định khi tạo bảng, mặc định char thì dài 1),
nó luôn sử dụng cùng một lượng bộ nhớ để lưu trữ cho mỗi chuỗi (kể cả ít ký tự hơn, nếu sử dụng ít hơn
thì ở cuối là khoảng trắng), tuy vậy khi đọc khoảng trắng ở phần cuối tự loại bỏ.

VARCHAR(n)
Kiểu dữ liệu varchar trong MySQL lưu trữ chuỗi có chiều dài tối đa n (n ký tự từ 0 – 65535, do bạn chỉ định khi tạo bảng, mặc định varchar thì dài 80),
tùy thuộc vào độ dài lưu trữ của từng chuỗi thì nó sẽ sử dụng lượng bộ nhớ phù hợp để lưu trữ (khác char ở trên),
chuỗi bạn lưu trữ thế nào thì đọc ra như thế (kể cả khoảng trắng ở cuối nếu có).

BINARY(n)
Giống CHAR, nhưng chuỗi lưu trữ ở dạng nhị phân (các byte của chuỗi). Dữ liệu chuỗi muốn lưu trữ
bạn phải chuyển thành mảng byte để lưu, hoặc chính là các byte của một file nhị phân.

VARBINARY(n)
Giống VARCHAR, nhưng chuỗi lưu trữ ở dạng nhị phân.

BLOB
Chứa các đối tượng nhị phân lớn (ví dụ file hình ảnh). Giá trị lưu trữ là chuỗi nhị phân.
BLOB chia thành bốn kiểu theo khả năng lưu trữ tối đa gồm: TINYBLOB – 255 byte,
BLOB – 65535 byte, MEDIUMBLOB – 16777215 byte, LONGBLOB – 4294967295 byte.

TEXT
Chứa chuỗi dài. Giá trị lưu trữ là chuỗi theo bộ ký tự (bảng mã ASCII) giống char, varchar.
Có bốn kiểu theo độ dài chuỗi lưu trữ tối đa:
TINYTEXT – 255 ký tự; TEXT – 65535 ký tự; MEDIUMTEXT – 16777215 ký tự; LONGTEXT – 4294967295 ký tự.

ENUM
Kiểu ENUM trong MySQL (liệt kê), nó lưu trữ giá trị là một chuỗi, nhưng giá trị chuỗi phải
thuộc một danh sách cho phép được liệt kê khi tạo bảng. Ví dụ kiểu
ENUM(‘NAM’,’NỮ’) thì cột đó chỉ được lưu chuỗi có giá trị bằng ‘NAM’ hoặc ‘NỮ’.

SET
Giống ENUM, nhưng cột có thể không chứa giá trị nào, hoặc chứa nhiều chuỗi có trong SET.

ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB

Đăng ký nhận bài viết mới