打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL基础入门:第4课:为表设置注释(2)

但当我们插入数据的时候,并不想或并不需要对某个字段赋值时,如果字段有设置默认值,则会以默认值来填充该字段的值而不会导致错误;比如,在网上下订单时,对于下订单的日期字段,可以使用数据库的系统变量“当前日期”来默认赋值,这样就不需要在向订单表插入订单数据时,单独再对下订单的日期字段进行赋值。

再举个例子,我们在CSDN网站上注册一个新用户时,除了用户名、密码、手机号外,还有一些非必填信息,比如性别、QQ号、职业等。这些信息如果没有填写,那向数据库插入时,默认就会赋值为NULL值。

可如果性别、QQ号、职业等,这些字段被设置为NOT NULL,不可以插入NULL值,那怎么办呢?

同样,这个时候,就可以在创建表时,为字段设置默认值。

在向表中插入数据的时候,如果某个字段并没有指定赋值为多少,而此时该字段也没有赋默认值,那么就会向该字段插入NULL值。而NULL值的使用效率并不高,并且使用起来也比较麻烦。

所以,为避免字段的值被插入NULL值,一般在表创建时,都会为字段指定默认值。

设置默认值的关键字为DEFAULT,比如,像下面这样为老师姓名字段设置默认值”,为年龄字段设置默认值0,也就是空字段串:

  1. CREATE TABLE teacher

  2. (

  3. teacher_id VARCHAR(20),

  4. teacher_name VARCHAR(50) DEFAULT '',

  5. gender VARCHAR(10),

  6. age INT DEFAULT 0

  7. )COMMENT '老师';

设置默认值需要关注以下几点:

表中所有的字段都可以设置默认值;
默认值的数据类型必须与字段类型保持一致;(不一致时,数据库虽然有时也会默认做隐式类型转换,但并不推荐这样做。一方面是这样做并不规范,另一方面是这样做可能会导致未知的错误)
除主键字段外,建议其他所有字段都设置默认值;

那一般根据什么来决定字段应该赋什么默认值呢?

对于字符型字段来说,一般赋值为空字符串(也就是”),或者具有某种业务含义的值。比如,对于性别字段,有三个取值,F-女,M-男,N-未知,当向这个性别字段插入数据时,可能并不知道性别是男还是女,那这时,就可以定义默认值为N-未知,代表我们并不知道这条数据记录的值到底是多少。

对于数值型字段来说,一般赋值为0,或者具有某种业务含义的值,或者该字段所表示的业务含义的最大值或极大值。

对于日期和时间型呢,常见的赋值有系统当前日期CURRENT_DATE、系统当前时间CURRENT_TIME、系统当前时间戳CURRENT_TIMESTAMP及NOW()等。

总的来说,我们都可以根据字段的业务含义来为字段赋默认值。

下面的表格列出了各个数据类型常见的默认值。


Mac老师个人微信号:201855204

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql数据库转移到oracle的经历
MySQL数据类型和常用字段属性总结
mysql 空值(null)和空字符('')的区别
[MySQL]关于MySQL表设计应该注意的问题
数据库表及字段命名规范(一)
MySQL数据库实操教程(07)——表的约束
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服