整数类型

数据类型 - 图1

关于数据类型圆括号中的数字解释:
经常看到这样子的语句 id int(11) , 11 表示的是显示宽度。显示宽度和数据类型的取值范围是无关的。
假如 year int(4), 在year字段中数据一般只显示4位数字的宽度。假如向year插入的是一个数值19999,当使用select查询到该列值的时候,MySQL显示的将是完整的19999,而不是4位数字的值。


浮点类型

数据类型 - 图2


日期与时间类型

数据类型 日期格式 存储需求
YEAR YYYY 1字节
TIME HH:MM:SS 3字节
DATE YYYY-MM-DD 3字节
DATETIME YYYY-MM-DD HH:MM:SS 8字节
TIMESTAMP YYYY-MM-DD HH:MM:SS 4字节

DATE: 用在仅需要日期值,没有时间部分

使用NOW()插入date字段时,后面的时间会自动被截取掉;

可以使用CURRENT_DATE()方法插入当前日期;

TIMESTAMP和DATETIME的区别:
DATETIME在存储日期数据时,按实际输入的格式存储,输入什么就存储什么,与时区无关。
TIMESTAMP存储的是一UTC格式保存的,存储是对当前时区进行转换,检索时再转换回当前时区。

例子:

  1. create table tbl_timestamp (
  2. ts timestamp
  3. );
  4. insert into tbl_timestamp values (NOW());
  5. mysql> select * from tbl_ts;
  6. +---------------------+
  7. | ts |
  8. +---------------------+
  9. | 2018-09-22 18:13:35 |
  10. +---------------------+
  11. 1 row in set (0.00 sec)
  12. //改变时区
  13. mysql> set time_zone="+10:00";
  14. Query OK, 0 rows affected (0.00 sec)
  15. mysql> select * from tbl_ts;
  16. +---------------------+
  17. | ts |
  18. +---------------------+
  19. | 2018-09-22 20:13:35 |
  20. +---------------------+
  21. 1 row in set (0.00 sec)

文本字符串类型

  • char(m)

  • varchar(m)

  • tinytext

  • text

  • mediumtext

  • longtext

  • enum

  • set

  1. char 和 varchar — 数字m表示多少个字符

二进制字符串类型

  • BLOB(M)

  • MEDIUMBLOB(M)

  • LONGBLOB(M)