MySQL: Kiểu dữ liệu hệ thống
Kiểu dữ liệu dùng để định nghĩa loại giá trị có thể lưu trữ cho một cột nào đó của bảng.
Dưới đây là danh sách các kiểu dữ liệu hệ thống (được xây dựng sẵn) phổ biến:
|
Mục |
Kiểu dữ liệu |
Mô tả |
|---|---|---|
|
Số chính xác |
int, integer |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte trong bộ nhớ máy tính. Nó thường được sử dụng để lưu trữ giá trị số nguyên. |
|
smallint |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 2 byte trong bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -32768 đến 32767. |
|
|
tinyint |
Một cột của kiểu này chiếm 1 byte trong bộ nhớ. Có giá trị từ 0 đến 255 |
|
|
bigint |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -2^63 (-9.223.372.036.854.775.808) đến 2^63-1 |
|
|
mediumint |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 3 byte trong bộ nhớ máy tính. |
|
| decimal | Một cột được khai báo kiểu dữ liệu này sẽ có độ chính xác cao và có thể co dãn kích thước lưu trữ trong bộ nhớ. | |
| bit(M) | Lưu trữ M bit giá trị số nhị phân. M từ 1-64. Số byte cung cấp được tính: (M+7)/8 |
|
Mục |
Kiểu dữ liệu |
Mô tả |
|
Số xấp xỉ (Approximate) |
float |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte trong bộ nhớ máy tính. Biễu diễn các số chấm động từ -3.4E+38 đến 3.40E+38. |
| double | Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong bộ nhớ máy tính. Biễu diễn các số chấm động từ -1.79E+308 đến 1.79E+308. | |
|
real |
Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong bộ nhớ máy tính. Biễu diễn các số chấm động từ -1.79E+308 đến 1.79E+308. |
|
|
|
date | Chỉ biễu diễn ngày. Định dạng: YYYY-MM-DD. Hỗ trợ giá trị: '1000-01-01' đến '9999-12-31'. |
| datetime | Biễu diễn ngày và giờ. Định dạng: YYYY-MM-DD hh:mm:ss. Hỗ trợ giá trị: '1000-01-01 00:00:00' đến '9999-12-31 23:59:59'. | |
| timestamp | Biễu diễn ngày và giờ. Định dạng: YYYY-MM-DD hh:mm:ss. Hỗ trợ giá trị: '1970-01-01 00:00:01' UTC đến '2038-01-19 03:14:07' UTC. | |
| time | Biểu diễn giờ. Định dạng: hh:mm:ss. Hỗ trợ giá trị: '-838:59:59' to '838:59:59' | |
| year | Biểu diễn năm. Định dạng: YYYY. Hỗ trợ giá trị: '1901' to '2155'. |
|
Mục |
Kiểu dữ liệu |
Mô tả |
|---|---|---|
|
Chuỗi ký tự |
char(n) |
Lưu trữ chuỗi ký tự với kích thước cố định. Để dễ hình dung hơn có kiểu dữ liệu này, ta ví dụ như n=20, tức là char(20) và điều này có nghĩa là cột của bảng có kiểu này có thể lưu trữ được những chuỗi lên đến tối đa 20 ký tự. Nếu ta có một chuỗi là 'MySQL Version 8', chuỗi này gồm 15 ký tự, khi đó vì còn thừa 5 ký tự (20-15=5) nên hệ thống sẽ tự động thêm vào sau chuỗi tương ứng năm dấu cách cho đủ 20. Điều này có nghĩa rằng dữ liệu lưu trữ trong cột có kiểu char(20) sẽ luôn luôn có kích thước là 20. |
| varchar(n) | Cũng lưu trữ chuỗi ký tự nhưng với kích thước thay đổi theo thực tế của dữ liệu và kích thước tối đa là n ký tự. | |
| binary(n) | Tương tự kiểu char, nhưng lưu trữ chuỗi nhị phân. n ở đây là số byte và 0<= n <= 255 | |
| varbinary(n) | Tương tự như kiểu varchar, nhưng lưu trữ chuỗi nhị phân. | |
| text | Lưu trữ chuỗi ký tự, độ dài có thể thay đổi. Nó thường được dùng để lưu trữ văn bản có kích thước lớn, như mô tả sản phẩm chẳng hạn. Được cung cấp n+2 byte, với n<216. | |
| mediumtext | Tương tự kiểu text, nhưng được cung cấp n+3 byte, với n<224. | |
| longtext | Tương tự kiểu text, nhưng được cung cấp n+4 byte, với n<232. | |
| tinytext | Tương tự kiểu text, nhưng được cung cấp n+1 byte, với n<28. | |
| enum('val1','val2',...) | Chứa đựng các giá trị liệt kê. Được cấp phát 1 hoặc 2 byte phụ thuộc vào số lượng giá trị liệt kê (tối đa 65.535 giá trị) | |
| set('val1','val2',...) | Chứa đựng các thành phần giá trị. Được cấp phát 1, 2, 3, 4 hoặc 8 byte phụ thuộc vào số lượng thành viên đã thiết lập (tối đa 64) |