如何在 SQL 中使用 DEFAULT

一、SQL DEFAULT 语法

在这篇 SQL 文章中,您将了解如何在结构化查询语言中对表的列使用 DEFAULT。

DEFAULT 是 SQL 中的一个约束,它允许用户使用默认值或固定值填充列。

如果在插入时没有为列指定值,则默认值将自动添加到该列。

以下语法在创建表时将 DEFAULT 约束添加到列:

CREATE TABLE Table_Name  
(  
Column_Name_1 DataType (character_size of the column_1) DEFAULT Value,  
Column_Name_2 DataType (character_size of the column_2) DEFAULT Value,  
Column_Name_3 DataType (character_size of the column_3) DEFAULT Value,  
........,  
Column_Name_N DataType (character_size of the column_N) DEFAULT Value,  
)  ; 

在 SQL DEFAULT 语法中,我们必须使用 DEFAULT 约束来定义值。数据库用户可以轻松地为一个 SQL 表中的一列或多列指定 DEFAULT 约束。

当表已经存在时,以下语法将 DEFAULT 约束添加到列:

ALTER TABLE Table_Name ALTER COLUMN Column_Name datatype DEFAULT;  

二、SQL DEFAULT 使用步骤

如果要在创建表时使用 DEFAULT 约束,则必须按照以下步骤操作:

  1. 创建新数据库
  2. 创建一个新表并添加 DEFAULT
  3. 插入记录
  4. 查看表的数据

第 1 步:创建简单的新数据库

首先,您必须使用结构化查询语言创建一个新数据库。

以下查询在 SQL Server 中创建新的行业数据库:

CREATE Database Voting; 

第 2 步:创建新表并添加 DEFAULT

以下查询在行业数据库中创建Client_Info表,并将 CHECK 约束添加到表的 Client_Age列:

CREATE TABLE Client_Info  
(  
Client_ID INT NOT NULL PRIMARY KEY,    
Client_Name VARCHAR (100),    
Client_Gender Varchar(20),  
Client_Age INT NOT NULL DEFAULT 18,  
Client_Address Varchar (80)   
);  

第 3 步:插入值

以下 INSERT 查询在 Client_Info 表中插入客户记录:

INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1001, Arush, Male, Agra);  
INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1002, Bulbul, Female, Lucknow);  
INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1004, Saurabh, Male, 20, Lucknow);  
INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1005, Shivani, Female, Agra );  
INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1006, Avinash, Male, 22, Delhi);  
INSERT INTO Client_Info (Client_ID, Client_Name, Client_Gender, Client_Age, Client_Address) VALUES (1007, Shyam, Male, Banglore);  

第 4 步:查看表的数据

以下查询显示了 Client_Info 表的数据。

SELECT * FROM Client_Info;  
Client_ID Client_Name Client_Gender Client_Age Client_Address
1001 Arush Male 18 Agra
1002 Bulbul Female 18 Lucknow
1004 Saurabh Male 20 Lucknow
1005 Shivani Female 18 Agra
1006 Avinash Male 22 Delhi
1007 Shyam Male 18 Banglore

三、在多列上添加DEFAULT约束 

以下 CREATE TABLE 查询为 Doctor_Info 表的多个列指定了 DEFAULT 约束:

CREATE TABLE Doctor_Info  
(  
Doctor_ID INT NOT NULL PRIMARY KEY,    
Doctor_Name VARCHAR (100),    
Doctor_Specialist VARCHAR (80) DEFAULT Heart,    
Doctor_GenderVarchar (20) DEFAULT Male,  
Doctor_Country Varchar (80) DEFAULT Russia  
) ;  

以下查询在 Doctor_Info 表中插入多条医生记录:

INSERT INTO Doctor_Info (Doctor_ID, Doctor_Name, Doctor_Specialist, Doctor_Gender, Doctor_Country) VALUES ( 1035, Jones, U. K.),  
(1015, Moris),  
(1003, Harry, Fever, U. K.),  
(1044, Bella, Female, U. K.),  
(1025, Moria);  

以下查询显示了 Doctor_Info 表的详细信息:

SELECT * FROM Doctor_Info;  
Doctor_ID Doctor_Name Doctor_Disease Doctor_Gender Doctor_Country
1035 Jones Heart Male U. K.
1015 Moris Heart Male Russia
1003 Harry Fever Male U. K.
1044 Bella Heart Female U. K.
1025 Moria Heart Male Russia

四、从表中删除 DEFAULT 约束

带有 ALTER TABLE 语句的 ALTER COLUMN 关键字允许数据库用户从表的列中删除 DEFAULT 约束。

以下 ALTER 语法用于从 SQL 表中删除 DEFAULT 约束:

ALTER TABLE Table_Name ALTER COLUMN Column_Name DROP DEFAULT;  

 以下查询从 Doctor_Info 表的 Doctor_Country 列中删除默认值俄罗斯:

ALTER TABLE Doctor_Info ALTER COLUMN Doctor_Country DROP DEFAULT;  

要检查上述 ALTER 查询的结果,您必须键入以下 DESC 命令,该命令描述了 Doctor_Info 表的结构:

DESC Doctor_Info;  

输出结果为:

Field Type NULL Key Default Extra
Doctor_ID INT NO - NULL -
Doctor_Name INT NO - NULL -
Doctor_Specialist Varchar(20) NO - Heart -
Doctor_Gender Varchar(20) NO - Male -
Doctor_Country INT Yes - NULL -

从上面的 Doctor_Info 表中我们可以看到,Doctor Country 字段的 DEFAULT 列的值为 NULL,这表明成功地从 Doctor_Country 列中删除了 DEFAULT 值。

五、将 DEFAULT 约束添加到现有表

数据库用户可以通过在 SQL ALTER TABLE 语句中使用 ADD 关键字轻松地将 DEFAULT 值添加到现有表的列中。

SQL 中使用以下语法在现有表中添加 DEFAULT 约束:

ALTER TABLE Table_Name ADD CONSTRAINT Constraint_Name DEFAULT Value FOR Column_Name;  

以下查询将作为 INDIA 的 DEFAULT 值添加到 Doctor_Info 表的 Doctor_Country 列:

ALTER TABLE Doctor_Info ADD CONSTRAINT add_India_default DEFAULT INDIA FOR Doctor_Country;   

要检查上述 ALTER 查询的结果,您必须键入以下 DESC 命令,该命令描述了 Doctor_Info 表的结构:

DESC Doctor_Info;  

输出结果为:

Field Type NULL Key Default Extra
Doctor_ID INT NO - NULL -
Doctor_Name INT NO - NULL -
Doctor_Specialist Varchar(20) NO - Heart -
Doctor_Gender Varchar(20) NO - Male -
Doctor_Country INT N0 - INDIA -

热门文章

优秀文章