MySQL(1)数据类型

MySQL数据类型

1.整数类型

整数类型字节数无符合数的取值范围有符合数的取值范围
tinyint10~255-128~127
smallint20~65535-32768~32767
mediumint30~16777215-8388608~8838607
int40~4294967295-2147483648~2147483647
integer40~4294967295-2147483648~2147483647
bigint80~18446744073709551615-9223372036854775808~ 9223372036854775807

整数类型的默认显示宽度
在这里插入图片描述

如何选择数据类型
  • TINYINT类型的取值范围为0~255,如果字段最大值不超过255,那选择TINYINT类型就够了。BIGINT类型的取值范围最大。
  • 最常用的整数类型是INT类型。

2.浮点数类型和定点数类型

类型字节数负数的取值范围非负数的取值范围
float4-3.402823466E~-1.175494351E-380和1.175494351E-38~3.402823466E+38
double8-1.7976931348623157E+308~-2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+308
decimal(M,D)或DEC(M,D)M+2同double型同double型

DECIMAL的有效取值范围由M和D决定,字节数是M+2,定点数的存储空间是根据其精度决定的。

如何选择数据类型
  • 对于浮点数与定点数,当插入值的精度高于实际定义的精度时,系统会自动进行四舍五入处理。
  • FLOAT型和DOUBLE型默认会保存实际精度。
  • DECIMAL型默认整数位为10,小数位为0,即默认为整数。
  • MySQL中,定点数精度比浮点数要高。如果要求对数据的精度要求比较高时,应该选择定点数。

3.日期与时间类型

类型字节数取值范围零值
year11901~21550000
date41000-01-01~9999-12-310000:00:00
time3-838:59:59~838:59:5900:00:00
datetime81000-01-01 00:00:00~9999-12-31 23:59:590000-00-00 00:00:00
timestamp419700101080001~2038011911140700000000000000
  • 使用year类型中,要区分0和‘0’,插入0,存入该字段的年份是0000,插入‘0’,存入的年份是2000。
  • time类型以HH:MM:SS 【时:分:秒】的形式显示。
  • date类型以YYYY-MM-DD【年-月-日】的形式显示。
  • datetime类型以‘YYYY-MM-DD HH:MM:SS’的形式显示。
  • timestamp类型与datetime的类型显示的格式是一样的。timestamp类型范围比较小,没有datetime类型的范围大。
如何选择数据类型
  • TIME 类型专门用来存储时间数据,而且只占3个字节,如果只需记录时间,选择TIME 类型最合适。
  • DATE类型只表示日期,如果只记录日期,选择DATE类型最合适。
  • DATETIME类型用于记录日期和时间,如果需要同时记录日期和时间,选择DATETIME类型。
  • TIMESTAMP类型的时间是根据时区来显示,如果需要显示的时间与时区对应,那就应该选择TIMESTAMP类型。

4.字符串类型

  1. CHAR类型与VARCHAR类型
    CHAR类型的长度是固定的,在创建表示就指定了。其长度可以是0~255的任意值。
    VARCHAR类型的长度是可变的,在创建表时指定了最大长度。定义时,其最大值可以取0~
如何选择数据类型
  1. CHAR类型与VARCHAR类型
  • CHAR类型的长度是固定的,VARCHAR类型的长度是在范围内可变的。VARCHAR类型占用的空间比CHAR类型小。
  • 对于长度变化比较大的字符串类型,最好选择VARCHAR。
  • CHAR类型的处理速度比VARCHAR 快,对于长度变化不大和查询速度要求较高的字符串类型,最好选择CHAR类型。
  • 例:varchar(10) ----->1~10之间变化,根据存储数据计算所占字符大小–>开辟空间–>存放数据;
    char(10):指定表时就会给属性开辟10个字符的空间。

5.二进制类型

类型取值范围
binary(M)字节数为M,允许长度为0~M的定长二进制字符串
varbinary(M)允许长度为0~M的变长二进制字符串,字节数为值的长度加1
bit(M)M位二进制数据,M最大值为64
tinyblob可变长二进制数据,最多255个字节
blob可变长二进制数据,最多(2^16-1)个字节
mediumblob可变长二进制数据,最多(2^24-1)个字节
longblob可变长二进制数据,最多(2^32-1)个字节
如何选择数据类型
  • 如果主要用来存储图片、PDF文档等二进制的数据,选择 BLOB类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值