ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
MySQL的时间字段默认值 '0000-00-00 00:00:00' CURRENT_TIMESTAMP # MySql中字段类型与长度和取值范围解析 参考博客:[https://blog.csdn.net/qq\_39381772/article/details/125113755](https://blog.csdn.net/qq_39381772/article/details/125113755) 一、数值类型 | 类型 | 所占字节 | 范围(有符号) | 范围(无符号) | 用途 | | --- | --- | --- | --- | --- | | tinyint | 1 Bytes | (-128,127) | (0,255) | 一般用于枚举数据;也可表示| | smallint |2 Bytes |(-215,215 -1) | (0,216-1) | 可用于较小范围的数据统计(数值万级),比如统计工厂的固定资产库存数量| | mediumint |3 Bytes |(-223,223 -1) | (0,224-1) | 可用于较大范围的数据统计(数值百万级),比如车站日客流量| | int |4 Bytes | (-231,231-1) | (0,232-1) | 大整数值(十亿级),比如商品编号| | int |8 Bytes |(-263,263-1)) | (0,264-1) | 极大整数值,比如流水号,大型门户网站流量统计等 ``` int(1)与int(11)在mysql8.0.17以前,主要区别是显示宽度,所占字节任是4个字节 ``` ## 2\. 浮点类型 | 类型 | 所占字节 | 范围(有符号) | 范围(无符号) | 用途 | | --- | --- | --- | --- | --- | | float[(M,D)] [unsigned]| 4 Bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度,浮点数值(m总个数,d小数位数)float的精度(尾数)为6~7位有效数字| | double[(M,D)] [unsigned| 8 Bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 单精度,浮点数值(m总个数,d小数位数)double的精度(尾数)为15~16位有效数字 ## 3\. 定点数类型 | 类型 | 所占字节 | 范围 | 用途 | | --- | --- | --- | --- | | decimal\[(m,d)\] \[unsigned\]| m+2 Bytes | 依赖于M和D的值 | 小数值,如金钱,财务相关的数据 # 二、日期类型 | 类型 | 所占字节 | 范围 | 格式 | 用途 | | --- | --- | --- | --- | --- | | date | 3 Bytes | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 | | time | 3 Bytes | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 | | year | 1 Bytes | 1901/2155 | YYYY | 年份值 | | datetime| 8 Bytes | 1000-01-01 00:00:00/9999-12-31 23:59:59| YYYY-MM-DD HH:MM:SS | 混合日期和时间值 | | timestamp| 4 Bytes | 1970-01-01 00:00:00/2038| YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 > DATETIME 类型在所有的日期时间类型中占用的存储空间最大,总共需要 8 个字节的存储空间。在格式上为DATE 类型和 TIME 类型的组合,可以表示为 YYYY-MM-DD HH:MM:SS ,其中 YYYY 表示年份, MM 表示月份,DD 表示日期, HH 表示小时, MM 表示分钟, SS 表示秒。 使用函数**CURRENT_TIMESTAMP(), NOW()**可以向datetime类型字段插入系统当前日期和时间。 # 三、文本字符串类型 | 类型 | 范围 | 所占字节 | 用途 | | --- | --- | --- | --- | | char(M) | 0<=M<=255 | M个字节 | 定长字符串 | | varchar(M) | 0<=M<=65535 | M+1个字节 | 变长字符串 | | tinytext | 0<=L<=255 | L+2个字节 | 短文本字符串 | | text | 0<=L<=65535 | L+2个字节 | 长文本数据 | | mediumtext| 0<=L<=16 777 215 | L+3个字节 | 中等长度文本数据| | longtext| 0<=L<=4 294 967 295 | L+4个字节 | 极大文本数据 > 哪些情况使用 CHAR 或 VARCHAR 更好 存储很短的信息。比如门牌号码101,201……这样很短的信息应该用char,因为varchar还要占个 byte用于存储信息长度,本来打算节约存储的,结果得不偿失。 固定长度的。比如使用uuid作为主键,那么使用char更合适。 字段长度在一定范围内不确定的用varchar,比如名字在2-10个字之间那么用varchar更好,因为char会浪费更多的存储空间。 > 总结: 满足条件能用char的用char,因为varchar每次存储都要有额外的计算,得到长度等工作,而这些对于char来说是不需要的 会更好地提高性能。 # 四、JSON类型 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 。简洁和清晰的层次结构使得 JSON成为理想的数据交换语言。它易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。