一、数值类(INT)
1、整型
mysql | 对应C++ |
TINYINT | char |
SMALLINT | short |
MEDIUMINT | int |
INT | int |
BIGINT | int64_t |
2、浮点型
mysql | 对应C++ |
FLOAT | float |
DOUBLE | double |
DECIMAL | long double |
3、时间类
mysql | 对应C++ |
DATE | struct tm |
TIME | struct tm |
YEAR | int |
DATETIME | struct tm |
TIMESTAMP | struct time_t |
二、文字类(TEXT)
mysql | 对应C++ |
NCHAR | unsigned char* |
CHAR | char* |
NVARCHAR | unsigned char* |
VARCHAR | char* |
TINYTEXT | char[256] |
TEXT | string |
MEDIUMTEXT | string |
LONGTEXT | string |
unsigned char* 和 char*的区别:
-
Unsigned vs. Signed:
unsigned char*
中的unsigned char
表示无符号字符,范围是 0 到 255。char*
中的char
可能是有符号的(取决于编译器的实现),范围是 -128 到 127 或 0 到 255,具体取决于系统和编译器。
-
默认情况下的符号性:
- 如果你使用
char*
,则取决于编译器的实现,可能是有符号的,也可能是无符号的。 - 如果你使用
unsigned char*
,则明确表示无符号。
- 如果你使用
-
处理二进制数据:
unsigned char*
常用于处理二进制数据,因为它没有负数的概念,适用于无符号整数的范围。char*
也可以用于处理二进制数据,但在处理一些无符号数据时可能会引起歧义。
在许多情况下,特别是在处理二进制数据、图像处理、底层内存操作等场景时,使用 unsigned char*
通常更为明确和合适。
三、二进制类(BLOB)
mysql: BLOB TINYBLOB MEDIUMBLOB LONGBLOB
对应C++: 都是 char*
注解:BLOB(Binary Large Object)是一种用于存储二进制数据的数据类型。BLOB字段可用于存储各种类型的二进制数据,包括图像、音频、视频、文档等