MySQL中的基本数值类型

1 数值类型

1.1整型

TINYINT  		微整型,占1个字节,范围-128~127;
SMALLINT  		小整型,占2个字节 ,范围-32768~32767;
MEDIUINT   		中整型,占3个字节,范围 -8388608~8388607;
INT  			整型,占4个字节 ,范围 -2147483648~2147483647;
BIGINT  		大整型,占8个字节, 范围 -9223372036854775808~9223372036854775807;

注意:
(1)在整型数据中,在设置列表类型时,默认设置均为有符号数,当增加unsigned时,列属性为无符号数;
(2)如果插入的数值超出了范围,则会报异常out of range,并且插入的值为临界值;
(3)如果不设置数值类型的长度,都会有默认长度,而长度代表显示的最大长度,如果填充不满最大长度,则会用0填充,但是必须要搭配zerofill使用,即在定义列类型时规定zerfill。

1.2 浮点型

FLOAT(M,D)  	单精度浮点型,占4个字节,范围3.4e38,范围比INT大的多,可能产生计算误差;
DOUBLE(M,D)  	双精度浮点型,占8个字节,范围比BIGINT大的多;
DECIMAL(M,D) 	定点小数,不会产生计算误差,M代表总的有效位数,D代表小数点后的有效位数;
BOOL  			布尔型,只有两个结果TRUE/1、FALSE/0,TRUE和FALSE不能添加引号;真正存储数据的时候,会使用TINYINT。

注意:
(1)如果插入数据超过M的最大值,则会插入临界值;
(2)如果数据类型为dec(M,D),则其中默认值为M=10,D=0,;
(3)如果数据类型为float或者double,则默认的M,D值会根据插入的数值的精度来决定精度;
(4)定点小数的精确性较高,如果要求插入的数值精度较高,比如货币运算等则考虑使用dec(M,D)。

2 时间日期型

DATE  		日期型,4个字节,最小值’1000-01-01’,最大值’9999-12-31’ ,例如:'2018-12-31';
TIME  		时间型,3个字节,最小值’-838:59:59‘,最大值’838:59:59’,例如'14:22:30';
DATETIME   	日期时间型,8个字节,最小值’1000-01-01 00:00:00’,最大值’9999-12-31 23:59:59’,例如'2018-12-31  14:22:30';
YEAR		年类型,1个字节,最小值’1901’,最大值’2155’;
TIMESTAMP	时间戳,4个字节,最小值’19700101080001’,最大值’2038年的某个时刻’。

注意:
timestamp和实际的时区有关,更能反映实际的日期,而datetime只能反应出插入时的当地时区,并且,timestamp的属性收MySQL版本和SQLmode的影响很大。

3 字符串类型

 VARCHAR(M) 变长字符串,不会产生空间浪费,操作速度相对较慢,M最大值是65535;
 CHAR(M)   	定长字符串,可能产生空间浪费,操作速度较快,M最大值是255;用于存储手机号码,身份证号等固定长度的字符;
 BLOB 		保存较大二进制;
 ENUM		枚举类型,要求插入的值必须属于列表指定的值之一;

注意:
(1)M是字符数,不是字节数;
(2)Char的M默认为1,varchar的M值必须要指定。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值