首页 > 数据库 >SQL 语句创建数据库表时列字段的初始化值

SQL 语句创建数据库表时列字段的初始化值

时间:2023-08-13 13:23:50浏览次数:26  
标签:数据库 表时 列字 插入 日期 设置 SQL 默认值

在SQL中,创建数据库表时可以指定每个列字段的初始值,这称为"默认值"(Default Value)。默认值是在插入新记录时,如果没有显式提供该列的值,则自动应用的值。当插入新行时,如果未提供该列的值,则数据库会使用默认值来填充该列。

默认值对于确保数据完整性和提供默认选项非常有用。当插入新行时,如果未提供某些列的值,数据库将使用这些列的默认值,从而避免出现空值或无效数据。

下面是在SQL中创建数据库表时设置默认值的语法:

CREATE TABLE table_name (
    column1 datatype DEFAULT default_value,
    column2 datatype DEFAULT default_value,
    ...
);

其中,table_name是新表的名称,column1column2是表的列名,datatype是列的数据类型,default_value是该列的默认值。

现在,让我们通过具体的例子详细说明。

假设我们有一个简单的数据库,用于存储用户信息,包括用户ID、用户名、年龄和注册日期。我们将创建一个名为"users"的表,其中的一些列将设置默认值。

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    age INT DEFAULT 18,
    registration_date DATE DEFAULT CURRENT_DATE
);

在上面的例子中,我们创建了一个名为"users"的表,它包含以下列:

  1. user_id:这是用户的唯一标识符,并设置为主键,这意味着每个值都必须是唯一的,且不能为空。
  2. username:这是用户的用户名,VARCHAR(50)表示它是一个最大长度为50个字符的文本字段,NOT NULL指定该列不能为空。
  3. age:这是用户的年龄,INT表示它是一个整数类型的字段,默认值为18。如果在插入新用户时没有提供年龄,那么数据库会自动将其设置为18。
  4. registration_date:这是用户的注册日期,DATE表示它是一个日期类型的字段,默认值设置为当前日期(使用CURRENT_DATE函数)。如果在插入新用户时没有提供注册日期,数据库会自动将其设置为当前日期。

现在,我们来插入一些数据行,看看默认值是如何应用的:

-- 插入一行,没有指定年龄和注册日期
INSERT INTO users (user_id, username) VALUES (1, 'John Doe');

-- 插入一行,没有指定注册日期
INSERT INTO users (user_id, username, age) VALUES (2, 'Jane Smith', 25);

-- 插入一行,指定所有列的值
INSERT INTO users (user_id, username, age, registration_date) 
VALUES (3, 'Bob Johnson', 30, '2023-07-31');

在第一个插入语句中,我们没有提供年龄和注册日期,因此数据库会将年龄设置为默认值18,将注册日期设置为当前日期。

在第二个插入语句中,我们没有提供注册日期,但提供了年龄,因此数据库将年龄设置为提供的值(25),并将注册日期设置为当前日期。

在第三个插入语句中,我们提供了所有列的值,因此数据库会使用我们提供的值。

这就是默认值在SQL创建数据库表时的用途和意义。通过设置默认值,我们可以确保表中的每一行都有一个合理的默认选项,从而简化数据插入过程并保持数据的完整性。如果没有默认值,那么在插入新记录时,所有不允许为空的列都必须显式地提供值,否则数据库将会报错。

总结一下,在SQL中,通过使用DEFAULT关键字来为表的列字段设置默认值,这样在插入新记录时,如果没有提供值,数据库将会使用默认值来填充该列。默认值对于提供默认选项、确保数据完整性以及简化数据插入过程非常有用。

标签:数据库,表时,列字,插入,日期,设置,SQL,默认值
From: https://www.cnblogs.com/sap-jerry/p/17626439.html

相关文章

  • 一个mysql dba的成长之旅--第零章 绝处逢生:意外收到dba offer
    (本故事纯属虚构,如有雷同实属巧合)2018年的一个秋天的下午,江南理工大学图书馆一楼的宣讲会大厅人头攒动,充满了期待的氛围。这里正在举办一场国内知名互联网公司的宣讲会,吸引了众多毕业生前来倾听。小李身穿一套整洁的求职西装,手里拿着整齐的彩色简历,坐在室友旁边,全神贯注地聆听着台......
  • SQL:打印表索引脚本
    SQLSERVER 打印索引脚本declareC1cursorfor--表索引,不包含主约束索引。SELECTOBJ.OBJECT_IDAS[TABLE_ID],OBJ.NAMEAS[TABLE_NAME],--PK.nameASCONSTRAIN_NAME,idx.nameasindex_name,--索引类型:聚集索引、非聚集索引caseWHEN......
  • Go语言gorm框架MySQL实践
    gorm是一个使用Go语言编写的ORM框架。文档齐全,对开发者友好,支持主流数据库。我最近在补齐Go语言各类基础的框架和操作库的知识,终于进展到了数据库阶段,搜资料的时候基本都是推荐这个框架,可见其之流行程度。在不断尝试练习之后,总结了一些经验和使用方式,供初学者参考。在之前使用Jav......
  • SQL:索引表索引
    SQLSERVER2008R2 查询数据库表索引,不包含主约束索引--表索引,不包含主约束索引。SELECTOBJ.OBJECT_IDAS[TABLE_ID],OBJ.NAMEAS[TABLE_NAME],--PK.nameASCONSTRAIN_NAME,idx.nameasindex_name,--索引类型:聚集索引、非聚集索引caseW......
  • SQL:主约束索引
    SQLSERVER 主约束索引--主约束索引SELECTOBJ.OBJECT_IDAS[TABLE_ID],OBJ.NAMEAS[TABLE_NAME],PK.nameASCONSTRAIN_NAME,idx.nameasindex_name,IDXC.index_column_id,IDXC.key_ordinal,COL.nameASCOLUMN_NAMEFROMSYS.all_ob......
  • PowerShell 使用SqlScriptDOM对T-SQL做规则校验
    ​ 对于数据项目来说,编写Sql是一项基本任务同时也是数量最多的代码。为了统一项目代码规范同时降低CodeReview的成本,因此需要通过自动化的方式来进行规则校验。由于本人所在的项目以SQLServer数据库为基础,于是本人决定通过使用SqlScriptDom类库来做T-SQL的规则校验。如果是其......
  • sql优化
    sql优化参考博客:SQL优化的几种方法常见的SQL优化方法sql优化的N种方法_持续更新史上最全SQL优化方案sql语句用大写解析sql语句时,把小写的字母转换成大写的再执行对查询进行优化,应尽量避免全表扫描,首先考虑在where及orderby上建立索引。应尽量避免在where子句中进行以......
  • 高性能MySQL 七-十六
    七、MySQL高级性能7.1分区表MySQL在创建表时使用PARTITIONBY子句定义每个分区存放的数据分区的一个主要目的是将数据按照一个较粗的力度分在不同的表中。这样做可以将相关的数据存放在一起1)分区表的原理SELECT查询:当查询一个分区表的时候,分区层先打开并锁住所有的底层表,......
  • e、PLSQL
    PL/SQLPL/SQL简介详情详见《Oracle从入门到精通(第3版)明日科技》的5章https://www.oraclejsq.com/plsql/010200446.htmlPL/SQL(ProceduralLanguage/SQL)是一种过程化语言,在PL/SQL中可以通过IF语句或LOOP语句实现控制程序的执行流程,甚至可以定义变量,以便在语句之间传递数据......
  • d、SQL语言
    SQL语言SQL全称是结构化查询语言,英文译作StructuredQueryLanguage,它是一种在关系型数据库中定义和操纵数据的标准语言。最早是由IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,当时称为SEQUEL2,也就是目前的SQL语言。1979年Oracle公司首先提供了商用......