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服务添加 iptables防火墙策略的方案
Apr 29 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MySQL通过binlog恢复数据
May 27 MySQL
MySQL中in和exists区别详解
Jun 03 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 MySQL
mysql自增长id用完了该怎么办
Feb 12 MySQL
Mysql分库分表之后主键处理的几种方法
Feb 15 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
优化Mysql查询的示例
Apr 26 MySQL
MySQL数据库安装方法与图形化管理工具介绍
May 30 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转成EXE文件
2006/10/09 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
浅谈webpack对样式的处理
2018/01/05 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
vue el-table实现自定义表头
2019/12/11 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
python基础教程之常用运算符
2014/08/29 Python
python使用tornado实现登录和登出
2018/07/28 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python模拟实现斗地主发牌
2020/01/07 Python
Django数据统计功能count()的使用
2020/11/30 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
学习委员自我鉴定
2014/01/13 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
优秀员工演讲稿
2014/05/19 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
2015年质检工作总结
2015/05/04 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript