- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY,ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - Union 与 Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 复合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - Null 函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By 与 Order By
- SQL - IN 与 EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 默认约束
SQL DEFAULT 约束
SQL 的DEFAULT 约束用于指定表列的默认值。我们通常在创建表时设置默认值。
如果在插入数据时未提供任何值,则默认值将被视为列值,从而确保该列始终具有值。我们可以在 SQL 表中为多个列指定默认值。
语法
以下是 SQL DEFAULT 约束的语法:
CREATE TABLE table_name ( column1 datatype DEFAULT default_value, column2 datatype DEFAULT default_value, column3 datatype, ..... columnN datatype );
示例
在以下查询中,我们使用 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 |
传递“DEFAULT”作为值
在将数据插入表时,如果列名未包含在 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 |
向现有列添加默认约束
我们还可以使用ALTER TABLE语句向表的现有列添加默认约束。这允许我们通过指定默认值来修改现有表的结构,从而确保数据库中的数据一致性。
语法
以下是向现有表中的列添加默认约束的语法:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'default_value';
示例
假设我们使用 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);
验证
插入记录后,如果您将其取回,您可以在地址列中观察到默认值(“Delhi”):
SELECT * FROM BUYERS WHERE ID = 01;
输出
获得的表如下:
| ID | NAME | AGE | ADDRESS | SALARY |
|---|---|---|---|---|
| 01 | Rahul | 27 | Delhi | 50000.00 |
删除默认约束
我们可以使用ALTER TABLE... DROP语句从表中删除默认约束。
语法
以下是从表中删除默认约束的语法:
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
示例
在这里,我们从 CUSTOMERS 表的 ADDRESS 列中删除默认约束:
ALTER TABLE CUSTOMERS ALTER ADDRESS DROP DEFAULT;
验证
我们可以使用以下查询验证表详细信息(结构)并检查是否存在默认约束:
DESC CUSTOMERS;
获得的表如下所示:
| 字段 | 类型 | 空 | 键 | 默认 | 额外 |
|---|---|---|---|---|---|
| ID | int | NO | PRI | NULL | |
| NAME | varchar(20) | NO | Ramesh | ||
| AGE | int | NO | 32 | ||
| ADDRESS | char(25) | YES | NULL | ||
| SALARY | decimal(18,2) | YES | 2000.00 |