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系列之五 视图、存储函数、存储过程、触发器
Jul 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL中连接查询和子查询的问题
Sep 04 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL图形化管理工具Navicat安装步骤
Dec 04 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL数据库简介与基本操作
May 30 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 MySQL
MySQL数据库之存储过程 procedure
Jun 16 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中array_merge和array相加的区别分析
2013/06/17 PHP
PHP的拦截器实例分析
2014/11/03 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
如何在Python中编写并发程序
2016/02/27 Python
Python算法之图的遍历
2017/11/16 Python
python使用turtle库绘制树
2018/06/25 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
大学本科毕业生的自我鉴定
2013/11/26 职场文书
军训的自我鉴定
2013/12/10 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
留学顾问岗位职责
2014/04/14 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
体育教师求职信
2014/06/30 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
三好学生事迹材料
2014/12/24 职场文书
小学生作文批改评语
2014/12/25 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书