- 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 - 选择进入
- SQL - 插入选择
- SQL - 更新查询
- SQL - 删除查询
- SQL - 对结果进行排序
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL-Where 子句
- SQL - 顶部子句
- SQL - 不同子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL-Having 子句
- SQL - 与与或
- SQL - 布尔(位)运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY、ALL 运算符
- SQL - EXISTS 运算符
- SQL-案例
- SQL - NOT 运算符
- SQL - 不等于
- SQL - 为空
- SQL - 不为空
- SQL - 非空
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - 相交运算符
- SQL - EXCEPT 运算符
- 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 - 非聚集索引
- 高级SQL
- SQL - 通配符
- SQL - 注释
- SQL-注入
- SQL-托管
- SQL - 最小值和最大值
- SQL - 空函数
- SQL - 检查约束
- SQL - 默认约束
- SQL-存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL-自动递增
- SQL - 日期和时间
- SQL-游标
- SQL - 公用表表达式
- SQL - 分组依据与排序依据
- 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 | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | 拉梅什 | 32 | 艾哈迈达巴德 | 2000.00 |
2 | 基兰 | 25 | 德里 | 1500.00 |
将“DEFAULT”作为值传递
在向表中插入数据时,如果 INSERT 查询中不包含列名,则要将默认值插入到记录中,我们需要传递“DEFAULT”作为值,如下所示 -
INSERT INTO CUSTOMERS VALUES (3, 'Kaushik', DEFAULT, DEFAULT, 2000.00), (4, 'Chaitali', DEFAULT, DEFAULT, DEFAULT);
得到的表格如下所示 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | 拉梅什 | 32 | 艾哈迈达巴德 | 2000.00 |
2 | 基兰 | 25 | 德里 | 1500.00 |
3 | 考希克 | 32 | 艾哈迈达巴德 | 2000.00 |
4 | 柴塔利 | 32 | 艾哈迈达巴德 | 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 | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
01 | 拉胡尔 | 27 | 德里 | 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 | 整数 | 不 | 优先原则 | 无效的 | |
姓名 | varchar(20) | 不 | 拉梅什 | ||
年龄 | 整数 | 不 | 32 | ||
地址 | 字符(25) | 是的 | 无效的 | ||
薪水 | 小数(18,2) | 是的 | 2000.00 |