mysql学习笔记——数据类型
整数类型:
类型 | 字节数 | 默认显示宽度 |
TINYINT | 1 | 4 |
SMALLINT | 2 | 6 |
MEDIUMINT | 3 | 9 |
INT | 4 | 11 |
INTEGER | 4 | 11 |
BIGINT | 8 | 20 |
zerofill参数:数字不足的显示空间由0来填补,只能表示无符号数
当数据的实际宽度大于设置显示宽度时,设置显示宽度无效,但数据实际宽度不能大于默认显示宽度
整数类型可以自增。
浮点数类型和定点数类型:
都用来表示小数
类型 | 字节数 |
FLOAT | 4 |
DOUBLE | 8 |
DECIMAL(M,D) | M+2 |
数据类型(M,D):M数据的总长度 D小数点后的长度
四舍五入时,FLOAT 和 DOUBLE不会报错,DECIMAL会有警告
定点数以字符串的形式存储
日期与时间类型
YEAR类型: 1个字节
赋值: 4位字符串或数字表示,范围 1901~2155
2位数字表示,1~69转换位2001~2069,70~99转换位1970~1999,若输入0,则转换为0000
2位字符串表示,‘00’~‘69’转换为2000~2069,‘70’~‘99’转换位1970~1999,‘0’和‘00’效果一样
TIME类型: 3个字节
赋值: ‘D HH:MM:SS’ D表示天数,取值范围0~34
‘HHMMSS’
CURRENT_TIME 或者 NOW() 转换为当前系统时间
DATA类型: 4个字节
赋值:‘YYYY-MM-DD’ 或‘YYYYMMDD’字符串, 任何标点都可以用了做间隔符
‘YY-MM-DD’或者‘YYMMDD’字符串
YYYYMMDD或YYMMDD数字
CURRENT_TIME 或者 NOW() 转换为当前系统日期
DATATIME类型: 8个字节
赋值:‘YY-MM-DD HH:MM:SS’ 或‘YYMMDDHHMMSS’字符串
YYYYMMDDHHMMSS或YYMMDDHHMMSS数字
NOW() 转换为当前系统日期和时间
TIMESTAMP类型: 4个字节
与DATATIME类似,不同是:
CURRENT_TIMESTAMP 来输入系统当前日期与时间
输入NULL或无任何输入时,系统会输入系统当前日期与时间
时间根据时区来显示
字符串类型:
CHAR 长度固定
VARCHAR 长度不固定
TEXT 只能保存字符数据,包括 TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT
ENUM 枚举类型 属性名 ENUM('值1',‘值2’,...,‘值n’) 只能取其中一个值
SET 型 属性名 SET('值1',‘值2’,...,‘值n’) 可以取列表中的多个值
二进制类型:
BINARY 长度固定,不足最大长度的空间由‘\0’补齐
VARBINARY 长度可变
BIT 查询BIT类型数据时,要用BIN(字段名+0)来将值转换位二进制显示
BLOB 可以用来存放数据量很大的二进制数据,包括TINYBLOB MEDIUMBLOB LONGBLOB