SQL语法CONSTRAINT约束操作详情


Posted in MySQL onJanuary 18, 2022

CONSTRAINT约束,即对数据库表中的数据进行约束,以保证数据记录的完整性和有效性。

比较常用的是,创建表时添加约束,但是为了整理记录,这里把所有的用法都写下来,但是大家按照最常见的重点掌握。

1.主键约束 primary key

#主键约束 primary key

#添加主键 添加后系统会默认为对应的列添加索引 提高检索速度 
#方法一(单列主键):id int PRIMARY KEY //方法一是创建表时 当前定义字段后 方法二是创建表时 所有定义字段后
#方法二(单|多列主键):CONSTRAINT pk1 PRIMARY KEY(name,deptId) //CONSTRAINT pk1可以省略 pk1是索引名 可以任意取
#方法三(创建表后添加):ALTER TABLE emp1 ADD PRIMARY KEY(eid) //可以是单列也可以是多列

#删除主键
#ALTER TABLE emp1 DROP PRIMARY KEY //每个表只有一个主键 删除的时候不分单列主键还是联合主键

#主键作用是主键约束的列是唯一且非空

2.自增长约束 auto_increment

#自增长约束 auto_increment 

#一般用来实现主键的自增长约束 用户就不再需要为其赋值 数据库自动赋值 默认从1开始
#id int PRIMARY KEY auto_increment

#创建表时可以指定自增长初始值
/*CREATE TABLE IF NOT EXISTS mydb1.employee(
        id int,
        name varchar(20),
        gender varchar(10),
        salary double
)auto_increment=100;*/

#创建表后可以添加自增长初始值
#ALTER TABLE emp2 auto_increment=100

#delete 后默认自增长从断点开始
#truncate 后默认自增长从1开始(无论有无初始值)

3.非空约束 not null

#非空约束 not null  //真正的空是NULL 而不是'NULL'或者''

#添加约束
#方法一:name varchar(20) not null
#方法二:ALTER TABLE emp3 MODIFY name varchar(20) not null (创建表后添加)

#删除约束
#ALTER TABLE emp3 MODIFY name varchar(20)

4.唯一约束 unique

#唯一约束 unique

#添加约束  //在mysql中NULL和任何值都不相同 包括它自己
#方法一:name varchar(20) unique
#方法二:ALTER TABLE emp4 ADD CONSTRAINT unique_pn unique(name) (创建表后添加)

#删除约束
#ALTER TABLE emp4 DROP INDEX unique_pn // unique_pn 是约束名 若没有名字 则默认是使用的列名

5.默认约束 default

#默认约束 default

#添加约束
#方法一:address varchar(20) DEFAULT '北京'
#方法二:ALTER TABLE emp5 MODIFY address varchar(20) DEFAULT '北京' (创建表后添加)

#删除约束
#ALTER TABLE emp5 MODIFY address varchar(20) DEFAULT NULL

6.零填充约束 zerofill

#零填充约束 zerofill (显示效果) 了解即可

#添加约束
#address varchar(20) zerofill

#删除约束
#ALTER TABLE emp6 MODIFY id int 

到此这篇关于SQL语法CONSTRAINT约束操作详情的文章就介绍到这了,更多相关SQL语法CONSTRAINT约束操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
数据库连接池
Apr 06 MySQL
MySQL数字类型自增的坑
May 07 MySQL
MySQL时间盲注的五种延时方法实现
May 18 MySQL
MySql 8.0及对应驱动包匹配的注意点说明
Jun 23 MySQL
MySQL子查询中order by不生效问题的解决方法
Aug 02 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
MySql数据库触发器使用教程
Jun 01 MySQL
SQLServer常见数学函数梳理总结
Aug 05 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
Dec 24 MySQL
MySQL笔记 —SQL运算符
Jan 18 #MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 #MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 #MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 #MySQL
mysql中整数数据类型tinyint详解
Dec 06 #MySQL
SQL注入详解及防范方法
Dec 06 #MySQL
防止web项目中的SQL注入
Dec 06 #MySQL
You might like
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
js数组操作常用方法
2014/05/08 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python Tkinter版学生管理系统
2019/02/20 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Python chardet库识别编码原理解析
2020/02/18 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
django 外键创建注意事项说明
2020/05/20 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
函授毕业生自我鉴定
2013/11/06 职场文书
建筑个人求职信范文
2014/01/25 职场文书
cf搞笑广告词
2014/03/14 职场文书
毕业生评语大全
2015/01/04 职场文书
学习经验交流会总结
2015/11/02 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书