Loại dữ liệu trong SQL
- Trang trước isnull() trong SQL
- Trang tiếp theo SQL Server
Loại dữ liệu và phạm vi mà Microsoft Access, MySQL và SQL Server sử dụng.
Loại dữ liệu Microsoft Access
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
Text | Dùng cho văn bản hoặc kết hợp văn bản và số. Tối đa 255 ký tự. | |
Memo |
Memo dùng cho số lượng văn bản lớn hơn. Tối đa lưu trữ 65,536 ký tự. Ghi chú: Không thể sắp xếp các trường memo. Tuy nhiên, chúng là có thể tìm kiếm. |
|
Byte | Cho phép tất cả các số từ 0 đến 255. | 1 byte |
Integer | Cho phép tất cả các số từ -32,768 đến 32,767. | 2 byte |
Long | Cho phép tất cả các số từ -2,147,483,648 đến 2,147,483,647. | 4 byte |
Single | Định dạng đơn. Xử lý hầu hết các số thập phân. | 4 byte |
Double | Định dạng kép. Xử lý hầu hết các số thập phân. | 8 byte |
Currency |
Dùng cho tiền tệ. Hỗ trợ 15 chữ số nguyên, cộng với 4 chữ số thập phân. Gợi ý: Bạn có thể chọn sử dụng tiền tệ của quốc gia nào. |
8 byte |
AutoNumber | Trường AutoNumber tự động phân phối số cho mỗi bản ghi, thường bắt đầu từ 1. | 4 byte |
Date/Time | Dùng cho ngày và giờ | 8 byte |
Yes/No |
Trường logic, có thể hiển thị là Yes/No, True/False hoặc On/Off. Trong mã, sử dụng hằng số True và False (tương đương với 1 và 0) Ghi chú: Không cho phép giá trị Null trong trường Yes/No |
1 bit |
Ole Object | Có thể lưu trữ hình ảnh, âm thanh, video hoặc các BLOBs (Binary Large OBjects) khác. | Tối đa 1GB |
Hyperlink | Chứa liên kết đến các tệp khác, bao gồm trang web. | |
Lookup Wizard | Cho phép bạn tạo một danh sách các tùy chọn có thể chọn từ danh sách sau. | 4 byte |
Loại dữ liệu MySQL
Trong MySQL, có ba loại chính: văn bản, số và loại ngày/giờ.
Loại Text:
Loại dữ liệu | Mô tả |
---|---|
CHAR(size) | Lưu trữ chuỗi định dài (có thể chứa chữ cái, số và ký tự đặc biệt). Đặt độ dài của chuỗi trong dấu ngoặc kép. Tối đa 255 ký tự. |
VARCHAR(size) |
Lưu trữ chuỗi dài thay đổi (có thể chứa chữ cái, số và ký tự đặc biệt). Đặt độ dài tối đa của chuỗi trong dấu ngoặc kép. Tối đa 255 ký tự. |
Ghi chú: Nếu độ dài của giá trị lớn hơn 255, nó sẽ được chuyển đổi thành loại TEXT. | |
TINYTEXT | Lưu trữ chuỗi có độ dài tối đa 255 ký tự. |
TEXT | Lưu trữ chuỗi có độ dài tối đa 65,535 ký tự. |
BLOB | Dùng cho BLOBs (Binary Large OBjects). Lưu trữ tối đa 65,535 byte dữ liệu. |
MEDIUMTEXT | Lưu trữ chuỗi có độ dài tối đa 16,777,215 ký tự. |
MEDIUMBLOB | Dùng cho BLOBs (Binary Large OBjects). Lưu trữ tối đa 16,777,215 byte dữ liệu. |
LONGTEXT | Lưu trữ chuỗi có độ dài tối đa 4,294,967,295 ký tự. |
LONGBLOBDùng cho BLOBs (Binary Large OBjects). Lưu trữ tối đa 4,294,967,295 byte dữ liệu.,ENUM(,xy |
z ,v.v.) Cho phép bạn nhập danh sách các giá trị có thể. Có thể liệt kê tối đa 65535 giá trị trong danh sách ENUM. Nếu giá trị không có trong danh sách, sẽ chèn giá trị trống. |
Ghi chú: Các giá trị này được lưu trữ theo thứ tự bạn nhập. | Có thể nhập giá trị có thể theo định dạng này: ENUM('X','Y','Z') |
Loại số:
Loại dữ liệu | Mô tả |
---|---|
SETsize) | Tương tự ENUM, SET chỉ có thể chứa tối đa 64 mục trong danh sách, nhưng SET có thể lưu trữ nhiều giá trị hơn. |
SMALLINT(size) | -32768 đến 32767 thường. 0 đến 65535 vô dấu *. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. |
MEDIUMINT(size) | -8388608 đến 8388607 thường. 0 đến 16777215 vô dấu *. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. |
INT(size) | -2147483648 đến 2147483647 thường. 0 đến 4294967295 vô dấu *. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. |
BIGINT(size) | -9223372036854775808 đến 9223372036854775807 thường. 0 đến 18446744073709551615 vô dấu *. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. |
FLOAT(size,d) | Số nhỏ với điểm số lượn. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. Định nghĩa số chữ số lớn nhất bên phải dấu chấm trong tham số d. |
DOUBLE(size,d) | Số lớn với dấu phẩy động. Định nghĩa số chữ số lớn nhất trong dấu ngoặc. Định nghĩa số chữ số sau dấu phẩy động lớn nhất trong tham số d. |
DECIMAL(size,d) | Kiểu DOUBLE lưu trữ dưới dạng chuỗi, cho phép dấu phẩy động cố định. |
* Các loại số nguyên này có thêm tùy chọn UNSIGNED. Thường thì số nguyên có thể là số âm hoặc số dương. Nếu thêm thuộc tính UNSIGNED, thì phạm vi sẽ bắt đầu từ 0 thay vì một số âm nào đó.
Loại dữ liệu Date:
Loại dữ liệu | Mô tả |
---|---|
DATE() |
Ngày. Định dạng: YYYY-MM-DD Ghi chú: Phạm vi hỗ trợ từ '1000-01-01' đến '9999-12-31' |
DATETIME() |
* Kết hợp ngày và giờ. Định dạng: YYYY-MM-DD HH:MM:SS Ghi chú: Phạm vi hỗ trợ từ '1000-01-01 00:00:00' đến '9999-12-31 23:59:59' |
TIMESTAMP() |
* Thời gian戳. Giá trị TIMESTAMP lưu trữ mô tả từ nguyên thủy Unix ('1970-01-01 00:00:00' UTC) đến nay. Định dạng: YYYY-MM-DD HH:MM:SS Ghi chú: Phạm vi hỗ trợ từ '1970-01-01 00:00:01' UTC đến '2038-01-09 03:14:07' UTC |
TIME() |
Thời gian. Định dạng: HH:MM:SS Ghi chú: Phạm vi hỗ trợ từ '-838:59:59' đến '838:59:59' |
YEAR() |
Năm định dạng 2 hoặc 4 chữ số. Ghi chú: Các giá trị được phép của định dạng 4 chữ số: từ 1901 đến 2155. Các giá trị được phép của định dạng 2 chữ số: từ 70 đến 69, biểu thị từ 1970 đến 2069. |
* Mặc dù DATETIME và TIMESTAMP trả về định dạng giống nhau, nhưng cách hoạt động của chúng rất khác nhau. Trong các truy vấn INSERT hoặc UPDATE, TIMESTAMP tự động đặt giá trị của mình là ngày và giờ hiện tại. TIMESTAMP cũng chấp nhận các định dạng khác nhau, chẳng hạn như YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD hoặc YYMMDD.
Kiểu dữ liệu SQL Server
Chuỗi ký tự: Character
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
char(n) | Chuỗi cố định độ dài. Dài nhất 8,000 ký tự. | n |
varchar(n) | Chuỗi dài thay đổi. Dài nhất 8,000 ký tự. | |
varchar(max) | Chuỗi dài thay đổi. Dài nhất 1,073,741,824 ký tự. | |
text | Chuỗi dài thay đổi. Dài nhất 2GB dữ liệu ký tự. |
Chuỗi Unicode:
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
nchar(n) | Dữ liệu Unicode cố định. Tối đa 4,000 ký tự. | |
nvarchar(n) | Dữ liệu Unicode dài thay đổi. Tối đa 4,000 ký tự. | |
nvarchar(max) | Dữ liệu Unicode dài thay đổi. Tối đa 536,870,912 ký tự. | |
ntext | Dữ liệu Unicode dài thay đổi. Tối đa 2GB dữ liệu ký tự. |
Loại nhị phân:
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
bit | Cho phép 0, 1 hoặc NULL | |
binary(n) | Dữ liệu nhị phân cố định. Tối đa 8,000 byte. | |
varbinary(n) | Dữ liệu nhị phân dài thay đổi. Tối đa 8,000 byte. | |
varbinary(max) | Dữ liệu nhị phân dài thay đổi. Tối đa 2GB byte. | |
image | Dữ liệu nhị phân dài thay đổi. Tối đa 2GB. |
Loại số:
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
tinyint | Cho phép tất cả các số từ 0 đến 255. | 1 byte |
smallint | Cho phép tất cả các số từ -32,768 đến 32,767. | 2 byte |
int | Cho phép tất cả các số từ -2,147,483,648 đến 2,147,483,647. | 4 byte |
bigint | Cho phép tất cả các số từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807. | 8 byte |
decimal(p,s) |
Số thực có độ chính xác cố định và tỷ lệ. Cho phép số từ -10^38 +1 đến 10^38 -1. Tham số p chỉ ra số lượng chữ số có thể lưu trữ (cả bên trái và bên phải dấu chấm nhỏ). p phải là giá trị từ 1 đến 38. Giá trị mặc định là 18. Tham số s chỉ ra số lượng chữ số có thể lưu trữ ở bên phải dấu chấm nhỏ. s phải là giá trị từ 0 đến p. Giá trị mặc định là 0. |
5-17 byte |
numeric(p,s) |
Số thực có độ chính xác cố định và tỷ lệ. Cho phép số từ -10^38 +1 đến 10^38 -1. Tham số p chỉ ra số lượng chữ số có thể lưu trữ (cả bên trái và bên phải dấu chấm nhỏ). p phải là giá trị từ 1 đến 38. Giá trị mặc định là 18. Tham số s chỉ ra số lượng chữ số có thể lưu trữ ở bên phải dấu chấm nhỏ. s phải là giá trị từ 0 đến p. Giá trị mặc định là 0. |
5-17 byte |
smallmoney | Số dữ liệu tiền tệ từ -214,748.3648 đến 214,748.3647. | 4 byte |
money | Số dữ liệu tiền tệ từ -922,337,203,685,477.5808 đến 922,337,203,685,477.5807. | 8 byte |
float(n) |
Số dữ liệu số thực với độ chính xác di động từ -1.79E + 308 đến 1.79E + 308. Tham số n chỉ ra rằng trường này lưu trữ 4 byte hay 8 byte. float(24) lưu trữ 4 byte, trong khi float(53) lưu trữ 8 byte. Giá trị mặc định của n là 53. |
4 hoặc 8 byte |
real | Số liệu số thập phân có độ chính xác di động từ -3.40E + 38 đến 3.40E + 38. | 4 byte |
Loại dữ liệu Date:
Loại dữ liệu | Mô tả | Lưu |
---|---|---|
datetime | Từ ngày 1 tháng 1 năm 1753 đến ngày 31 tháng 12 năm 9999, độ chính xác là 3.33 milisecond. | 8 byte |
datetime2 | Từ ngày 1 tháng 1 năm 1753 đến ngày 31 tháng 12 năm 9999, độ chính xác là 100 nanosecond. | 6-8 byte |
smalldatetime | Từ ngày 1 tháng 1 năm 1900 đến ngày 6 tháng 6 năm 2079, độ chính xác là 1 phút. | 4 byte |
date | Chỉ lưu ngày. Từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999. | 3 byte |
time | Chỉ lưu thời gian. Độ chính xác là 100 nanosecond. | 3-5 byte |
datetimeoffset | Tương tự datetime2, thêm thời gian khu vực. | 8-10 byte |
timestamp | Lưu số duy nhất, cập nhật mỗi khi tạo hoặc sửa đổi một hàng. timestamp dựa trên đồng hồ nội bộ, không tương ứng với thời gian thực tế. Mỗi bảng chỉ có thể có một biến timestamp. |
Các loại dữ liệu khác:
Loại dữ liệu | Mô tả |
---|---|
sql_variant | Lưu dữ liệu các loại dữ liệu khác nhau đến 8,000 byte, trừ text, ntext và timestamp. |
uniqueidentifier | Lưu định danh duy nhất (GUID). |
xml | Lưu dữ liệu định dạng XML. Đến 2GB. |
cursor | Lưu tham chiếu đến con trỏ được sử dụng cho các hoạt động cơ sở dữ liệu. |
table | Lưu kết quả tập dữ liệu, để xử lý sau này. |
- Trang trước isnull() trong SQL
- Trang tiếp theo SQL Server