如图所示,mysql中的数据类型可以分为以下几种。分别是整数、浮点数、字符串、日期(*),本文主要是为了讲解哪些数据类型是我们在使用mysql中经常
使用的。
1.整数数据类型,一般常用的是int或者bigint。bigint基本可以表示我们能用到的所有数据了。建表的时候整数类型后面的数字
是指在建表的时候如果使用zero filling 指定的整数属性。此时查询出来的时候,整数类型后面的数字表示填充到的位数。但是
在使用数据库页面管理软件的时候,其实并没什么区别。区别只会在命令行中查看才有区别。因此,这个可加可不加。说白了这里面的数字影响的是查询时的显示长度,不影响存储的长度。
2.浮点数,浮点数类型后面要加两个数字m和d。m表示数据的总长度,d表示小数点的位数。
使用double、float时候,小心十进制中的精度缺失的问题。例如10/3.float存储就是3.3333333333333336.就是指最后一位
出现精度的缺失。因此。我们在浮点数中一般使用decimal。因为decimal可以表示任何的浮点数。
也就是说,使用这个不用担心溢出的风险。数据库中基本很难用到float。基本都是用double。如果害怕出现精度缺失。那么就使用decimal。
3.字符串
char():表示定长字符串,且长度小于255字节。也就是说,如果你实际插入的不够这个字符,存储时会用空格补在后面,直到到达指定长度。查询的时候再将空格去掉。
因此,如果数据本身尾部带有空格,那么读取的时候会丢失。不认识尾部的空格
小心一个问题,就是如果插入的字符大于指定的字节长度,此时会发生丢失精度。
varchar():表示可变长度的字符,最多2^16,但是一般使用不超过255字节。超过255字节时,一般使用text类型。认识尾部的空格。不需要进行填充
text:最大字节数65535。文本数据类型,可变。适合存储长的字符串。
bolb:大数据对象,以二进制的方式存储。所以可以将一些机密通过blob保存成二进制。别人看不懂。你要用时候转化回来
4.日期
年月日的标准是 xxxx - xx - xx ,例如2020-10-30.如果我们插入的时候简写年份,例如
‘18-01-26’,此时存入的日期是2018-01-26,也就是mysql默认是21世纪之后,如果要
时分秒的标准是 XX:XX:XX 例如23:26:24
因此年月日时分秒的标准是 xxxx-xx-xx xx:xx:xx 注意在年月日和时分秒之间有一个空格。不允许省略
date : 年月日
time :时分秒
datetime : 年月日时分秒,最大值位9999年12月31日 23:59:59.需要手动输入,如果不输入,默认是null
timestamp:也是年月日时分秒,最大值是2038-12-31 23:59:59. 在没有手动输入的情况下,默认是当前时间
TCL:事务控制语言 负责实现数据库中事务支持的语言,commit rollback savepoint
DCL:数据库控制语言 管理数据库的授权,角色控制等。grant授权 revoke 取消授权