5.5 drop、delete 与 truncate 的区别?
它们 3 个的区别如下表所示:
| 区别点 | DROP | TRUNCATE | DELETE |
|---|---|---|---|
| 执行速度 | 快 | 较快 | 慢 |
| 命令分类 | DDL(数据定义语言) | DDL(数据定义语言) | DML(数据操作语言) |
| 删除对象 | 删除整张表和表结构,以及表的索引、约束和触发器。 | 只删除表数据,表的结构、索引、约束等会被保留。 | 只删除表的全部或部分数据,表结构、索引、约束等会被保留。 |
| 删除条件(where) | 不能用 | 不能用 | 可使用 |
| 回滚 | 不可回滚 | 不可回滚 | 可回滚 |
| 自增初始值 | - | 重置 | 不重置 |
6.mysql中的时间
| 类型 | 大小字节 | JAVA | 格式 | 用途 |
|---|---|---|---|---|
| Date | 3 | java.sql.Date | YYYY-MM-DD | 日期值 |
| Time | 3 | java.sql.Time | HH:MM:SS | 时间值或持续时间 |
| Year | 1 | java.sql.Timestamp | `YYYY | 年份值 |
DateTime | 8 | java.sql.Timestamp | YYYY-MM-DD ``HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | java.sql.Date | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
但是现在java更倾向使用 JAVA8的LocalDateTime对应 datatime 和 timestamp
DATETIME 和 TIMESTAMP 的区别
- 日期范围:
DATETIME的日期范围是1000-01-01 00:00:00.000000到9999-12-31 23:59:59.999999;TIMESTAMP的时间范围是1970-01-01 00:00:01.000000UTC ``到 ``2038-01-09 03:14:07.999999UTC - 存储空间:
DATETIME的存储空间为 8 字节;TIMESTAMP的存储空间为 4 字节 - 时区相关:
DATETIME存储时间与时区无关;TIMESTAMP存储时间与时区有关,显示的值也依赖于时区 - 默认值:
DATETIME的默认值为 null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)