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 相关文章推荐
MySQL索引篇之千万级数据实战测试
Apr 05 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
Jun 21 MySQL
浅谈MySQL之浅入深出页原理
Jun 23 MySQL
mysql分表之后如何平滑上线详解
Nov 01 MySQL
一文带你探究MySQL中的NULL
Nov 11 MySQL
一文弄懂MySQL中redo log与binlog的区别
Feb 15 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
解决Mysql中的innoDB幻读问题
Apr 29 MySQL
MySQL脏读,幻读和不可重复读
May 11 MySQL
MySQL数据管理操作示例讲解
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
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
js实现图片上传到服务器和回显
2020/01/19 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
Python获取邮件地址的方法
2015/07/10 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
python中的时区问题
2021/01/14 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
教师学习培训邀请函
2014/02/04 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
优秀教师先进材料
2014/12/16 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书