Mysql 之drop、delete 与 truncate 的区别和时间

114 阅读1分钟

5.5 drop、delete 与 truncate 的区别?

它们 3 个的区别如下表所示:

区别点DROPTRUNCATEDELETE
执行速度较快
命令分类DDL(数据定义语言)DDL(数据定义语言)DML(数据操作语言)
删除对象删除整张表和表结构,以及表的索引、约束和触发器。只删除表数据,表的结构、索引、约束等会被保留。只删除表的全部或部分数据,表结构、索引、约束等会被保留。
删除条件(where)不能用不能用可使用
回滚不可回滚不可回滚可回滚
自增初始值-重置不重置

6.mysql中的时间

类型大小字节JAVA格式用途
Date3java.sql.DateYYYY-MM-DD日期值
Time3java.sql.TimeHH:MM:SS时间值或持续时间
Year1java.sql.Timestamp`YYYY年份值
DateTime8java.sql.TimestampYYYY-MM-DD ``HH:MM:SS混合日期和时间值
TIMESTAMP4java.sql.DateYYYYMMDD HHMMSS混合日期和时间值,时间戳

但是现在java更倾向使用 JAVA8的LocalDateTime对应 datatimetimestamp

DATETIMETIMESTAMP 的区别

  1. 日期范围DATETIME 的日期范围是 1000-01-01 00:00:00.0000009999-12-31 23:59:59.999999TIMESTAMP 的时间范围是1970-01-01 00:00:01.000000 UTC ``到 ``2038-01-09 03:14:07.999999 UTC
  2. 存储空间DATETIME 的存储空间为 8 字节;TIMESTAMP 的存储空间为 4 字节
  3. 时区相关DATETIME存储时间与时区无关;TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区
  4. 默认值DATETIME的默认值为 null;TIMESTAMP 的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)