一、SQL DEFAULT约束概述
DEFAULT约束在SQL中是一种非常有用的机制,它允许你在创建表时为列指定一个默认值。当向表中插入新记录时,如果没有为该列显式提供值,那么数据库管理系统就会自动将默认值插入到该列中。
二、CREATE TABLE时使用SQL DEFAULT约束的示例
假设我们要创建一个名为“Persons”的表,其中包含“PersonID”(人员ID,整数类型,为主键)、“FirstName”(名,字符串类型)、“LastName”(姓,字符串类型)和“City”(所在城市,字符串类型)这几个列。我们希望在“City”列上设置一个默认值,比如“Unknown”,表示如果在插入新记录时没有指定城市,就默认该人员所在城市为“Unknown”。
以下是创建“Persons”表并设置“City”列DEFAULT约束的SQL代码示例:
CREATE TABLE Persons (
PersonID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
City VARCHAR(50) DEFAULT 'Unknown'
);
在上述代码中:
CREATE TABLE
语句用于创建一个新的表,这里是“Persons”表。- 定义了各个列及其数据类型,如“PersonID”列是整数类型并且被指定为主键(
PRIMARY KEY
)。 - 对于“City”列,除了指定其数据类型为
VARCHAR(50)
(可变长度字符串,最长50个字符)之外,还使用了DEFAULT 'Unknown'
来设置默认值。这意味着当向“Persons”表插入新记录时,如果没有为“City”列提供具体的值,数据库将会自动将“Unknown”插入到该列中。
例如,以下是插入新记录的几种情况示例:
情况一:为所有列提供值
INSERT INTO Persons (PersonID, FirstName, LastName, City)
VALUES (1, 'John', 'Doe', 'New York');
在这种情况下,因为为“City”列提供了具体的值“New York”,所以插入记录时会使用提供的值,而不会使用默认值“Unknown”。
情况二:不为“City”列提供值
INSERT INTO Persons (PersonID, FirstName, LastName)
VALUES (2, 'Jane', 'Smith');