mysql基本数据类型(整型)

一、 常见面试题

  • 整型都有哪些基础类型,各占几个字节
    • tinyint, smallint, mediumint, int, bigint: 1 2 3 4 8
  • int(n) 是什么意思,什么时候用到
    • 指定显示位宽,需配合 zerofill 使用(不够位宽则在前面补0),不改变存储大小(存储大小由 xxint 指定,不由 int(n) 指定)
    • 如果插入的数据位数少于指定位数,则select 的时候会补0
    • 如果插入的数据位数大于指定位数,则原样展示

二、实操验证

  1. 执行
create TABLE test_a (
aa tinyint,					-- 一个B,有符号,取值范围 正负 127
ad int,
ba int unsigned,  			-- 指定了无符号类型,如果插入 负数 则报错
bb int(4),					-- 指定显示宽度,一般和 zerofill 一起用,否则达不到效果
bc int(4) zerofill,			-- 指定了显示宽度,如果实际数字不够位宽,则填充0,一般用于报表对齐
bd int(4) unsigned zerofill -- 等同于 bc
);

结果:

  • 使用了 zerofill,则类型默认转为 unsigned
  • 如果 int(n) 不配合 zerofill,则无效
    在这里插入图片描述
  1. 执行
insert into test_a(aa, ad, ba, bb, bc, bd) values(5, 34, 23, 22, 22, 22);
insert into test_a(aa, ad, ba, bb, bc, bd) values(5, 34, 23, 43, 12, 34);
insert into test_a(aa, ad, ba, bb, bc, bd) values(5, 34, 23, 433434, 123434, 34);

结果:

  • 如果插入的数据位数少于指定位数,则select 的时候会补0
  • 如果插入的数据位数大于指定位数,则原样展示
    在这里插入图片描述

三、整型建表建议

  • 选择类型(值范围够用的前提下,尽量选小类型)
  • 确认有无符号类型
  • 确认是否需要填0对齐
create TABLE test_b (
	aa tinyint,
	ab smallint,
	ac mediumint,
	ad int,
	ae bigint,			-- 以上都是有符号类型,可以存 正负数
	ba int unsigned,  	-- 指定了无符号类型,如果插入 负数 则报错
	bb int(4),			-- 指定显示宽度,一般和 zerofill 一起用,否则达不到效果
	bc int(4) zerofill	-- 指定了显示宽度,如果实际数字不够位宽,则填充0,一般用于报表对齐
	bd int(4) unsigned zerofill	-- 等价 bc
);
  • 参考:https://blog.csdn.net/qq_43145072/article/details/127166717
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值