MySQL数据类型

所谓的数据类型,也就是只在创建表时可以选择的列字段类型,在MySQL中其实可以通过:

• help data types;:查看当前版本支持的所有数据类型。如下(MySQL5.1版本):数据类型

总体可分为数值类型、字符/串类型、时间/日期类型、其他类型四种,下面一起来聊聊吧。

1.1、数值类型

• tinyint:小整数类型,占位1Bytes,取值范围-128~127

• smallint:中整数类型,占位2Bytes,取值范围-32768~32767

• mediumint:中大整数类型,占位3Bytes,取值范围-8388608~8388607

• int | integer:常用整数类型,占位4Bytes,取值范围-2147483548~2147483647

• bigint:超大整数类型,占位8Bytes,取值范围-9223372036854775808~9223372036854775807

• float:单精度浮点数类型,占位4Bytes,取值范围-3.4E+38 ~ 3.4E+38

• double:双精度浮点数类型,占位8Bytes,取值范围-1.7E-308~1.7E+308

• decimal(m,d):小数类型,占位和取值范围都依赖m、d值决定,m是小数点后面的精度,d是小数点前面的标度。

• bit(m):存储位值,可存储m个比特位,取值范围是1~64

1.2、字符串类型

• char:定长字符串类型,存储空间0~255Bytes

• varchar:变长字符串类型,存储空间0~65535Bytes

• tinyblob:二进制短字符串类型,存储空间0~255Bytes

• tinytext:短文本字符串类型,存储空间0~255Bytes

• blob:二进制长字符串类型,存储空间0~65535Bytes

• text:长文本字符串类型,存储空间0~65535Bytes

• mediumblob:二进制大字符串类型,存储空间0~16777215Bytes

• mediumtext:大文本字符串类型,存储空间0~16777215Bytes

• longblob:二进制超大字符串类型,存储空间0~4294967295Bytes

• longtext:超大文本字符串类型,存储空间0~4294967295Bytes

• binary(m):定长字符串类型,存储空间为M个字符。

• varbinary(m):定长字符串类型,存储空间为M个字符+1个字节。

一般在为列指定数据类型时,都会varchar(255)这样写,其实中间的这个数字限制的并不是字节长度,而是字符数量,比如varchar(255),表示该列最大能存储255个字符。

1.3、时间/日期类型

• date:日期类型,占位3Bytes,格式为YYYY-MM-DD

• time:时间类型,占位3Bytes,格式为hh:mm:ss

• year:年份类型,占位1Bytes,格式为YYYY

• datetime:日期时间类型,占位8Bytes,格式为YYYY-MM-DD hh:mm:ss

• timestamp:时间戳类型,占位4Bytes,格式为YYYYMMDDhhmmss,最大可精确到微妙。

1.4、其他类型

• jsonMySQL5.7版本引入的,在此之前只能用字符串类型来存储json数据,需要通过函数辅助使用:

• json_array(...):存储一个json数组的数据。

• json_array_insert(字段,'$[下标]',"值"):在指定的json数组下标位置上插入数据。

• json_object(...):存储一个json对象。

• json_extract(字段,'$.键'):查询键为某个值的所有数据。

• json_search(....):通过值查询键。

• json_keys(字段):获取某个字段的所有json键。

• json_set(字段,'$.键',"值"):更新某个键的json数据。

• json_replace(...):替换某个json中的数据。

• json_remove(字段,'$.键'):删除某个json数据。

  :还有一些其他json类型的函数,这里不再说明,一般json类型用的较少。

• enum(选项1,选项2...选项n):新增数据时只能从已有的选项中选择一个并插入。

• set(选项1,选项2...选项n):新增数据时可以从已有的选项中选择多个并插入。

• eometry、point、linestring、polygon:空间类型(接触不多)。

稍微解释一下enum、set类型,这两种类型就类似于平时的单选框和多选框,必须从已有的选项中选择,两者的区别在于:enum枚举类型只能选择一个选项,而set集合类型可以选择多个选项(其实用的比较少,多数情况下都是直接在客户端中处理)。

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值