MySQL数据类型和属性
(2010-10-19 11:54:48)
标签:
mysql
数据类型
杂谈
数据类型和属性
对MySQL表每个列中的数据实行严格的控制,这是数据驱动应用程序成功的关键。
这些数据类型的行为可以通过包含属性(attribute)进一步调整。
数据类型分为三种类别:日期和时间、数值以及字符串
一、日期和时间数据类型
1、DATE
DATE数据类型负责存储日期信息。MySQL以标准的YYYY-MM-DD格式显示DATE值。这些值可以使用
数字或字符串来插入。
2、DATETIME
DATETIME数据类型负责存储日期和时间信息的组合。与DATE一样,DATETIME值以标准格式YYYY-MM-DD
HH:MM:SS存储。
这些值也可以使用数值或字符串来插入。
3、TIME
TIME数据类型负责存储时间信息,支持的范围相当大,不仅足以表示标准时间和军用时间格式,还可以表示扩张时间间隔。
4、TIMESTAMP[(M)] [DEFAULT] [ON UPDATE]
TMIESTAMP数据类型不同于DATETIME,MySQL执行了影响TIMESTAMP数据的INSERT或UPDATE操作之后,会自动将其更新为当前
的日期和时间。TIMESTAMP值显示为HH:MM:SS格式,与DATE和DATETIME数据类型一样,也可以是数值或字符串进行赋值。
TIMESTAMP值可以采用如下格式显示:YYYYMMDDHHMMSS(14位数)、YYMMDDHHMMSS(12位数)、YYYYMMDD(8位数)和YYMMDD(6位数)
范围从1970-01-01 00:00:01 到2037-12-31 23:59:59 ,其存储需要4个字节。
4.1版本开始,TIMESTAMP值始终存储为YYYY-MM-DD HH:MM:SS
5.YEAR[(2|4)]
YEAR数据类型负责存储年份特定信息。
两位数值 1~99,范围从1~69的值转换为2001~2069的值,范围从70~99的值转换为1970~1999的值。
四位数值 1901~2155。
二、数值数据类型
1、BOOL和BOOLEAN
BOOL和BOOLEAN只是TINYINT(1)别名,用于赋值0或1.
2、BIGINT [(M)]
BIGINT数据类型提供了MySQL最大的整数范围,支持符号范围-9 223 372 036 854 775 808 ~
9 223 372 036 854 775 807 ,无符号数范围从0~18 446 744 073 709 551 615
共20位
3、INT [(M)] [UNSIGNED] [ZEROFILL]
INT数据类型提供了MySQL的第二大整数范围,支持的有符号数范围-2 147 483 648 ~9 223 372 036 854
775 807
无符号数范围从0~4 294 967 295. 共10位
3、MEDIUMINT [(M)] [UNSIGNED] [ZEROFIL]
MEDIUMINT数据类型提供了MySQL的第三大整数范围,支持的有符号数范围从-8 388 608 ~8 338 607
无符号整数范围从 0~16 777 215 共8位
4、SMALLINT [(M)] [UNSIGNED] [ZEROFILL]
SMALLINT数据类型提供了MySQL的第四大整数范围,支持的有符号数范围从-32
768~32768,无符号0~65535.
TINYINT [(M)] [UNSIGNED] [ZEROFILL]
有符号范围从-128~127 ,无符号0~256。
5.DECIMAL ([M[.D]]) [UNSIGNED] [ZEROFILL]
DECIMAL数据类型是存储为字符的浮点数。
6、DOUBLE([M,D]) [UNSIGNED] [ZEROFILL]
DOUBLE数据类型是双精度浮点数。
7、FOLAT([M,D]) [UNSIGNED] [ZEROFILL]
FLOAT数据类型变体是MYSQL的单精度浮点数表示形式。
8、FOLAT (precision) [UNSIGNED] [ZEROFILL]
FLOAT数据类型变体ODBC兼容性提供,其精度对于单精度可以从1~24,双精度为25~53.
三、字符串数据类型
1、[NATIONAL] CHAR(Length) [BINARY | ASCII | UNICODE]
CHAR数据类型为MySQL提供了固定长度的字符串表示形式,支持最大255个字符。如果插入的字符串不足Length空间,
剩余部分将填充为空白。如果Length是一个字符,则用户可以忽略长度引用。只使用CHAR。还可以指定零长度的CHAR并有
NOT NULL属性,它只允许NULL或"".提供national
属性是出于兼容性原因,因为SQL-99通过这个属性来指定应该对列使用默认
字符集,而Mysql已经默认地要求使用默认字符集。给出BINARY属性是使该列的值以区别大小写的方式排序,忽略该属性将以区分
大小写的方式排序。
2.[NATIONAL] VARCHAR(Length) [BINARY]
VARCHAR数据类型是MYSQL的可变长度字符串表示形式,版本5.0.3支持的长度从0~65536个字符。
BINARY属性是该列的值以区分大小写的形式排序,忽略该属性将以不区分大小写的方式排序。
5.0.3版本开始,出于标准兼容性的考虑,尾部的空白也会存储。
3.LONGBLOB
LONGBLOB数据类型是MySQL最大的二进制字符串表示形式,支持最大长度4 294 967 295个字符,共10位
4.LONGTEXT
LONGTEXT数据类型是MySQL最大的非二进制字符串表示形式,支持最大长度4 294 967 295个字符,共10位。
5.MEDIUMBLOB
MEDIUMBLOB数据类型是MYSQL第二大二进制字符串表示形式,支持最多16 777 215个字符,共8位。
6.MEDIUMTEXT
MEDIUMTEXT数据类型是MySQL的第二大非二进制文本字符串,能够存储最大长度16777215个字符,共8位。
7.BLOB
BLOB数据类型是MySQL第三大二进制字符串表示形式,支持最大长度65535个字符。
8.TEXT
TEXT数据类型是MySQL第三大非二进制字符串表示形式,支持最大长度65535个字符。
9.TINYBLOB
TINYBLOB数据类型是MySQL最小的二进制字符串表示形式,支持最大长度255个字符。
10.TINYTEXT
TINYTEXT类型是MySQL最小的非二进制字符串表示形式,支持最大长度255个字符。
11.ENUM("memeber1","member2",..."member65535")
ENUM数据类型最多存储一组预定义值中的某一个成员提供了一种方法,这组值最多包括65535个不同成员。成员的选择限制为
列定义中声明的值。如果列声明包括NULL属性,则null将认为是一个有效值。并且是默认值,如果声明NOT
NULL,则列表的第一个成员是默认值。
12.SET("member1","member2",..."member64")
SET数据类型为指定一组预定义中的零个或多个值提供了一种方法,这组值最多包括64个成员。
值的选择限制为列定义中声明的值。存储需求是1、2、3、4或8个值,这取决于成员的数目,可以使用公式(N+7)/8确定确认的需求,这里N是集合大小。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。