Mysql基础-数据类型


Mysql基础-数据类型

1.Mysql中的数据类型

image-20220421232406880

常见数据类型的属性,如下:

image-20220421232424030

2.整数类型

image-20220421232447561

2.1 整数类型的可选属性

  • 显示宽度M

    image-20220421232630436

    注意这只是设置显示宽度,并不代表超过这个宽度的数不能存,通过配合ZEROFILL使用,使小于显示宽度的数高位补0.

  • UNSIGNED

    image-20220421232711249

  • ZEROFILL

    image-20220421232737001

2.2 适用场景和选择

image-20220421232939466

image-20220421232946774

3.浮点类型

image-20220421233035564

3.1精度说明

image-20220421233350325

3.2 使用场景

image-20220421233500320

4 定点数

image-20220421233631646

4.1 精度说明

image-20220421233655330

4.2 使用场景

image-20220421233708599

5.位类型

image-20220421233818578

6.日期、时间类型

image-20220421234017669

6.1 YEAR类型

image-20220421234113182

6.2 DATE类型

image-20220421234137403

6.3 TIME类型

image-20220421234156131

6.4 DATETIME类型

image-20220421234254470

6.5 TIMESTAMP类型

image-20220421234335279

6.6 TIMESTAMP和DATETIME的区别:

image-20220421234430709

6.7 开发中经验

image-20220421234510132

7. 文本字符串类型

image-20220421234547754

7.1 CHAR与VARCHAR类型

image-20220421234655777

  • char类型

    image-20220421234711200

  • varchar类型

    image-20220421234731553

  • 哪些情况使用 CHAR 或 VARCHAR 更好

    image-20220421234813994

7.2 TEXT类型

image-20220421234939505

由于实际存储的长度不确定,MySQL 不允许 TEXT 类型的字段做主键。遇到这种情况,你只能采用 CHAR(M),或者 VARCHAR(M)。

保存和查询数据时,并没有删除TEXT类型的数据尾部的空格。

  • 使用场景

    TEXT文本类型,可以存比较大的文本段,搜索速度稍慢,因此如果不是特别大的内容,建议使用CHAR, VARCHAR来代替。还有TEXT类型不用加默认值,加了也没用。而且text和blob类型的数据删除后容易导致 “空洞”,使得文件碎片比较多,所以频繁使用的表不建议包含TEXT类型字段,建议单独分出去,单独用 一个表。

8.ENUM类型

image-20220421235147420

9.SET类型

image-20220421235244978

10.二进制字符串类型

10.1 binary和varbinary

image-20220421235328164

10.2 BLOB

image-20220421235357257

10.3 text和blob使用注意事项

image-20220421235502444

11. JSON 类型

image-20220421235629424

12.空间类型

image-20220421235744196

image-20220421235806902

13.小结及建议

image-20220421235832541