字段类型和合理的选择字段类型.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字段类型与合理的选择字段类型 本篇博客稍微有点长,它实际上包括两个内容:⼀是mysql字段类型的介绍, ⼆是在mysql建 过程中是如何正确选择这些字段类型; 字段类型 数值 MySQL 的数值数据类型可以⼤致划分为两个类别,⼀个是整数,另⼀个是浮点数或 ⼩数。 许多不同的⼦类型对这些类别中的每⼀个都是可⽤的,每个⼦类型⽀持不同⼤⼩的数 据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或者⽤ 零填补(ZEROFILL) 。 INT 在 MySQL 中⽀持的 5 个主要整数类型是 TINYINT ,SMALLINT , MEDIUMINT ,INT 和 BIGINT 。这些类型在很⼤程度上是相同的,只有它们存 储的值的⼤⼩是不相同的。 MySQL 以⼀个可选的显⽰宽度指⽰器的形式对 SQL 标准进⾏扩展(如 INT(6),6即是其 宽度指⽰器,该宽度指⽰器并不会影响int列存储字段的⼤⼩,也就是 ,超过6位它不会 ⾃动截取,依然会存储,只有超过它本⾝的存储范围才会截取;此处宽度指⽰器的作⽤在 于该字段是否有zerofill,如果有就未满⾜6位的部分就会⽤0来填充) ,这样当从数据库 检索⼀个值时,可以把这个值加长到指定的长度。例如,指定⼀个字段的类型为 INT(6) ,就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够⾃动地⽤空 格填充。需要注意的是,使⽤⼀个宽度指⽰器不会影响字段的⼤⼩和它可以存储的值 的范围。 万⼀我们需要对⼀个字段存储⼀个超出许可范围的数字,MySQL 会根据允许范围最 接近它的⼀端截短后再进⾏存储。还有⼀个⽐较特别的地⽅是,MySQL 会在不合规 定的值插⼊ 前⾃动修改为 。 unsigned 和 zerofill UNSIGNED 修饰符规定字段只保存正值,即⽆符号,⽽mysql字段默认是有符号 的。因为不需要保存数字的正、负符号,可以在储时节约⼀个位的空间(即翻 ⼀倍) 。从⽽增⼤这个字段可以存储的值的范围。注意这个修饰符要紧跟在数值 类型后⾯; ZEROFILL 修饰符规定 (不是空格)可以⽤来真补输出的值。使⽤这个修饰 符可以阻⽌ MySQL 数据库存储负值,如果某列设置为zerofill ,那它⾃动就 unsigned 。这个值要配合int ,tinyint ,smallint ,midiumint等字段的宽度指⽰器来 ⽤;XXint(M),如果没有zerofill ,这个M 的宽度指⽰器是没有意义的.(注意,测试前导 的时候,还是去⿊窗⼜测试;) 为什么mysql存储的值要分有符号和⽆符号呢? 因为⼀个字节,占8bit;也就1 个bit有 和1两种可能,8个bit就是2^8 = 256种可能,也就是 ~255;但如果是 有符号的话,就得拿⼀个1bit来存储这个负号,本来8bit只剩7bit ,2^7 = 128, 也就是-128~ 127(正数部分包含⼀个 ); FLOAT 、DOUBLE 和 DECIMAL 类型 MySQL ⽀持的三个浮点类型是 FLOAT 、DOUBLE 和 DECIMAL 类型。 FLOAT 数值类型⽤于 ⽰单精度浮点数值,⽽ DOUBLE 数值类型⽤于 ⽰双 精度浮点数值。 与整数⼀样,这些类型也带有附加参数:⼀个显⽰宽度指⽰器和⼀个⼩数点指 ⽰器(必须要带有指⽰器,要不然会查不到结果,并且宽度指⽰器和XXint类型的宽 度指⽰器不同,这⾥是有实际限制宽度的) 。⽐如语句 FLOAT(7 ,3) 规定显⽰的值 不会超过 7 位数字(包括⼩数位) ,⼩数点后⾯带有 3 位数字。对于⼩数点后⾯ 的位数超过允许范围的值,MySQL 会⾃动将它四舍五⼊为最接近它的值,再 插⼊它。 DECIMAL 数据类型⽤于精度要求⾮常⾼的计算中,这种类型允许指定数值的 精度和计数⽅法作为选择参数。精度在这⾥指为这个值保存的有效数字的总个 数,⽽计数⽅法 ⽰⼩数点后数字的位数。⽐如语句 DECIMAL(7 ,3) 规定了存 储的值不会超过 7 位数字

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档