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 13 MySQL
MySQL 隔离数据列和前缀索引的使用总结
May 14 MySQL
MySQL中in和exists区别详解
Jun 03 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 MySQL
MySQL读取JSON转换的方式
Mar 18 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
MySQL表字段数量限制及行大小限制详情
Jul 23 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具体实现代码
2010/10/12 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
php生成微信红包数组的方法
2019/09/05 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
js表单验证实例讲解
2016/03/31 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
用Python读取几十万行文本数据
2018/12/24 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python SOCKET编程基础入门
2021/02/27 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
优秀员工自荐书范文
2013/12/08 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
青年文明号申报材料
2014/12/23 职场文书
小学生手册家长意见
2015/06/03 职场文书
开学第一周值周总结
2015/07/16 职场文书
运动会跳远广播稿
2015/08/19 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android