默认值约束 [MySQL][数据库]

默认值约束(DEFAULT)

默认值约束的作用:

给某个字段/某列指定默认值,一旦我们设置了默认值约束之后,在插入数据时,如果此字段没有显式赋值,则赋值为默认值

  • 如果我们没有给一个字段添加默认值约束,这个时候我们如果没给一个字段显式赋值,那么这个字段就会赋值为默认值null,但是我们添加了默认值约束之后我们设置的默认值是多少,那么我们没有显示赋值的时候赋的默认值就是多少

如何添加默认值约束

这里对于添加默认值约束我们也是分为了两种方式:

方式一: 在CREATE TABLE时添加默认值约束

CREATE TABLE test11(
id INT,
last_name VARCHAR(15),
salary DECIMAL(10,2) DEFAULT 2000
);
  • 这里我们就为test11表中的salary字段添加了一个默认值约束

那么我们添加了默认值约束之后有什么作用?

这里我们通过一个例子来说明:

INSERT INTO test11(id,last_name)
VALUES(1,'tom');
  • 这个时候我们在往数据库中添加数据的时候只给id字段和last_name字段赋值了,而没有给salary字段赋值,这个时候如果没有添加默认值约束,那么这个时候对于没有显式赋值的字段我们系统默认是赋值为null的 , 但是这个时候我们添加了默认值约束之后,这里我们对于没有显示赋值的情况我们就会赋默认值,也就是赋值为2000

方式二: 在ALTER TABLE时添加约束

  1. 我们先创建一个数据表
CREATE TABLE test12(
id INT,
last_name VARCHAR(15),
salary DECIMAL(10,2)
);
  • 这里我们就创建了一个test12表
  1. 然后这里我们在ALTER TABLE时添加约束
ALTER TABLE test12
MODIFY salary DECIMAL(10,2) DEFAULT 2500;

那么我们如何删除默认值约束?

我们在ALTER TABLE时删除默认值约束

ALTER TABLE test12
MODIFY salary DECIMAL(10,2);
  • 这里我们就是修改了这个字段,让着字段变成一个普通的字段即可
    • 我们可以发现我们对于添加和删除默认值约束的时候和我们添加和删除非空约束是几乎完全相同的

补充:

我们在建表时,如果不想让表中出现null值,如果是字符串类型的数据,我们就加上not null default ‘’,如果是数值型的数据我们加 default 0

  • 为什么不希望有null值?

    ①null值不好比较

    • 因为null是一种特殊值,比较时只能使用专门的is null 和is not null来比较,如果碰到一般的符号类型运算符,通常都是返回null

    ②效率不高

猜你喜欢

转载自blog.csdn.net/m0_57001006/article/details/123625807