MySQL默认值约束怎么用


本文摘自PHP中文网,作者(*-*)浩,侵删。

本篇文章将介绍default 默认约束,如何使用和改动后的效果。

推荐课程:MySQL教程。

常用数据库约束:

default 默认约束;

not null:非空约束,指定某列不为NULL;

unique:唯一约束,指定某列和几列组合的数据不能重复;

primary key:主键约束,指定某列的数据非空、唯一、不能重复;

foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据;

check:检查,指定一个表达式,用于检验指定数据;


1、default 定义列的默认值

当插入一个新行到表中时,没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值;如果没有,则为(NULL)。

1

2

3

4

5

6

7

-- 创建一张user表

CREATE TABLE `test`.`user`( 

  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',

  `name` VARCHAR(225) COMMENT '姓名',

  `sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',

  PRIMARY KEY (`id`)

) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci

给字段添加默认约束:

1

2

3

4

5

6

1.在创建表时:直接在字段类型的后面加上 DEFAULT(value),具体看创建user表时的sex字段;

2.在存在表的情况下添加:

  使用sql语句 ALTER TABLE `user` MODIFY `sex` TINYINT(1) DEFAULT 1; 即可为添加 `sex` 字段添加默认约束;

  使用sql语句 ALTER TABLE `user` MODIFY `name` VARCHAR(225)DEFAULT '小明'; 即可为添加 `name` 字段添加默认约束;

 

tips:默认约束是不可以使用函数的,所以 ALTER TABLE `user` ADD COLUMN `date` DATETIME DEFAULT NOW() AFTER `sex`; 是不可行的。

移除默认约束:

1

2

3

移除默认约束和添加默认约束操作方式一样,都是修改表的字段;

ALTER TABLE `user` MODIFY `sex` TINYINT(1);

这样就移除了sex的默认约束。

现在我们插入一条数据:

1

2

3

4

5

6

7

8

9

INSERT INTO `user`(`name`) VALUES('小明');

 

SELECT * FROM `user`;

 

结果:

-----------------------------------

id   name   sex

   小明    1

-----------------------------------

当然我们也可以:

1

2

3

4

5

6

7

8

INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);

SELECT * FROM `user`;

 

结果:

---------------------------------

id     name     sex

     小明        1

---------------------------------

如果你这样:

1

2

3

4

5

6

7

8

INSERT INTO `user`(`sex`) VALUES(DEFAULT);

SELECT * FROM `user`;

 

结果:

-----------------------------------

id   name    sex

   (NULL)   1

-----------------------------------


tips:在更新和查询都可以用DEFAULT来操作;

1

2

-- 查询sex字段的默认值  SELECT DEFAULT(`sex`) FROM `user`;

-- 更新sex为默认值 UPDATE `user` SET `sex` = DEFAULT WHERE `id`='1';

以上就是MySQL默认值约束怎么用的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

怎样用mysql建表?

mysql如何输出汉字信息

mysql备注(注释)代码怎么打?

总结mysql中float、double、decimal三个浮点类型的区别

掌握mysql隐藏字段(rowid)什么时候是可见的

一键重置mysql的root密码的实现脚本

mysql中b-tree引索和hash引索的区别?

mysql外键使用及说明详解

mysql日期格式转换函数有哪些

分享mysql优化思路

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...