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 COUNT函数的使用与优化
May 10 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
MySQL中出现乱码问题的终极解决宝典
May 26 MySQL
MySql存储过程之逻辑判断和条件控制
May 26 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
防止web项目中的SQL注入
Dec 06 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
MySQL主从切换的超详细步骤
Jun 28 MySQL
MySQL新手入门进阶语句汇总
Sep 23 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数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python如何进行时间处理
2020/08/06 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
单位介绍信范文
2014/01/18 职场文书
科技之星事迹材料
2014/06/02 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
学生会自荐信
2019/05/16 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle
SQL中的连接查询详解
2022/06/21 SQL Server