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 相关文章推荐
浅析InnoDB索引结构
Apr 05 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 MySQL
使用ORM新增数据在Mysql中的操作步骤
Jul 26 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
MySQL示例讲解数据库约束以及表的设计
Jun 16 MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 MySQL
delete in子查询不走索引问题分析
Jul 07 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+jQuery 注册模块开发详解
2014/10/14 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
JS限制输入框输入的实现代码
2018/07/02 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
使用vue制作滑动标签
2019/09/21 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
丑小鸭教学反思
2014/02/03 职场文书
经典演讲稿开场白
2014/08/25 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
保卫工作个人总结
2015/03/03 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
导游词之西安骊山
2019/12/03 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js