MYSQL的数据类型大全

整理了两天的mysql数据类型,仅以借鉴。如有错误,欢迎各位大佬斧正。

MYSQL数据类型
类型具体类型解释存储字节(byte)
整形tinyint有符号范围-2^7到2^7-1(-128到127)无符号范围0到2^8-1(0到255)1B
smallint有符号-2^15到2^15-1(-32768到32767) ,无符号0到2^16-1(0到65535)2B
mediumint有符号-2^23到2^23-1(-8388608到8388607) ,无符号0到2^24-1(0到16777215)3B
int和integer有符号-2^31到2^31-1(-2147483648到2,147,483,647) ,无符号0到2^32-1(0到4294967295)4B
bigint有符号-2^63到2^63-1(-9223372036854775808到9223372036854775807),无符号0到2^64-1(0到18446744073709551615) 8B
浮点型double/realdouble和float属于浮点数,MySQL中4字节为单精度,8字节为双精度。例如float(5,3)中5是精度表示数字长度,3是标度表示小数点后数长度。如果不写精度和标度,则会按照实际显示,如果有精度和标度,则会将数据四舍五入后插入,系统不报错,如果a字段是double或者float,那么SUM(a)将会计算不精确,REAL只是DOUBLE PRECISION的另一个名称。 8B
float4B
定点型decimaldecimal和numeric属于定点数,精度更高,如果不设置精度和标度,刚按照默认的(10,0)进行操作,如果数据超过了精度和标度值,则会警告。其中decimal(M,D)中M表示数据的总长度(不包括小数点,2<M<66)D代表小数点后数长度(0<=D<=30)不定长
numeric默认8B
boolean型bit只能存0或1,插入数据时,插入true,false,数据库会相应的转换成1,0,查询也可以根据true或1来查询,得到的是0或1(非true或false)1bit,即1/8B
非二进制字符串类型charCHAR类型是定长的,MySQL总是根据定义的字符串长度分配足够的空间。当存储CHAR值时,MySQL会删除所有的末尾空格。CHAR值会根据需要采用空格进行填充以方便比较。不定长
varcharVARCHAR变长,节省了存储空间,所以对性能也有帮助。但是由于是变长的,在UPDATE时可能使行变得比原来更长,这就导致要做额外的工作,影响性能不定长
二进制字符串类型binaryBINARY和VARBINARY与 CHAR和VARCHAR类型有点类似,不同的是BINARY和VARBINARY存储的是二进制的字符串,而非字符型字符串。也就是说,BINARY和VARBINARY没有字符集的概念,对其排序和比较都是按照二进制值进行对比。BINARY(N)和VARBINARY(N)中的N指的是字节长度,而CHAR(N)和VARCHAR(N)中N指的是的字符长度。比如一个char(1)可以存放一个字符‘我’,但是‘我’作为中文需要两个字节,如果用binary(1)则只能存‘我’的一半。不定长
varbinary不定长
日期格式型date只有年月日的时间,格式yyyy-MM-dd--
time只有时分秒的时间,格式HH:mm:ss(24小时制)--
year只能是year(2)和year(4)两种类型,其余报错。1900<year(4)<2156,直接存入数据库,如果是year(2),输入0-69,自动加上2000年,即2000-2069年,若输入70-99,则自动加上1900年,即1970-1999--
timestamp表示yyyy-MM-dd HH:mm:ss类型的日期,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。可以使用show variables like '%time_zone%';来查询当前所在时区,CST即时中国时间,time_zone是东八区,如果改变当前时区,那么输出的时间将会发生变化。--
datetime表示yyyy-MM-dd HH:mm:ss类型的日期,对于DATETIME,不做任何改变,基本上是原样输入和输出,不受时区影响。--
二进制文件型tinyblob区分大小写的二进制文件字符串,使用blob系列需要修改mysql的配置文件,Windows、linux基本一样通过修改文件my.ini或my.cnf文件,在文件中增加 max_allowed_packet=10M(就是最大10M,mysql默认似乎1MB,增加前先查找一下确保没有设置过)255B
blob64KB
mediumblob16MB
longblob4GB
非二进制文件型tinytext区分大小写的非二进制文件字符串255B
text64KB
mediumtext16MB
longtext4GB
枚举型enumset,enum的数据类型都是字符串类型的对象,set是多项选择,enum是单项选择。其中set最多可以包含64个元素,并且可以任意取到集合中的元素。而enum则是只能取到集合中的某一个元素,最多包含65536个元素。其中1~8成员的集合,占1个字节。9~16成员的集合,占2个字节。17~24成员的集合,占3个字节。25~32成员的集合,占4个字节。33~64成员的集合,占8个字节。不定长
set不定长
point
linestring
polygon
geometry
multipoint
multilinestring
multipolygongeometrycollection

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

却诚Salong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值