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 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。
- 重要文档
- 工作须知
- 项目下的公共方法
- 程序员给代码写注释时有哪些讲究!
- RestFul 讲解
- 其他知识
- docker容器
- MongoDB的使用
- Node.js的使用
- Session共享
- Wordpress的使用
- Websocket的简介
- Ajax
- 项目技术
- Https配置证书
- Nginx的反向代理
- MySQL读写分离配置(laravel篇)
- Nginx的负载均衡
- App接口返回格式
- laravel中JWT的应用
- laravel验证码的使用
- laravel公共方法文件
- laravel框架的RBAC
- Git相关
- Git篇1
- Git篇2
- Mysql相关
- Mysql的主从复制
- MySQL的备份
- MySQL的使用
- 请求第三方接口
- Redis相关
- redis的使用
- Redis的基本用法以及场景分析
- 开发小技巧
- Linux
- 禁用root及密码登录
- Lnmp环境的安装
- 安装composer
- 安装Redis
- 文件共享服务 samba
- 其他安装
- Lnmp常用命令
- 性能检测命令
- Nginx的配置详解
- PHP相关
- PHP基础知识
- php常见的系统函数
- PHP的设计模式
- Cookie 和 Session 的封装
- Mysql知识
- Mysql索引
- MySQL的数据类型
- PHP重要知识
- PHP框架篇
- Laravel框架
- laravel---Excel
- laravel文件上传
- Laravel-Mysql常用操作
- Laravel队列(queue)
- laravel-发送Email
- laravel--JWT
- TP框架篇
- tp5主从数据库设置读写分离
- 前端
- JS
- js代码实现点击按钮出现60秒倒计时
- 开发软件相关
- 代码编辑器
- vs code配置ftp连接远程服务器实现代码文自动上传
- 编程相关软件下载