数据类型的定义: 是指数据列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
MySQL支持所有标准SQL的数值数据类型,大致可以分成三类:数值,日期/时间和字符串(字符)类型。
一:常用数值类型有整型(int)和浮点型(float)
整型INT 有五种数据集类型:TINYINT 、SMALLINT、 MEDIUMINT、 INT or INTEGER、BIGINT
浮点型FLOAT有三种数据集类型:FLOAT、DOUBLE、DECIMAL
表格截图来源:https://www.runoob.com/mysql/mysql-data-types.html
有符号和无符号的区别:计算机都是以二进制的方式来存储数据,在存储过程中涉及到一个正数和负数的问题,那么有符号值就需要一个符号位用二进制数0或1来表示正数或者是负数。如果是无符号值就不需要符号位,永远都是正数。
因为不同数据类型所占用的字节大小不同,所以在数据优化的过程中,应该选用最合理的数据类型,而不是占用字节越大越好。
浮点数类型FLOAT、DOUBLE 在数据库中存放的是近似值。
定点数类型DECIMAL 在数据库中存放的是精确值。
上述表格中M是指精度(=整数位数+小数位数),D是标度(小数点后的位数) 用途如在基金产品中对于精度要求很高的,可以使用这种类型
二.日期时间型
表示日期时间型的类型有五种:DATA 、TIME、YEAR、DATATIME、TIMESTAMP
表格截图来源:https://www.runoob.com/mysql/mysql-data-types.html
三.字符型
字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据。
字符型类型有十二种: CHAR、VARCHAR、TINYBLOB、TINYTEXT、BLOB、TEXT、MEDIUMBLOB、MEDIUMTEXT、 LONGBLOB、LOGTEXT 还有ENUM 和SET
表格截图来源:https://www.runoob.com/mysql/mysql-data-types.html
CHAR(M)类型也叫定长类型,定长指的是长度固定的
VARCHAR(M) 在MySQL中一个字节可以存储一个汉字,而在ORACLE数据库中则是两个,不要混淆了
其中ENUM(‘value’,‘value’,...) 存储需求取决于枚举值的个数(最多65,535个值)比如性别 enum(‘男’,‘女’,‘中性’)
而SET(‘value’,‘value’,...)存储需求取决于set成员的数目(最多64个成员)