常用数据库约束:

一、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`='';

最新文章

  1. ubuntu下使用visual studio code来编译和调试C++
  2. Oracle数据导入导出
  3. Linux(CentOS、Ububtu)一键安装Openstack及其它参考文档汇总
  4. Java for LeetCode 191 Number of 1 Bits
  5. c#上传文件(一)使用 .net 控件上传文件
  6. 带你快速了解CODESOFT 2015
  7. java 多线程下载
  8. 第一个html程序
  9. Android开发之玩转FlexboxLayout布局
  10. 通过实例深入理解lec和yacc
  11. ext4 delalloc相关
  12. hitTest:withEvent:方法流程
  13. CultureInfo中重要的InvariantCulture
  14. 【Canal源码分析】parser工作过程
  15. 2019PHP面试题最全面归纳总结
  16. PHP实用工具类
  17. luogu P3522 [POI2011]TEM-Temperature
  18. CentOS6.8系统安装Node
  19. BeautifulSoup使用总结
  20. 通过SSH实现Windows与linux之间传输文件

热门文章

  1. Spring boot mvn
  2. Spring mvc拦截器防御CSRF攻击
  3. Reg文件操作
  4. 从Windows10中彻底删除【3D对象】文件夹
  5. seleniumChrom无头浏览器
  6. Aspcms标签大全及常用标签
  7. 剑指offer-面试题19-正则表达式匹配-字符串
  8. Leetcode Week5 Maximum Sum Circular Subarray
  9. 安装CPULimit到Linux(源码)
  10. CCS 5.5下载地址http://www.dianyuan.com/bbs/1492792.html