SQL DEFAULT

简介: 【11月更文挑战第16天】

一、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');
目录
相关文章
|
SQL 测试技术 数据处理
|
5月前
|
SQL 关系型数据库 MySQL
ALTER TABLE 时的 SQL DEFAULT 约束
【7月更文挑战第20天】ALTER TABLE 时的 SQL DEFAULT 约束。
46 1
|
5月前
|
SQL Oracle 关系型数据库
SQL DEFAULT 约束
【7月更文挑战第20天】SQL DEFAULT 约束。
47 1
|
6月前
|
SQL Oracle 关系型数据库
SQL DEFAULT 约束
SQL DEFAULT 约束
49 6
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have
|
5月前
|
SQL Java 数据库连接
Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have a de
Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have a de
|
数据库
java.sql.SQLException: Field ‘id‘ doesn‘t have a default value
java.sql.SQLException: Field ‘id‘ doesn‘t have a default value
|
SQL Oracle 关系型数据库
Could not find archived log for sequence 587 thread 1 under default destinations SQL
Could not find archived log for sequence 587 thread 1 under default destinations SQL
107 0
Could not find archived log for sequence 587 thread 1 under default destinations SQL
|
SQL Oracle 关系型数据库
sql default默认
SQL DEFAULT Constraint on ALTER TABLE 如果在表已存在的情况下为 "City" 列创建 DEFAULT 约束,请使用下面的 SQL: MySQL: ALTER TABLE Persons ALTER City SET DEFAULT 'SANDNES' SQL Server / Oracle / MS Access: ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES'
108 0
|
SQL Oracle 关系型数据库
sql default
sql default
83 0