MySQL数据类型与数据类型范围入门_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1556 | 回复: 0   主题: MySQL数据类型与数据类型范围入门        下一篇 
snisn
注册用户
等级:新兵
经验:51
发帖:84
精华:0
注册:2011-10-23
状态:离线
发送短消息息给snisn 加好友    发送短消息息给snisn 发消息
发表于: IP:您无权察看 2015-4-23 14:31:41 | [全部帖] [楼主帖] 楼主

MySQL使用了很多不同的数据类型,分解成三大类:数字,日期和时间,和字符串类型。
数字数据类型:

MySQL使用所有标准的ANSI SQL数值数据类型,所以如果与MySQL不同的数据库系统这些定义会看起来也熟悉。下面的列表显示了常见的数值数据类型和它们的说明。
INT - 一个正常大小可以有符号或无符号的整数。如果带符号的,允许的范围是-2147483648到2147483647。如果没有符号,允许的范围是从0到4294967295。可以指定一个宽度达11位数字。
TINYINT -一个非常小可以有符号或无符号的整数。如果带符号的,允许的范围是从-128到127。如果没有符号,允许的范围是从0到255。可以指定一个4位数字的宽度。
SMALLINT - 一个小可以有符号或无符号的整数。如果带符号的,允许的范围是从-32768到32767。如果没有符号,允许的范围是从0到65535。可以指定一个宽度为5位数字。
MEDIUMINT - 一个中等大小的,可以有符号或无符号的整数。如果带符号的,允许的范围是-8388608到8388607。如果没有符号,允许的范围是从0到16777215。可以指定一个宽度达9位数。
BIGINT - 一个大的,可以有符号或无符号的整数。如果带符号的,允许的范围是-9223372036854775808到9223372036854775807。如果没有符号,允许的范围是从0到18446744073709551615。可以指定一个宽度达11位数字。
FLOAT(M,D) - 一个浮点数字,不能是无符号的。可以定义的显示长度(M)和小数(D)的数量。这不是必需的,将默认为10,2,其中2为小数位数和10是总人数的数字(包括小数)。小数精度可以到24位的持股量。
DOUBLE(M,D) -双精度浮点数字,不能是无符号的。可以定义的显示长度(M)和小数(D)的数量。这不是必需的,将默认为16.4,其中4个是小数位数。十进位至53位的双精度可以去。 REAL是双的代名词。
DECIMAL(M,D) - 一个解包浮点数字,不能是无符号的。每个十进制在解压缩小数,对应一个字节。定义的显示长度(M)和小数点后的位数(D)是必需的。 NUMERIC是DECIMAL的代名词。
日期和时间类型:

MySQL的日期和时间数据类型有:
DATE - 日期格式YYYY-MM-DD,1000-1-1和9999-12-31之间。例如1973年12月30日将存储为1973-12-30日。
DATETIME - 日期和时间的组合YYYY-MM-DD HH:MM:SS格式,在1000-1-1 00:00:00和9999-12-31 23:59:59。例如,1973年12月30号15:30:00将存储为1973-12-30 15:30:00.。
TIMESTAMP-1970年1月1日午夜,在2037年的某个时候之间的时间戳。这看起来像之前的DATETIME格式,不带连字符之间的数字,1973年12月30日下午3:30将被存储为19731230153000(YYYYMMDDHHMMSS)。
TIME - 存储HH:MM:SS格式的时间。
YEAR(M) - 储存年在2位或4位数字格式。如果长度指定为2(例如年(2)),年份可在1970到2069(70到69)。如果长度指定为4,年份可在1901到2155。默认长度为4。
字符串类型:

虽然数字和日期类型有些相似,将存储的大部分数据将在字符串格式。下面列出了在MySQL中常用的字符串数据类型。
CHAR(M) - 一个固定长度的字符串的长度介于1到255个字符(例如CHAR(5)),向右填充到指定的长度与空间存储。定义的长度不是必需的,但默认值是1。
VARCHAR(M) - 可变长度的字符串的长度介于1到255个字符,例如VARCHAR(25)。当创建一个VARCHAR字段必须定义一个长度。
BLOB 或 TEXT - 字段的最大长度为65535个字符。 BLOB是二进制大对象“,是用来存储大量的二进制数据,如图像或其他类型的文件。字段定义为文本也持有大量的数据,两者之间的区别是存储的数据进行排序和比较是区分大小写的BLOB,并在文本字段不区分大小写。不指定BLOB或TEXT的长度。
TINYBLOB 或 TINYTEXT -一个BLOB或TEXT列,最大长度为255个字符。不能指定TINYBLOB或TINYTEXT长度。
MEDIUMBLOB 或 MEDIUMTEXT -一个BLOB或TEXT列,最大长度为16777215个字符。不能指定MEDIUMBLOB或MEDIUMTEXT的长度。
LONGBLOB 或 LONGTEXT -一个BLOB或TEXT列,最大长度为4294967295个字符。不能指定LONGBLOB或LONGTEXT的长度。
ENUM - 枚举,这是一种奇特的术语列表。当定义一个枚举,要创建一个列表项目的值必须被选中(或它可以是NULL)。例如,如果希望字段包含“A”或“B”或“C”,则ENUM定义为ENUM('A','B','C'),只有那些值(NULL)所能填充该字段。 
上面可能写得看不清楚,下面补充一文章
1.整型(xxxint)
MySQL数据类型 含义
tinyint(m) 1个字节表示(-128~127)
smallint(m) 2个字节表示(-32768~32767)
mediumint(m) 3个字节表示(-8388608~8388607)
int(m) 4个字节表示(-2147483648~2147483647)
bigint(m) 8个字节表示(+-9.22*10的18次方)

2.浮点型(float和double)
MySQL数据类型 含义
float(m,d) 单精度浮点型,8位精度(4字节),m是十进制数字的总个数,d是小数点后面的数字个数
double(m,d) 双精度浮点型,16位精度(8字节)
参数m只影响显示效果,不影响精度,d却不同,会影响到精度。比如设一个字段定义

3.定点数(decimal)
decimal(m,d) 定点类型浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围为0~65,d小数点右侧数字的个数,范围为0~30,但不得超过m。对定点数的计算能精确到65位数字。

4.字符串(char,varchar,xxxtext)
MySQL数据类型 含义
char(n) 固定长度的字符串,最多255个字符
varchar(n)  固定长度的字符串,最多65535个字符
tinytext  可变长度字符串,最多255个字符
text  可变长度字符串,最多65535个字符
mediumtext  可变长度字符串,最多2的24次方-1个字符
longtext  可变长度字符串,最多2的32次方-1个字符 

5.二进制数据(xxxBlob)
XXXBLOB和xxxtext是对应的,不过存储方式不同,xxxTEXT是以文本方式存储的,如果存储英文的话区分大小写,而xxxBlob是以二进制方式存储的,不区分大小写。xxxBlob存储的数据只能整体读出。xxxTEXT可以指定字符集,xxxblob不用指定字符集。

6.日期时间类型(date,time,datetime,timestamp)
MySQL数据类型 含义
date 日期'2008-12-2'
time 时间'12:25:36'
datetime 日期时间'2008-12-2 22:06:44'  

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论