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--概念
Jun 18 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 MySQL
mysql分表之后如何平滑上线详解
Nov 01 MySQL
mysql查询结果实现多列拼接查询
Apr 03 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
MySQL如何使备份得数据保持一致
May 02 MySQL
MySQL如何修改字段类型和字段长度
Jun 10 MySQL
MySQL添加索引特点及优化问题
Jul 23 MySQL
MySQL 原理与优化之Limit 查询优化
Aug 14 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
快速入门Vue
2016/12/19 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
Vue之mixin全局的用法详解
2018/08/22 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
详解React 元素渲染
2020/07/07 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python实现进程同步和通信的方法
2018/01/02 Python
TensorFlow实现创建分类器
2018/02/06 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
安全资金保障制度
2014/01/23 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
小学生春游活动方案
2014/08/20 职场文书
2014年度安全工作总结
2014/12/04 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
太行山上观后感
2015/06/05 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
百年校庆感言
2015/08/01 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python