1.数字类型
1.整数类型
数据类型 | 字节数 | 无符号数的取值范围 | 有符号数的取值范围 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65635 | -32768~32767 |
MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 |
INT | 4 | 0~4294967295 | -2147483648~2148483647 |
BIGINT | 8 | 0~18446744073709551615 | -9223372036854775808~9223372036854775807 |
!!注意
无符号类型不可以插入负数
数据类型右边使用小括号数字标注了显示宽度,显示宽度是取值范围所能表示的最大宽度,显示宽度与取值范围无关.
零填充问题:为字段设置零填充,关键字为ZEROFILL,当数值宽度小于显示宽度时,会在左侧填充0.
对于数据类型的设置问题:将来可能参与数学运算的推荐使用整数 浮点数 定点数类型,只用来显示推荐使用字符串类型.
表的主键推荐使用整数类型.
当字段类型与数据类型不一致时,会尽可能的转为字段设置的类型.
2.浮点数类型
类型分别为:float(单精度类型)和double(双精度类型)
数据类型 | 字节数 | 精度 |
---|---|---|
float | 4 | 6位或7位 |
double | 8 | 约5位 |
!!!注意
对于精度的限制,例如float限制为6位时,当插入数据时7第七位就会被四舍五入,7位以上就会被抛弃.
3.定点数类型
字段设置关键字: DECIMAL(M,D)
M表示总位数,D表示小数点后的位数.
插入的数据小数部分不可以超出范围,如出现四舍五入导致出现精度问题.
整数范围也不可以超出范围,包括因为小数部分因为四舍五入问题导致出现的整数部分超出范围.
4.BIT类型
BIT(M) M表示位数,范围为1~64
可能使用的一些函数:
ASCII():会将字符转换为十进制的数字.
BIN():将十进制数字转换为二进制保存.
LENGTH():计算二进制的位数,例如十进制65,转换为二进制1000001,使用length()会显示为7
注意:
二进制:在二进制字符串前加前缀b,例如b'1000001',然后再通过select b'1000001',可以将二进制转为ASCLL字符后的结果,为字符 'A'.
十六进制:使用x'41'或'0x41',十进制转十六进制的函数为:HEX().
字符串:单引号和双引号,还用'\' 转义字符.
2.时间和日期类型
1.数据类型
数据类型 | 取值范围 | 日期格式 | 零值 |
---|---|---|---|
YEAR | 1901~2155 | YYYY | 0000 |
DATE | 1000-01-01~9999-12-3 | YYYY-MM--DD | 0000-00-00 |
TIME | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 |
DATETIME | 1000-01-01 00:00:00~9999-12-3 23:59:59 | YYYY-MM--DD HH:MM:SS | 0000-00-00 00:00:00 |
TIMESTAMP | 1970-01-01 00:00:00~2038-01-19 03:14:07 | YYYY-MM--DD HH:MM:SS | 0000-00-00 00:00:00 |
2.YEAR类型
1 插入数据时,可以使用字符串或数字
2 字符串:'00'~'99' , '00'~'69'的值会转换为2000~2069 年,'79'~'99' 会被转化为1970~1999
3 数字:和字符串相同,不过是'00'换为'1',2000换为2001.
3.DATE类型
1 获得当前系统日期:CURRENT_DATE和NOW()
2 YY-MM-DD和YYMMDD结果相同,都是日期YY-MM-DD
4.TIME类型
显示形式:HH:MM:SS
和YY-MM-DD和YYMMDD结果相同,都是日期YY-MM-DD,显示方式类似.
5.DATETIME类型
如上图表格
6.TIMESTAMP类型
时间戳
无任何输入或者输入为空时保存的是系统当前日期和时间.
3.字符串类型
数据类型 | 类型简介 |
---|---|
CHAR | 固定长度字符串 |
VARCHAR | 可变长度字符串 |
TEXT | 大文本数据 |
ENUM | 枚举类型 |
SET | 字符串对象 |
BINARY | 固定长度的二进制数据 |
VARBINARY | 可变长度的二进制数据 |
BLOB | 二进制大对象 |
1.CHAR和VARCHAR
char(M)和varchar(M),M表示字符串的最大长度.
2.TEXT类型
用来保存大数据文本
TINYTEXT | MEDIUMTEXT |
---|---|
TEXT | LONGTEXT |
3.ENUM类型
又称枚举类型
格式:enum("值1","值2",...)
设置枚举类型的字段,数据只能在值列表中选择,而且只能选择一个
4.SET类型
用于保存字符串对象
格式:SET("值1","值2",...)
设置set类型的字段,也要在值列表中选择,可以选择多个,用','来分隔.
5.BINARY和VARBINSRY类型
储存二进制数据
格式:BINARY(M)和VARBINARY(M)
当数据的长度不足最大长度时,将在数据后面用"\0"补齐.
!!!BINARY和VARBINARY区分大小写
6.BLOB类型
储存数据量很大的二进制数据,例如图片 PDF数据
TINYBLOB | MEDIUMBLOB |
---|---|
BLOB | LONGBLOB |