详解MySQL中default的使用

 更新时间:2018年05月30日 09:34:13   作者:子不语_wj  
这篇文章主要介绍了MySQL中default的使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

NULL 和 NOT NULL 修饰符、DEFAULT 修饰符,AUTO_INCREMENT 修饰符。

NULL 和 NOT NULL 修饰符

可以在每个字段后面都加上这 NULL 或 NOT NULL 修饰符来指定该字段是否可以为空(NULL),

还是说必须填上数据 (NOT NULL)。MySQL 默认情况下指定字段为 NULL 修饰符,如果一个字段指定为NOT NULL,

MySQL 则不允许向该字段插入空值(这里面说的空值都为 NULL),因为这是 “规定”。

/* 
创建好友表,其中id ,name ,pass都不能为空 
*/ 
create table friends ( 
id int(3) not null, 
name varchar(8) not null, 
pass varchar(20) not null 
); 
/* 
错误提示,id列不能为空 
#1048 - Column 'id' cannot be null 
*/ 
INSERT INTO friends 
VALUES ( 
NULL , 'simaopig', 'simaopig' 
); 

但是在自增列和 TIMESTAMP 字段中,这个规则并不适用。

向这些字段中插入 NULL 值将会导致插入下一个自动增加的值或者当前的时间戳。

DEFAULT 修饰符

可以使用 DEFAULT 修饰符为字段设定一个默认值。

当插入记录时,您老人家忘记传该字段的值时,MySQL 会自动为您设置上该字段的默认值。

/* 
创建im表,将name字段设置为默认值'QQ' 
*/ 
create table im ( 
id int(3) not null, 
name varchar(25) not null default 'QQ' 
); 
/* 
插入数据,不传name字段的值,MySQL会为其设置默认值的 
您运行的 SQL 语句已经成功运行了。 
*/ 
INSERT INTO im( id, name ) VALUES ( 2, 'MSN' ) ; 
INSERT INTO im( id ) VALUES ( 3 ) ; 
SELECT * FROM im LIMIT 0 , 30; 
/* 
id name 
2 MSN 
3 QQ 
*/ 

如果一个字段中没有指定 DEFAULT 修饰符,MySQL 会依据这个字段是 NULL 还是 NOT NULL 自动设置默认值。

如果指定字段可以为 NULL,则 MySQL 为其设置默认值为 NULL。

如果是 NOT NULL 字段,MySQL 对于数值类型插入 0,字符串类型插入空字符串,

时间戳类型插入当前日期和时间,ENUM 类型插入枚举组的第一条。

AUTO_INCREMENT 修饰符

AUTO_INCREMENT 修饰符只适用于 INT 字段,表明 MySQL 应该自动为该字段生成一个数

(每次在上一次生成的数值上面加 1)。对于主键(稍候介绍),这是非常有用的。

因为其允许开发者使用 MySQL 为每条记录创建唯一的标识符。

/* 
您运行的 SQL 语句已经成功运行了。 ( 查询花费 0.0170 秒 ) 
*/ 
CREATE TABLE items( 
id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
label varchar( 255 ) NOT NULL 
); 
/* 
插入三条数据,不指定id,采用默认值,加上AUTO_INCREMENT 
您运行的 SQL 语句已经成功运行了。 
*/ 
insert into items(label) values ('xxx'); 
insert into items(label) values ('yyy'); 
insert into items(label) values ('zzz'); 
/* 
全显示出来,看一下数据,注意看id的变化 
*/ 
select * from items; 
/* 
id label 
1 xxx 
2 yyy 
3 zzz 
*/ 

MySQL 表中只能有一个 AUTO_INCREMENT 字段,而且这个字段必须被定义为键。

除了字段的约束,MySQL 也允许表级的约束,比如主键和外键、索引和惟一约束。

总结

以上所述是小编给大家介绍的MySQL中default的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • mysql 8.0.12 安装配置方法并修改密码

    mysql 8.0.12 安装配置方法并修改密码

    这篇文章主要为大家详细介绍了mysql 8.0.12 安装配置,及修改密码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • MySQL如何给表和字段添加注释

    MySQL如何给表和字段添加注释

    这篇文章主要介绍了MySQL如何给表和字段添加注释问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • mytop 使用介绍 mysql实时监控工具

    mytop 使用介绍 mysql实时监控工具

    mytop 是一个类似 Linux 下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接用户和正在执行的命令
    2012-05-05
  • 简述MySQL InnoDB存储引擎

    简述MySQL InnoDB存储引擎

    这篇文章主要介绍了MySQL InnoDB存储引擎的相关资料,帮助大家更好的了解MySQL的存储引擎,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL服务器 IO 100%的分析与优化方案

    MySQL服务器 IO 100%的分析与优化方案

    这篇文章主要给大家介绍了关于MySQL服务器 IO 100%的相关资料,文中通过示例代码介绍的介绍非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • MySQL中INSERT+SELECT的使用方式

    MySQL中INSERT+SELECT的使用方式

    MySQL的INSERT INTO SELECT FROM语句允许用户通过一条SQL语句实现从一个或多个表中查询数据并将结果插入到另一个表中,这种方式特别适用于需要将数据从一张表迁移到另一张表,或者基于多表查询结果创建新表的场景
    2024-10-10
  • 解决mysql5中文乱码问题的方法

    解决mysql5中文乱码问题的方法

    这篇文章主要介绍了解决mysql5中文乱码问题的方法,需要的朋友可以参考下
    2014-04-04
  • Mysql常用sql语句汇总

    Mysql常用sql语句汇总

    这篇文章主要介绍了Mysql常用sql语句汇总的相关资料,需要的朋友可以参考下
    2017-09-09
  • 教你一招永久解决mysql插入中文失败问题

    教你一招永久解决mysql插入中文失败问题

    mysql经常会遇到某些中文插入异常,最近有同学反馈了这样一个问题,所以下面这篇文章主要给大家介绍了关于如何永久解决mysql插入中文失败问题的相关资料,需要的朋友可以参考下
    2021-11-11
  • mysql 添加索引的实现步骤

    mysql 添加索引的实现步骤

    索引是一种用于提高查询效率的数据结构,通过添加索引,可以加快数据的查找速度,本文主要介绍了mysql 添加索引的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07

最新评论