在创建表时,可以声明默认约束,以确保在插入新数据时,特定列的值符合预期。默认约束可以在创建表时定义,也可以在创建表后添加。
默认约束的定义方式如下:
CREATE TABLE table_name (
column1 data_type constraint_name DEFAULT default_value,
column2 data_type,
...
);
其中,constraint_name
是默认约束的名称,可以自定义,default_value
是默认值。
例如,如果要在创建一个名为 employees
的表,其中包含 name
、age
和 department
列,并且要求在插入新数据时,如果未指定 department
列的值,则默认为 "Unknown",可以使用以下 SQL 语句:
CREATE TABLE employees (
name VARCHAR(50),
age INT,
department VARCHAR(50) DEFAULT 'Unknown'
);
在创建表后,也可以使用 ALTER TABLE
语句添加默认约束。例如,如果要在上面的 employees
表中添加一个名为 salary
的列,并且要求在插入新数据时,如果未指定 salary
列的值,则默认为 0,可以使用以下 SQL 语句:
ALTER TABLE employees
ADD salary DECIMAL(10,2) DEFAULT 0;
需要注意的是,如果在创建表时声明了默认约束,但在插入数据时又显式地指定了该列的值,则默认约束不会生效。例如,如果在上面的 employees
表中插入一条新数据,并且指定了 department
列的值为 "HR",则默认约束不会生效,数据将被插入到 department
列中。
INSERT INTO employees (name, age, department)
VALUES ('John Doe', 30, 'HR');
领取专属 10元无门槛券
手把手带您无忧上云