
大家好我是Java1234_小锋老师最近更新 《一天学会 Mysql8 视频教程(无废话版) 》专辑感谢大家支持。本课程主要介绍和讲解 Mysql8简介安装以及配置客户端sqlyog 安装以及配置数据库基本操作数据库表基本操作查询数据添加修改删除数据索引视图触发器常用函数存储过程和函数。视频教程课件源码打包下载链接https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd1234提取码1234Mysql8在第一阶段目录里Mysql8 数据类型简介MySQL 8 的数据类型大致分为数值、日期时间、字符串/二进制、JSON、空间、其他。选型时重点关注精度、存储空间、是否受时区影响、是否可索引。1. 数值类型类型说明TINYINT1 字节-128~127UNSIGNED0~255SMALLINT2 字节-32768~32767MEDIUMINT3 字节INT/INTEGER4 字节常用整数BIGINT8 字节大整数常用作自增主键DECIMAL(M,D)/NUMERIC定点数精确适合金额。M 最大 65D 最大 30FLOAT4 字节近似浮点DOUBLE8 字节近似浮点BIT(M)位类型M 为 1~64BOOL/BOOLEAN是TINYINT(1)的同义词0/1注意MySQL 8.0.17 起整数的显示宽度如INT(11)和ZEROFILL已弃用不建议依赖。2. 日期时间类型类型说明DATE日期YYYY-MM-DD范围 1000-01-01 ~ 9999-12-31TIME时间HH:MM:SS范围 -838:59:59 ~ 838:59:59DATETIME日期时间范围 1000 ~ 9999与时区无关TIMESTAMP时间戳按 UTC 存储受时区影响范围到 2038-01-19YEAR年份通常 1901~2155 和 0000TIME、DATETIME、TIMESTAMP支持小数秒如DATETIME(6)精度 0~6。3. 字符串与二进制类型类型说明CHAR(M)定长字符串M 为字符数0~255VARCHAR(M)变长字符串M 为字符数最大 65535 字节受字符集和行大小限制BINARY(M)/VARBINARY(M)定长/变长二进制串M 为字节数TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT文本大对象最大约 255B / 64KB / 16MB / 4GBTINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB二进制大对象大小同上ENUM枚举只能取一个值SET集合可取多个值JSON二进制存储的 JSON自动校验支持 JSON 函数和多值索引MySQL 8 默认字符集是utf8mb4默认排序规则通常是utf8mb4_0900_ai_ci。utf8在 MySQL 8 中是utf8mb3的别名建议使用utf8mb4。4. 空间类型MySQL 8 支持 GIS 空间数据类型GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION支持SRID属性InnoDB 支持空间索引。5. 其他重要特性AUTO_INCREMENT自增通常用于整数主键。UNSIGNED无符号扩大正数范围。DEFAULT默认值MySQL 8.0.13 支持表达式默认值。生成列VIRTUAL/STORED可基于其他列计算。不可见列INVISIBLE。CHECK约束MySQL 8.0.16 正式支持。BLOB、TEXT、JSON等类型在 8.0.13 可用表达式方式设置默认值。6. 选型建议金额用DECIMAL不要用FLOAT/DOUBLE。主键常用BIGINT UNSIGNED AUTO_INCREMENT。时间需要时区转换用TIMESTAMP范围大且不想受时区影响用DATETIME。普通字符串VARCHAR定长短字符串CHAR。长文本TEXT二进制文件BLOB。半结构化数据JSON但经常查询的字段建议抽成普通列或生成列并加索引。布尔值可用TINYINT(1)或BOOL。枚举ENUM/SET简单但修改麻烦复杂场景可用TINYINT 字典表。总体原则精确优先、够用就好、能索引的字段尽量用普通类型谨慎使用大对象和 JSON。