mysql支持oci_MySQL支持的数据类型

---恢复内容开始---

每个常量、变量和参数都有数据类型,它用来指定一定的存储格式,约束和有效范围。MySQL提供了多种数据类型,主要包括数值型、字符串类型、日期和时间类型,不同的MySQL版本支持的数据类型可能会稍有不同。这里一MySQL5.0版本为例。

1:数值类型

MySQL支持所有标准SQL中的数值类型,其中包括严格数值类型(INTEGER、SMALLINT(短整型)、DECIMAL(十进制)和NUMERIC(数值)),以及近似数值类型(FLOAT、REAL(实数)和DOUBLE PRECISION),并在此基础上做了扩展,扩展后增加了TINYINT、MEDIUMINT和BIGINT这3种长度不同的整型,并增加了BIT类型。用来存放位数据,其中INT是INTEGER的同名词,DEC是DECIMAL的同名词、

51b81d9ea149f96c7f7e26199c9cbfe7.png

0254d08e19f57bd7a386a307fdbdb5c5.png

在整数类型中,按照取值范围和存储方式不同,分为tinyint、smallint、mediumint、int和bigint这5个类型。如果超出类型范围的操作,会发生“out of range”错误提示。为了避免此类问题发生,在选择数据类型时要根据应用的实际情况确定其取值范围,最后根据确定的结果慎重选择数据类型。

对于整数类型,MySQL还支持在类型名称后面的小括号内指定显示宽度,例如int(5)表示数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认是int(11),一般配合zerofill使用,顾名思义,zerofill就是用“0”填充的意思,也就是在数字位不够的空间用字符“0”填满,一下几个例子分别描述了填充前后的区别。

(1)创建表t1,有id1和id2两个字段,指定其数值宽度分别为int和int(5);

13125070a9cb7add738cf724c940ba87.png

在id1和id2中都插入数值1,可以发现格式没有异常;

c257fe961aed0bcf1387c2b94d5b5c2e.png

分别修改id1和id2的字段类型,加入zerofill参数:

f427e7d85acf31818126349e9bf61e54.png

可以发现,在数值前面用字符“0”填充了剩余的宽度。大家可能有所疑问,设置了宽度限制后,如果插入大于宽度限制的值,会不会截断或者插不进去报错?答案是肯定的:不会对插入的数据有任何影响,还是按照类型的实际精度进行保存,这时,宽度格式实际已经没有意义,,左边不会再填充任何的“0”字符,下面在表t1的字段id1中插入数值1,id2中插入数值1111111,位数为7,大于id2显示位数5,再观察一下测试结果:

8fba3f16b519b57df3c4e4c57604ffad.png

很显然,如上面所说的,id2中显示了正确的数值,并没有受宽度限制影响,

所有的整数类型都有一个可选属性UNSIGNED(无符号),如果需要在字段里面保存非负数或者需要较大的上限值时,可以用此选项,它的取值范围是正常值的下限取0,上限取原值的2倍,例如,tinyint的有符号的范围是-128~+127.而无符号的范围是0~255.如果一个列指定为zerofill,则MySQL自动为该列添加UNSIGNE

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值