Sql 简明教程
SQL - Default Constraint
The SQL DEFAULT Constraint
SQL DEFAULT Constraint 用于指定表中的列的默认值。我们通常在创建表时设置默认值。
如果没有在插入数据时提供值,则默认值将被视为列值,从而确保始终为该列提供一个值。我们可以在 SQL 表中为多个列指定默认值。
Syntax
下面是 SQL DEFAULT 约束的语法 −
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype DEFAULT default_value,
column3 datatype,
.....
columnN datatype
);
Example
在下面的查询中,我们使用 CREATE TABLE 语句来创建 CUSTOMERS 表。此处,我们正在向 NAME、AGE、ADDRESS 和 SALARY 列添加默认约束 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL DEFAULT 'Ramesh',
AGE INT NOT NULL DEFAULT '32',
ADDRESS CHAR (25) DEFAULT 'Ahmedabad',
SALARY DECIMAL (18, 2) DEFAULT '2000',
PRIMARY KEY (ID)
);
以下查询使用 INSERT 语句将值插入此表:
INSERT INTO CUSTOMERS (ID) VALUES (1);
INSERT INTO CUSTOMERS VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
该表使用 NAME、AGE、ADDRESS 和 SALARY 列中的默认值创建,第一行如下所示 −
ID |
NAME |
AGE |
ADDRESS |
SALARY |
1 |
Ramesh |
32 |
Ahmedabad |
2000.00 |
2 |
Khilan |
25 |
Delhi |
1500.00 |
Passing "DEFAULT" as Value
在将数据插入表时,如果列名未包含在 INSERT 查询中,为了将默认值插入记录中,我们需要传递“DEFAULT”作为值,如下所示 −
INSERT INTO CUSTOMERS VALUES
(3, 'Kaushik', DEFAULT, DEFAULT, 2000.00),
(4, 'Chaitali', DEFAULT, DEFAULT, DEFAULT);
获得的表如下所示:
ID |
NAME |
AGE |
ADDRESS |
SALARY |
1 |
Ramesh |
32 |
Ahmedabad |
2000.00 |
2 |
Khilan |
25 |
Delhi |
1500.00 |
3 |
Kaushik |
32 |
Ahmedabad |
2000.00 |
4 |
Chaitali |
32 |
Ahmedabad |
2000.00 |
Adding Default Constraint to an Existing Column
我们还可以使用 ALTER TABLE 语句将默认约束添加到表的现有列。这允许我们通过指定默认值来修改现有表的结构,确保数据库中的数据一致性。
Syntax
以下是向现有表中列添加 default constraint 的语法 −
ALTER TABLE table_name
ALTER COLUMN column_name SET DEFAULT 'default_value';
Example
假设我们使用 CREATE TABLE 语句创建了另一个名为 BUYERS 的表,如下所示 −
CREATE TABLE BUYERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
以下查询向 BUYERS 表的 ADDRESS 列添加了默认约束。
ALTER TABLE BUYERS ALTER ADDRESS SET DEFAULT 'Delhi';
以下 INSERT 语句通过向除了 ADDRESS 以外的所有列提供值,将记录插入 BUYERS 表。
INSERT INTO BUYERS (ID, NAME, AGE, SALARY) VALUES
(01, 'Rahul', 27, 50000);