题解 | 插入记录(一)insert过程中defult和null有什么区别
插入记录(一)
https://www.nowcoder.com/practice/5d2a42bfaa134479afb9fffd9eee970c
insert into exam_record(uid,exam_id,start_time,submit_time,score) values (1001,9001,'2021-09-01 22:11:12','2021-09-01 23:01:12',90), (1002,9002,'2021-09-04 07:01:02',null,null); --注意引号
在 SQL 的 INSERT 操作中,DEFAULT 和 NULL 是用于处理字段值的两种不同方式,主要区别如下:
1. DEFAULT(默认值)
- 含义:如果字段在表结构中定义了
DEFAULT(默认值),使用DEFAULT会让该字段自动填入预先设定的默认值。 - 场景:当你希望字段使用表设计时指定的默认值,而非手动输入值时使用。
- 示例:假设表
exam_record中score字段的DEFAULT是0,则插入时可写:sql此时score会自动填入0。
2. NULL(空值)
- 含义:
NULL表示 “无值” 或 “未知值”,是一个特殊的标记,与空字符串('')不同。只有当字段的NULL属性为YES时,才能插入NULL。 - 场景:当你明确表示该字段没有值,且表结构允许为
NULL时使用。 - 示例:若
submit_time允许为NULL,插入时可写:sql此时submit_time为 “无值” 状态。
核心区别总结
含义 | 使用字段预设的默认值 | 表示字段 “无值” 或 “未知值” |
依赖条件 | 表结构中需定义 | 表结构中 |
存储意义 | 有明确的默认值(如 | 无具体值,仅标记 “缺失” |
简单来说:DEFAULT 是用预设的默认值填充字段,NULL 是明确表示字段没有值(前提是字段允许为 NULL)。
查看20道真题和解析