SQL 如何使用DEFAULT

SQL 如何使用DEFAULT

在这篇SQL文章中,您将学习如何在结构化查询语言中使用DEFAULT来处理表格中的列。

什么是DEFAULT约束?

在SQL中,DEFAULT是一种约束,它允许用户将列填充为默认值或固定值。

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

以下语法为表格创建时的列添加了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;

如果您想在创建表格时使用DEFAULT约束,需要按照以下步骤进行操作:

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

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

首先,您需要在结构化查询语言中创建一个新的数据库。

以下查询在SQL服务器中创建一个名为 Industry 的数据库:

CREATE Database Voting;

第2步:创建新表并添加默认值

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

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列中删除了DEFAULT值Russia:

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,这表明DEFAULT值已经成功从Doctor_Country列中移除。

向现有表添加DEFAULT约束

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

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

ALTER TABLE Table_Name ADD CONSTRAINT Constraint_Name DEFAULT Value FOR Column_Name;

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

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 -

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程