MySQL数据类型

  • MySQL数据类型总览

  • 整数类型
类型所占空间(bytes值范围-有符号(正负值//默认有符号值范围-无符号(正数
       tinyint:微整型1-128 ~ 1270 ~ 255
    smallint:小整型2-32768 ~ 327670 ~ 65535
mediumint:中等型3-8388608 ~ 83886070 ~ 16777215
             int:整型4-2147483648 ~ 21474836470 ~ 4294967295
        bigint:大整型8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615
--设置无符号:即此字段数据只能插入正数值-- --关键字:unsigned--
create table t1(id tinyint unsigned);
  • 小数类型
类别类型所占空间(bytes值范围-有符号(正负值//默认有符号值范围-无符号(正数
浮点数     float:单精度小数4

-3.402823466E+38~

-1.175494351E-38

0~1.175494351E-38~

3.402823466E+38

 double:双精度小数8

-1.7976931348623157E+308~

2.2250738585072014R-308

0~2.2250738585072014E-308~

1.7976931348623157E+308

定点数decimal:精确小数M+2

-1.7976931348623157E+308~

2.2250738585072014E-308

0~2.2250738585072014E-308~

1.7976931348623157E+308

浮点小数:“不精确的小数”,包括float和double。
float:占用4字节存储空间,可称为“单精度浮点数”,约7位有效数字
double:占用8字节存储空间,可称为“双精度浮点数”,约17位有效数字

定点小数:“精确的小数”。。
decimal(M,D)其中M表示该小数的总有效位数(最大值65),D表示该小数的小数点后的位数

--案例--
create table t2(a1 float,a2 double,a3 decimal(20,5));
insert into t2 values(
123456789.123456789123456789,
123456789.123456789123456789,
123456789.123456789123456789);
select a1 as 'float',a2 as 'double',a3 as 'decimal' from t2;

  • 日期/时间类型
类型所占空间(bytes日期格式值范围零值表示
           year:年份1YYYY1901 ~ 21550000
           date:日期4YYYY-MM-DD1000-01-01 ~ 9999-12-310000-00-00
           time:时间3HH:MM:SS-838:59:59 ~ 838:59:59 00:00:00
   datetime:日期时间8YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00 ~

9999-12-31 23:59:59

0000-00-00 00:00:00
timestamp:时间戳4YYYY-MM-DD HH:MM:SS

19700101080001~

2038 年的某个时刻

00000000000000

timestamp类型:表示“时间戳”,其实就是一个整数数字,该数字是从是“时间起点”到现在为止的“秒数”

时间起点1970-1-1 0:0:0

小细节:timestamp类型在一个表中只能用于一个字段!

原因:CURRENT_TIMESTAMP在对表数据进行修改时,刷新为当前时间,在一个表中如果多列为CURRENT_TIMESTAMP,那么这些列的数据都是一样的,这样毫无意义,并且耗费资源。

  • 字符串 
类型值范围
     char:定长字符0~255个字符
varchar:变长字符0~65536个字符
       set:多选0~64个选项值
   enum:单选/枚举0~65535个选项值
     blob:二进制长文本数据0~65535字节
      text:长文本数据0~65535字节

varchar特点

1、存储的字符长度是写入的实际长度,但不超过设定的长度。最长可设定为65532(字节)。

  • 由于其最长的限制是字节数,因此存储中文和英文的实际字符个数是不同的;
  • 英文:一个字符占一个字节;
  • 中文(gbk编码):一个字符占2个字节;
  • 中文(utf8编码):一个字符占3个字节;

2、如果实际写入的字符不足设定的长度,就按实际的长度存储。

3、相对于char字符串,其存取速度相对更慢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值