MySQL数据类型精讲

一. 整数类型(5种)

1.1 类型介绍

整数类型字节有符号数取值范围无符号数取值范围
tinyint1-128 - 1270 - 255
smallint2
-32768~32767
0 - 65535
mediumint3
-8388608~8388607
0~16777215
int  ,integer4
-2147483648~2147483647
0~4294967295
bigint8
-9223372036854775808~9223372036854775807
0~18446744073709551615

1.2 可选属性 

  1. int(5)   -- 显示宽度为5
  2. zerofill  --  用0填充,例如添加123,显示的是00123(当使用zerofill时会自动添加unsigned)
  3. unsigned
  4. int(M) ,必须和 UNSIGNED ZEROFILL 一起使用才有意义。

1.3 使用场景 

 

二. 浮点类型 

2.1 类型介绍

 

因为浮点数是不准确的,所以我们要避免使用 “=” 判断两个数是否相等

三. 定点数类型 

3.1 类型介绍

 

定点数在MySQL内部是以 字符串 的形式进行存储,这就决定了它一定是精准的。  

 

3.2 位类型 

 

 

CREATE TABLE test_bit1(
f1 BIT,
f2 BIT(5),
f3 BIT(64) );
INSERT INTO test_bit1(f1)
 VALUES(1);
 #Data too long for column 'f1' at row 1 
INSERT INTO test_bit1(f1) VALUES(2); 
INSERT INTO test_bit1(f2) VALUES(23);

 四 .日期与时间类型

 

 

5.1 year类型 

 1. 占一个字节,最小值1901,最大值2155

了解

 

5.2 date类型 

 

5.3 time 类型 

 

 

5.4 datetime 类型

 

  

5.5 timestamp 类型 

 

5.5.1 TIMESTAMPDATETIME的区别

  1. TIMESTAMP存储空间比较小,表示的日期时间范围也比较小
  2. 底层存储方式不同, TIMESTAMP 底层存储的是毫秒值,距离 1970-1-1 0:0:0 0 毫秒的毫秒值。
  3. 两个日期比较大小或日期计算时, TIMESTAMP 更方便、更快。

    4. TIMESTAMP和时区有关。TIMESTAMP会根据用户的时区不同,显示不同的结果。而DATETIME则只能反映出插入时当地的时区,其他时区的人查看数据必然会有误差的。

      

 用得最多的日期时间类型,就是 DATETIME

一般存注册时间、商品发布时间等,不建议使用 DATETIME 存储,而是使用 时间戳 ,因为
DATETIME 虽然直观,但不便于计算。

六. 文本字符串类型

.1 CHARVARCHAR类型

 

  1.  检索VARCHAR类型的字段数据时,会保留数据尾部的空格
  2. CHAR类型的字段会去除尾部的空格
  3. char如果不指定(M),则表示长度默认是1个字符。

 

6.2 TEXT类型 

七.ENUM类型 

 

 八.SET类型

不重复,插入重复的会过滤掉

 

9. 二进制字符串类型 

9.1 BINARYVARBINARY

 

一个汉字占三个字节 

 9.2 BLOB

 

 10. json类型

 

json分json对象和json数组 

 

 11. 空间类型

12 总结

整数 -- > int

小数 --> decimal(M,D)

日期与时间 --> datetime

这样做的好处是,首先确保你的系统不会因为数据类型定义出错。不过,凡事都是有两面的,可靠性好,并不意味着高效。比如,TEXT 虽然使用方便,但是效率不如 CHAR(M) VARCHAR(M)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值