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之浅入深出页原理
Jun 23 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
mysql sum(if())和count(if())的用法说明
Jan 18 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 MySQL
MySQL数据库⾼可⽤HA实现小结
Jan 22 MySQL
关于k8s环境部署mysql主从的问题
Mar 13 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
MySql中的json_extract函数处理json字段详情
Jun 05 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 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和ACCESS写聊天室(六)
2006/10/09 PHP
第十三节--对象串行化
2006/11/16 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
jquery 上下滚动广告
2009/06/17 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
简明 Python 基础学习教程
2007/02/08 Python
通过cmd进入python的实例操作
2019/06/26 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
学院领导推荐信
2013/10/30 职场文书
管理部部长岗位职责
2013/12/05 职场文书
学校大课间活动方案
2014/01/30 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
网络教育自我鉴定
2014/02/04 职场文书
代理协议书
2014/04/22 职场文书
团支部建设方案
2014/05/02 职场文书
给老婆的道歉信
2015/01/20 职场文书
置业顾问岗位职责
2015/02/09 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers