会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 数据库 - > MYSQL - > MySQL数据库技术(08)
   
   
   
MySQL数据库技术(08) MySQL数据库技...  [MYSQ...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
MySQL数据库技术(08)
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:2160
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [下一页] 


   ■ 浮点数。用于可能具有小数部分的数,如3 . 1 4 1 5 9、- . 0 0 2 7 3、- 4 . 7 8、或3 9 . 3 E + 4。可将浮点数列类型用于有小数点部分或极大、极小的数。可能会表示为浮点数的值有农作物平均产量、距离、钱数(如物品价格或工资)、失业率或股票价格等等。整型值也可
以赋予浮点列,这时将它们表示为小数部分为零的浮点值。每种数值类型的名称和取值范围如表2 - 5所示。各种类型值所需的存储量如表2-6 所示。
   CREATE TABLE 语句
   本章中例子中大量使用了C R E ATE TABLE 语句。您应该对此语句相当熟悉,因为我们在第1章中的教程部分使用过它。关于C R E ATE TABLE 语句也可参阅附录D。


    MySQL 提供了五种整型: T I N Y I N T、S M A L L I N T、M E D I U M I N T、INT 和B I G I N T。I N T 为I N T E G E R的缩写。这些类型在可表示的取值范围上是不同的。整数列可定义为UNSIGNED 从而禁用负值;这使列的取值范围为0 以上。各种类型的存储量需求也是不同的。
取值范围较大的类型所需的存储量较大。
    MySQL 提供三种浮点类型: F L O AT、DOUBLE 和D E C I M A L。与整型不同,浮点类型不能是UNSIGNED 的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。
    DOUBLE PRECISION[(M, D)] 和REAL[(M, D)] 为DOUBLE[(M, D)] 的同义词。而NUMERIC(M, D) 为DECIMAL(M, D) 的同义词。F L O AT(4) 和F L O AT(8) 是为了与ODBC 兼容而提供的。在MySQL 3.23 以前,它们为F L O AT(10, 2) 和DOUBLE(16, 4) 的同义词。自MySQL 3.23 以来,F L O AT(4) 和F L O AT(8) 各不相同,下面还要介绍。
    在选择了某种数值类型时,应该考虑所要表示的值的范围,只需选择能覆盖要取值的范围的最小类型即可。选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。对于整型值,如果数据取值范围较小,如人员年龄或兄弟姐妹数,则TINYINT 最合适。MEDIUMINT 能够表示数百万的值并且可用于更多类型的值,但存储代价较大。BIGINT 在全部整型中取值范围最大,而且需要的存储空间是表示范围次大的整型I N T类型的两倍,因此只在确实需要时才用。对于浮点值, D O U B L E占用F L O AT 的两倍空间。除非特别需要高精度或范围极大的值,一般应使用只用一半存储代价的F L O AT 型来表示数据。
    在定义整型列时,可以指定可选的显示尺寸M。如果这样,M 应该是一个1 到255 的整数。它表示用来显示列中值的字符数。例如, MEDIUMINT(4) 指定了一个具有4 个字符显示宽度的MEDIUMINT 列。如果定义了一个没有明确宽度的整数列,将会自动分配给它一个缺省的宽度。缺省值为每种类型的“最长”值的长度。如果某个特定值的可打印表示需要不止M 个字符,则显示完全的值;不会将值截断以适合M 个字符。对每种浮点类型,可指定一个最大的显示尺寸M 和小数位数D。M 的值应该取1 到2 5 5。D 的值可为0 到3 0,但是不应大于M - 2。(如果熟悉ODBC 术语,就会知道M 和D 对应于
ODBC 概念的“精度”和“小数点位数”)M 和D 对F L O AT 和DOUBLE 都是可选的,但对于DECIMAL 是必须的。在选项M 和D时,如果省略了它们,则使用缺省值。下面的语句创建了一个表,它说明了数值列类型的M 和D 的缺省值(其中不包括D E C I M A L,因为M 和D 对这种类型不是可选的):

    如果在创建表之后使用DESCRIBE my_table 语句,则输出的Field 和Type 列如下所示(注意,如果用MySQL 的3.23 以前的版本运行这个查询,则有一个小故障, 即BIGINT 的显示宽度将是21 而不是2 0。):

    每一个数字列都具有一个由列类型所决定的取值范围。如果打算插入一个不在列范围内的值,将会进行截取:MySQL 将剪裁该值为取值范围的边界值并使用这个结果。在检索时不进行值的剪裁。
    值的剪裁根据列类型的范围而不是显示宽度进行。例如,一个SMALLINT(3) 列显示宽度为3 而取值范围为-32768 到3 2 7 6 7。值12345 比显示宽度大,但在该列的取值范围内,因此它可以插入而不用剪裁并且作为12345 检索。值99999 超出了取值范围,因此在插入时被剪裁为3 2 7 6 7。以后在检索中将以值3 2 7 6 7检索该值。
    一般赋予浮点列的值被四舍五入到这个列所指定的十进制数。如果在一个F L O AT(8, 1)的列中存储1 . 2 3 4 5 6,则结果为1 . 2。如果将相同的值存入F L O AT(8, 4) 的列中,则结果为1 . 2 3 4 6。这表示应该定义具有足够位数的浮点列以便得到尽可能精确的值。如果想精确到千分之一,那就不要定义使该类型仅有两位小数。
    浮点值的这种处理在MySQL 3.23 中有例外,F L O AT(4) 和F L O AT(8) 的性能有所变化。这两种类型现在为单精度( 4 字节)和双精度( 8 字节)的类型,在其值按给出的形式存放(只受硬件的限制)这一点上说,这两种类型是真浮点类型。
    DECIMAL 类型不同于F L O AT 和D E C I M A L,其中DECIMAL 实际是以串存放的。DECIMAL 可能的最大取值范围与DOUBLE 一样,但是其有效的取值范围由M 和D 的值决定。如果改变M 而固定D,则其取值范围将随M 的变大而变大。表2 - 7的前三行说明了这一点。如果固定M 而改变D,则其取值范围将随D 的变大而变小(但精度增加)。表2 - 7的后三行说明了这一点。


[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号