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查询语句的执行过程
May 07 MySQL
MySQL 逻辑备份与恢复测试的相关总结
May 14 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
MySQL分区路径子分区再分区
Apr 13 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
mysql序号rownum行号实现方式
Dec 24 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单例模式
2014/11/25 PHP
PHP文件操作详解
2016/12/30 PHP
php自动加载代码实例详解
2021/02/26 PHP
网页javascript精华代码集
2007/01/24 Javascript
插件:检测javascript的内存泄漏
2007/03/04 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python多进程重复加载的解决方式
2019/12/13 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
行政部主管岗位职责
2013/12/28 职场文书
经典婚礼主持词
2014/03/13 职场文书
新闻发布会策划方案
2014/06/12 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
行为习惯主题班会
2015/08/14 职场文书
情感电台广播稿
2015/08/18 职场文书