数字类型
类型 | 大小(字节) | 带符号范围 | 无符号范围 | 规定无符号约束 |
---|
TINYINT | 1 | -128至127 | 0至255 | unsigned |
---|
SMALLINT | 2 | -32768至32767 | 0至65535 | unsigned |
---|
MEDIUMINT | 3 | -8388608至83388607 | | unsigned |
---|
INT | 4 | -2147483648至2147483647 | 0至4294967295 | unsigned |
---|
BIGINT | 8 | -9233372036854775808至9233372036854775807 | 0至18446744073709551615 | unsigned |
---|
FLOAT | 4 | 使用方式:float(15,3) | 15代表总位数,3代表小数位数 | 单精度浮点数值 |
---|
DOUBLE | 8 | 使用方式:double(15,3) | 15代表总位数,3代表小数位数 | 双精度浮点数值 |
---|
数字类型不用规定长度,如果插入数据小于最小值默认使用最小值。反之使用最大值
?浮点数float和double默认都是小数部分四舍五入
float如果不指定总位数和小数位数,默认是小数位数为5
时间类型
类型 | 大小(字节) | 格式 |
---|
DATE | 3 | YYYY-MM-DD |
---|
TIME | 3 | HH:MM:SS |
---|
YEAR | 1 | YYYY |
---|
DATETIME | 8 | YYYY-MM-DD HH:MM:SS |
---|
TIMESTAMP | 4 | YYYYMMDD HHMMSS |
---|
timestamp会在插入数据时使用当前时间写入,更新时也会使用当前时间写入【就算输入了值,也会使用当前时间写入】
datetime可以通过设置达到与timestamp一样的效果?
字符串类型?
类型 | 大小(字节) | 描述 |
---|
CHAR | 0-255 | 定长字符串 |
---|
VARCHAR | 0-65535 | 变长字符串 |
---|
TINYBLOB | 0-255 | 二进制字符串 |
---|
BLOB | 0-65535 | 二进制长文本 |
---|
TINYTEXT | 0-255 | 短文本字符串 |
---|
TEXT | 0-65536 | 长文本 |
---|
MEDIUMBLOB | 0-16777215 | 二进制中等长度文本 |
---|
MEDIUMTEXT | 0-16777215 | 中等长度文本 |
---|
LONGBLOB | 0-4294967295 | 二进制极大文本 |
---|
LONGTEXT | 0-4294967295 | 极大文本 |
---|
char类型如果定义了长度【char(5)】如果插入的数据长度不足5会在后面补空格,但是当使用数据的时候不会有空格【数据库自动去掉】 ;也就意味着如果插入最后带空格的数据,使用时将不会有空格
varchar则同于char如果定义了长度【varchar(5)】在varchar中的存储是这样的【例:'zhangsan8'】会计算插入的字符长度,所以相对于char的存储速度较慢
单选和多选?
enum? ? ? ? 单选
set? ? ? ? ? ? ?多选
单选enum如果插入数据是没有定义的则在表中会是空【null】
多选set如果插入数据时有重复的选项会自动去重,如果出现没有定义的选项会忽略?
?
?
|