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 Shell的介绍以及安装
Apr 24 MySQL
MySQL Router实现MySQL的读写分离的方法
May 27 MySQL
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
MySQL 5.7常见数据类型
Jul 15 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
Golang连接并操作MySQL
Apr 14 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 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设计聊天室步步通
2006/10/09 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python中偏函数partial用法实例分析
2015/07/08 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
python多线程并发实例及其优化
2019/06/27 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
python算的上脚本语言吗
2020/06/22 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
参加招聘会后的感想
2015/08/10 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
HAM-2000摩机图
2021/04/22 无线电