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之select优化方案
Aug 07 MySQL
mysql 索引合并的使用
Aug 30 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
为什么MySQL8新特性会修改自增主键属性
Apr 18 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL 原理与优化之原数据锁的应用
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
PHP 强制下载文件代码
2010/10/24 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
jQuery事件详解
2017/02/23 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
python中的字典使用分享
2016/07/31 Python
python导入时小括号大作用
2017/01/10 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
TensorFlow Session会话控制&Variable变量详解
2018/07/30 Python
Python基于百度云文字识别API
2018/12/13 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
六五普法宣传标语
2014/10/06 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
公司备用金管理制度
2015/08/04 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
python cv2图像质量压缩的算法示例
2021/06/04 Python