SQL SELETE
SELECT
类型 | 具体类型 | 长度(byte) | 范围 | 说明 |
---|---|---|---|---|
整型 | tinyint | 1 | -128~127 0~255(unsigned) |
|
smallint | 2 | -32768~32767 0~65535(unsigned) |
||
mediumint | 3 | -8388608~8388607 0~16777215(unsigned) |
||
int | 4 | -2147483648~2147483647 0~4294967295(unsigned) |
||
bigint | 8 | -9223372036854775808~9223372036854775807 0~18446744073709551615(unsigned) |
||
浮点类型 | decimal(M,D) dec(M,D) numeric(M,D) |
M+2 | 超出精度范围,四舍五入进行处理 | 它们是同义词,其中 M 是总位数,D 是小数点后的位数,并且符号(负号和小数点)不计入位数。D 的默认值为 0,M 的默认值为 10。 |
float(M,D) | 4 | 单精度浮点型 | ||
double(M,D) | 8 | 双精度浮点型 | ||
日期时间 | date | 3 | 1000-01-01~9999-12-31 | 格式:YYYY-MM-DD |
year | 1 | 1901~2155 | 支持 2 位年份和 4 位(默认)年份 | |
time | 3 | -838:59:59~838:59:59 | 格式:HH:MM:SS | |
timestamp | 4 | 1970-01-01 00:00:00~2037 |
格式:YYYY-MM-DD HH:MM:SS,表中 timestamp 列只允许出现一次。 timestamp 和时区相关,存储时会转换为本地时区,取出时又会转换为当地时区,所以和 datetime 值显示可能不同。 |
|
datetime | 8 | 1000-01-01 00:00:00~9999 | 格式:YYYY-MM-DD HH:MM:SS | |
字符串 | char(M) | M 个字符 | 定长,不足时右侧空格补齐,超出切断,检索时自动删除尾部空格 | |
varchar(M) | M 字符 +1 或 2 个字节 | 变长,每存 2^8 及 2^16 次数据时需要一个字节记录,不删除尾部空格 | ||
tinytext | 0~255 | 长文本,存放文本 | ||
text | 0~65535 | 长文本,存放文本 | ||
tinyblob | 0~255 | 长度 1,使用指针方式存放二进制数据 | ||
blob | 0~65535 | 长度 2,使用指针方式存放二进制数据 | ||
binary(M) | M 字节 | 类似 char,但存储的是二进制字符串,所以没有字符集概念 | ||
varbinary(M) | 类似 varchar,但存储的是二进制字符串,所以没有字符集概念 | |||
特殊 | ENUM(a,b,c,d) | 1 或 2 字节 | 字符串类型,多余一存储值时删除尾空格 | |
SET(a,b,c,d) | 从中取 0 或多个组合起来存储值,删除尾空格。成员间用逗号分隔。 |