首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在创建表时声明默认约束

在创建表时,可以声明默认约束,以确保在插入新数据时,特定列的值符合预期。默认约束可以在创建表时定义,也可以在创建表后添加。

默认约束的定义方式如下:

代码语言:txt
复制
CREATE TABLE table_name (
    column1 data_type constraint_name DEFAULT default_value,
    column2 data_type,
    ...
);

其中,constraint_name 是默认约束的名称,可以自定义,default_value 是默认值。

例如,如果要在创建一个名为 employees 的表,其中包含 nameagedepartment 列,并且要求在插入新数据时,如果未指定 department 列的值,则默认为 "Unknown",可以使用以下 SQL 语句:

代码语言:txt
复制
CREATE TABLE employees (
    name VARCHAR(50),
    age INT,
    department VARCHAR(50) DEFAULT 'Unknown'
);

在创建表后,也可以使用 ALTER TABLE 语句添加默认约束。例如,如果要在上面的 employees 表中添加一个名为 salary 的列,并且要求在插入新数据时,如果未指定 salary 列的值,则默认为 0,可以使用以下 SQL 语句:

代码语言:txt
复制
ALTER TABLE employees
ADD salary DECIMAL(10,2) DEFAULT 0;

需要注意的是,如果在创建表时声明了默认约束,但在插入数据时又显式地指定了该列的值,则默认约束不会生效。例如,如果在上面的 employees 表中插入一条新数据,并且指定了 department 列的值为 "HR",则默认约束不会生效,数据将被插入到 department 列中。

代码语言:txt
复制
INSERT INTO employees (name, age, department)
VALUES ('John Doe', 30, 'HR');
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共17个视频
动力节点-JDK动态代理(AOP)使用及实现原理分析
动力节点Java培训
动态代理是使用jdk的反射机制,创建对象的能力, 创建的是代理类的对象。 而不用你创建类文件。不用写java文件。 动态:在程序执行时,调用jdk提供的方法才能创建代理类的对象。jdk动态代理,必须有接口,目标类必须实现接口, 没有接口时,需要使用cglib动态代理。 动态代理可以在不改变原来目标方法功能的前提下, 可以在代理中增强自己的功能代码。
领券