mysql负数类型_MySQL数据类型详解
MySQL数据类型,可以被分为3类:数值类型、⽇期和时间类型以及字符串(字符)类型
⽅括号(“[”和“]”)指出可选的类型修饰符的部分
M
指出最⼤的显⽰尺⼨。最⼤的合法的显⽰尺⼨是 255 。
D
适⽤于浮点类型并且指出跟随在⼗进制⼩数点后的数码的数量。最⼤可能的值是30,但是应该不⼤于M-2。
UNSIGNED
为“⽆符号”的意思, 即为⾮负数。是MYSQL⾃定义的类型,⾮标准SQL。unsigned 属性只针对整型,⽤途:
1.UNSIGNED 可⽤来约束数据的范围,例如有些年龄这种值⼀般能是负数,那么就可以设置⼀个 UNSI
GNED ,这样可以不允许负数插⼊。
2.可以增加数值范围(相当于把负数那部分加到正数上)。不过少⽤,不⽅便移植。
ZEROFILL
填零,即在数字长度不够的数据前⾯填充0,以达到设定的长度,MySQL中字段设置为该属性时,将为该列⾃动地增加UNSIGNED属性。
⼀、数值类型
整型:(1个字节是8位)
在MySQL中创建整型字段INT(或其它像tinyint)时,可以设定该字段的位数。如int(11),int(5),如果不指定位数,INT型默认长度为11。字段插⼊长度与int设定的M⽆关,当插⼊长度⼤于设定的M时,字段值不会被截断,还是按照类型的实际精度进⾏保存。
整型字段有个ZEROFILL属性,在数字长度不够的数据前⾯填充0,以达到设定的长度。M值只当属性为ZEROFILL时,才有区别效果。
如表结构为id1 int(10) ,id2 int(5),对应数据为 第⼀⾏为(1,1),第⼆⾏为(1111111,1111111),当id1,id2字段设置为ZEROFILL属性时,显⽰数据为第⼀⾏为(0000000001,00001),第⼆⾏为(0001111111,1111111),不够的位数会以0补齐。
数据类型
起泡排序是冒泡排序吗⼤⼩
vlookup公式怎么用详细M
(默认值)
范围(有符号)
范围(⽆符号)
⽤途
tinyint [(M)] [UNSIGNED] [ZEROFILL]
1字节
4软件下载app
-128~127 (-27~27-1)
0 ~ 255 (0 ~ 28-1)
⾮常⼩整数值
smallint [(M)] [UNSIGNED] [ZEROFILL]
2字节
6
-32768~32767(-215~ 215-1)
0 ~ 65535 (0 ~ 216-1)
较⼩整数
mediumint [(M)] [UNSIGNED] [ZEROFILL]
c语言函数指针应用场地
3字节
9
-8388608 ~ 8388607 (-223 ~ 223-1)
0 ~ 16777215 (0 ~ 224-1)
中等⼤⼩整数
int [(M)] [UNSIGNED] [ZEROFILL]
4字节
11
-2147483648 ~ 2147483647(-231 ~ 231-1)
0 ~ 4294967295 (0 ~ 232-1)
标准整数
integer [(M)] [UNSIGNED] [ZEROFILL]
4字节
11
-2147483648 ~ 2147483647(-231 ~ 231-1)
0 ~ 4294967295 (0 ~ 232-1)
和int相同java从入门到精通全套教程
bigint [(M)] [UNSIGNED] [ZEROFILL]
8字节
20
-9223372036854775808 ~9223372036854775807
(-263 ~ 263-1)
0 ~ 18446744073709551615
(0 ~ 264-1)
较⼤整数
浮点型:
(M,D) 表⽰总共M位,D个⼩数位,D包含于M中。浮点类型不能是unsigned的。
对每种浮点类型,可指定⼀个最⼤的显⽰尺⼨M和⼩数位数D。M的值应该取1到255。D的值可为0到30,但是不应⼤于M-2。M和D对float和double都是可选的,但对于decimal是必须的,在选项M和D时,如果省略了它们,则使⽤缺省值,如果D被省略,它被设置为0。如果M被省掉,它被设置为10。
mysql语句分类数据类型
⼤⼩
⽤途
float [(M,D)] [ZEROFILL]
4字节
单精度浮点型,8位精度;参数m只影响显⽰效果,不影响精度,d却不同,会影响到精度;m是⼗进制数字的总个数,d是⼩数点后⾯的数字个数
double[(M,D)] [ZEROFILL]
8字节
双精度浮点型,16位精度;参数m只影响显⽰效果,不影响精度,d却不同,会影响到精度
real[(M,D)] [ZEROFILL]
8字节
同double
decimal[(M[,D])] [ZEROFILL]
4字节
decimal(m,d) 定点类型浮点型在数据库中存放的是近似值,⽽定点类型在数据库中存放的是精确值。参数m是定点类型数字的最⼤个数(精度),范围为0~65,d⼩数点右侧数字的个数,范围为0~30,但不得超过m。对定点数的计算能精确到65位数字。DECIMAL 数据类型⽤于精度要求⾮常⾼的计算中,这种类型允许指定数值的精度和计数⽅法作为选择参数。精度在这⾥指为这个值保存的有效数字的总个数,⽽计数⽅法表⽰⼩数点后数字的位数。⽐如语句 DECIMAL(7,3) 规定了存储的值不会超过 7 位数字,并且⼩数点后不超过 3 位
numeric[(M,D)] [ZEROFILL]
4字节
同decimal
DECIMAL 类型不同于FLOAT和DECIMAL,其中DECIMAL 实际是以串存放的。DECIMAL 可能的最⼤取值范围与DOUBLE ⼀样,但是其有效的取值范围由M 和D 的值决定。如果改变M ⽽固定D,则其取值范围将随M 的变⼤⽽变⼤。表2 - 7的前三⾏说明了这⼀点。如果固定M ⽽改变D,则其取值范围将随D 的变⼤⽽变⼩(但精度增加)。表2 - 7的后三⾏说明了这⼀点。
给定的DECIMAL 类型的取值范围取决于MySQL数据类型的版本。对于MySQL3.23 以前的版本,DECIMAL(M, D) 列的每个值占⽤M 字节,⽽符号(如果需要)和⼩数点包括在M 字节中。因此,类型为DECIMAL(5, 2) 的列,其取值范围为-9.99 到9 9 . 9 9,因为它们覆盖了所有可能的5 个字符的值。正如MySQL3.23 ⼀样,DECIMAL 值是根据ANSI 规范进⾏处理的, ANSI 规范规定DECIMAL(M, D) 必须能够表⽰M 位数字及D 位⼩数的任何值。
例如, DECIMAL(5, 2) 必须能够表⽰从-999.99 到999.99 的所有值。⽽且必须存储符号和⼩数点,因此⾃MySQL3.23以来DECIMAL 值占M + 2 个字节。对于DECIMAL(5, 2),“最长”的值(- 9 9 9 . 9 9)需要7个字节。在正取值范围的⼀端,不需要正号,因此MySQL 数据类型利⽤它扩充了取值范围,使其超过了ANSI 所规范所要求的取值范围。如DECIMAL(5, 2) 的最⼤值为9 9 9 9 . 9 9,因为有7 个字节可⽤。
简⽽⾔之,在MySQL3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于更早版本中的DECIMAL(M + 2, D) 的取值范围。在MySQL数据类型的所有版本中,如果某个DECIMAL 列的D 为0,
则不存储⼩数点。这样做的结果是扩充了列的取值范围,因为过去⽤来存储⼩数点的字节现在可⽤来存放其他数字了。
⼆、字符类型
对于可变长的字符类型,其值所占的存储量是不同的,这取决于实际存放在列中的值的长度,这个长度⽤L表⽰。
数据类型
⼤⼩(范围)
⽤途
char(M)[BINARY]
M个字节,0 <= M <= 255 (L为固定的=255,不够补空格)
定长字符串;CHAR 类型可以使⽤ BINARY 修饰符。当⽤于⽐较运算时,这个修饰符使 CHAR 以⼆进制⽅式参于运算,⽽不是以传统的区分⼤⼩写的⽅式。CHAR值根据缺省字符集以⼤⼩写不区分的⽅式排序和⽐较,除⾮给出BINARY关键词
varchar(M) [BINARY]
L+1个字节,其中L<= M且0 <= M <= 65535(MySQL5.0之前都是最⼤255)
变长字符串;VARCHAR 类型在使⽤ BINARY 修饰符时与 CHAR 类型完全相同
tinyblob,tinytext
L+1个字节,其中L< 28-1 (255)
tinyblob:不超过 255 个字符的⼆进制字符串;tinytext:短⽂本字符串
blob,text
L+2个字节,其中L< 216-1(65535)
blob:⼆进制形式的长⽂本数据,在分类和⽐较时BLOB 类型区分⼤⼩写;text:长⽂本数据,在分类和⽐较时TEXT 不区分⼤⼩写
mediumblob,mediumtext
L+3个字节,其中L< 224-1
mediumblob:⼆进制形式的中等长度⽂本数据;mediumtext :中等长度⽂本数据,
longblob,longtext
L+4个字节,其中L< 232-1
longblob:⼆进制形式的极⼤⽂本数据 ;longtext :极⼤⽂本数据
enum('value1','value2',...)
1或2个字节,取决于枚举值的个数(最多65,535个值)
set('value1','value2',...)
1、2、3、4或者8个字节,取决于set成员的数⽬(最多64个成员)
三、⽇期类型
MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的⽇期、时间类型,和混合⽇期、时间类型。根据要求的精度,⼦类型在每个分类型中都可以使⽤,并且 MySQL 带有内置功能可以把多样化的输⼊格式变为⼀个标准格式。
类型
⼤⼩
范围
格式
⽤途
YEAR[(2|4)]
1字节
1901/2155
YYYY
年份值
DATE
3字节
'1000-01-01'--'9999-12-31'
YYYY-MM-DD
⽇期值
TIME
3字节
'-838:59:59'到'838:59:59'
HH:MM:SS
时间值或持续时间
DATETIME
8字节
'1000-01-01 00:00:00'--'9999-12-31 23:59:59'
YYYY-MM-DD HH:MM:SS
混合⽇期和时间值
TIMESTAMP[(M)]
8字节
1970-01-01 00:00:00/2037 年某时
YYYYMMDD HHMMSS
混合⽇期和时间值,时间戳
(1)YEAR
给YEAR类型赋值可以有三种⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论