常用数据库约束:

一、default 默认约束;

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

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

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

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

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

1、default 定义列的默认值

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

-- 创建一张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.在创建表时:直接在字段类型的后面加上 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`; 是不可行的。

移除默认约束:

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

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

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

现在我们插入一条数据:

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

SELECT * FROM `user`;

结果:
-----------------------------------
id name sex
1 小明 1
-----------------------------------

当然我们也可以:

INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);
SELECT * FROM `user`; 结果:
---------------------------------
id name sex
3 小明 1
---------------------------------

如果你这样:

INSERT INTO `user`(`sex`) VALUES(DEFAULT);
SELECT * FROM `user`; 结果:
-----------------------------------
id name sex
3 (NULL) 1
-----------------------------------

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

-- 查询sex字段的默认值
SELECT DEFAULT(`sex`) FROM `user`; -- 更新sex为默认值
UPDATE `user` SET `sex` = DEFAULT WHERE `id`='';

MySql -- default 默认约束的更多相关文章

  1. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  2. mysql基础之约束

    约束的目的: 1.约束保证数据的完整性和一致性. 2.约束分为表级约束 和 列级 约束.(针对约束字段的数目的多少来确定的) 3.约束类型包括 not null (非空约束) primary key( ...

  3. mysql语句之约束语句

    约束语句: not null 非空 default 默认约束语句 unique 唯一约束语句 primary 主键 = 唯一 + 非空 auto_increment 自动增长 foreign key( ...

  4. mysql DEFAULT约束 语法

    mysql DEFAULT约束 语法 作用:用于向列中插入默认值. 说明:如果没有规定其他的值,那么会将默认值添加到所有的新记录.直线电机 mysql DEFAULT约束 示例 //在 "P ...

  5. MySQL之外键约束

    MySQL之外键约束 MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbo ...

  6. Mysql表的约束设计和关联关系设计

    https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...

  7. Mysql 数据类型、约束类型

    mysql数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型.   数值类型 MySQL支持所有标准 ...

  8. MySQL命令:约束

    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性 约束分类: 约束类型与关键字: 主键      PRIMARY KEY 默认值  DEFAULT 唯一      UN ...

  9. Mysql数据类型、约束、存储引擎

    一.数据类型 整数类型 默认有符号的 设置为无符号 1.create table t2(age tinyint unsigned); 2.建表后用alter修改 tinyint[(m)] [unsig ...

随机推荐

  1. phyon tensorflow 安装(centos)

    1.phyon27 安装 1.1 下载 wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz 1.2  解压 tar -zxv ...

  2. Linux 进程调度笔记(一)

    主要讨论的是单核 CPU 的情况下,进行调度的一些算法和思路.讨论都是基于单核 CPU 的条件下进行. 在内存中,无论对于用户而言有多少个进程,但在 CPU 运行的时候,总是只有只执行一个进程.进程调 ...

  3. java集合框架备忘

    List,Set,Map三者的区别? List(对付顺序的好帮手): List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set(注重独一无二的性质): 不允许重复的集合.不会有多 ...

  4. 统一操作系统 UOS 回应质疑 (独立思考)

    统一操作系统 UOS 回应质疑 自从统一操作系统UOS正式版面向合作伙伴发布之后,小编就关注到网上对统一操作系统UOS众说纷纭.留意了近期网友们发表的评论: “又多了一个骗钱的国产操作系统” “从UO ...

  5. MySql 小表驱动大表

    在了解之前要先了解对应语法 in 与 exist. IN: select * from A where A.id in (select B.id from B) in后的括号的表达式结果要求之输出一列 ...

  6. python&mysql

    第一种方法,使用 pymysql库 import pymysql.cursors # Connect to the database connection = pymysql.connect(host ...

  7. .Net Core的总结

    一.什么是.NET Core .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案 ...

  8. 手写数字识别——利用keras高层API快速搭建并优化网络模型

    在<手写数字识别——手动搭建全连接层>一文中,我们通过机器学习的基本公式构建出了一个网络模型,其实现过程毫无疑问是过于复杂了——不得不考虑诸如数据类型匹配.梯度计算.准确度的统计等问题,但 ...

  9. Robot Framework选择定位option类型下拉框

    页面下拉框一般有两种类型,一种是div标签的,一种是option类型的,比如: div标签类型则可以通过定位进行元素点击去选择对应的枚举参数则可,而option类型的下拉选项则通过Selenium2L ...

  10. 0004 工程配置settings.py

    两个目录的区别: 工程目录是指包含manage.py文件的目录 配置目录是批包含settings.py文件的目录 在配置目录中找到并打工settings.py文件,做以下配置: 01 DEBUG DE ...