5.4 默认约束

默认约束(Default Constraint)用于指定某列的默认值,这就需要为数据表中的某个字段添加一个默认约束。注意,一个字段只有在不可为空的时候才能设置默认约束。

5.4.1 创建表时添加默认约束

数据表的默认约束可以在创建表时创建,一般添加默认约束的字段有两种情况:一种是该字段不能为空;一种是该字段添加的值总是某一个固定值。创建表时添加默认约束的语法格式如下:

主要参数介绍如下。

  • DEFAULT:默认值约束的关键字,它通常放在字段的数据类型之后。
  • constant_expression:常量表达式,该表达式可以直接是一个具体的值,也可以是通过表达式得到一个值,但是这个值必须与该字段的数据类型相匹配。

提示:除了可以为表中的一个字段设置默认约束,还可以为表中的多个字段同时设置默认约束,不过,每一个字段只能设置一个默认约束。

【实例9】在数据库test中,创建一个数据表person,为city字段添加一个默认值“北京”,输入以下SQL语句:

单击“执行”按钮,即可完成添加默认约束的操作,如图5-19所示。执行完成后,使用“DESC person;”语句即可看到该数据表的结构,如图5-20所示。可以看到数据表的默认值为“北京”。

图5-19 添加默认约束

图5-20 查看表结构

5.4.2 修改表时添加默认约束

如果创建数据表时没有添加默认约束,可以使用ALTER语句对现有表添加默认值约束。使用ALTER语句添加默认约束的语法格式如下:

    ALTER TABLE table_name
    ALTER col_name SET DEFAULT constant_expression;

主要参数介绍如下。

  • table_name:表名,它是要添加默认约束列所在的表名。
  • DEFAULT:默认约束的关键字。
  • constant_expression:常量表达式,该表达式可以直接是一个具体的值,也可以是通过表达式得到的一个值,但是这个值必须与该字段的数据类型相匹配。
  • col_name:设置默认约束的列名。

【实例10】person表创建完成后,如果没有为city字段添加默认约束值“北京”,则可以输入以下SQL语句来添加默认约束。

    ALTER TABLE person ALTER city
    SET DEFAULT "北京";

单击“执行”按钮,即可完成在DEFAULT约束的添加操作,如图5-21所示。执行完成后,使用“DESC person;”语句即可看到该数据表的结构,如图5-22所示。可以看到数据表的默认值为“北京”,这与创建表时添加默认约束是一样的。

图5-21 修改表时添加默认约束

图5-22 查看表person的结构

5.4.3 删除表中的默认约束

当表中的某个字段不再需要默认值时,可以将默认值约束删除,这个操作非常简单。使用DROP语句删除默认值约束的语法格式如下:

    ALTER TABLE table_name
    ALTER col_name DROP DEFAULT;

主要参数介绍如下。

  • table_name:表名,它是要删除的默认值约束列所在的表名。
  • col_name:设置默认约束的列名。

【实例11】将person表中添加的默认值约束删除,输入如下SQL语句:

    ALTER TABLE person ALTER city
    DROP DEFAULT;

单击“执行”按钮,即可完成对默认值约束的删除操作,如图5-23所示。执行完成后,使用“DESC person;”语句即可看到该数据表的结构,可以看到数据表的默认值被删除,如图5-24所示。

图5-23 删除默认值约束

图5-24 删除默认约束后的表结构