当前位置: 首页 > news >正文

MySQL中的约束

一、约束概述

数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。


二、主键约束(Primary Key) PK

  • 单一主键 使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。
  • 联合主键 使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

2.1 创建表时添加主键约束

使用DDL语句

create table 表名(

列名1  数据类型 primary key,

列名2 数据类型

);

2.2 修改表时添加主键约束

使用DDL语句

ALTER TABLE 表名 ADD PRIMARY KEY(列名);

2.3 主键自增长

使用DDL语句

alter table 表名 modify 主键 类型 auto_increment;

  • 一个表中只能有一个列为自动增长。
  • 自动增长的列的类型必须是整数类型。
  • 自动增长只能添加到具备主键约束与唯一性约束的列上。
  • 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束。

使用Navicat添加主键 


2.4 删除主键

使用DDL语句

ALTER TABLE 表名 DROP PRIMARY KEY;

注意: 删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除主键。 

使用Navicat

 


三、外键约束(Foreign Key) FK

  • 外键指向的主表的字段,要求是primary key 或者是 unique
  • 表的存储引擎是innodb,这样的表才支持外键
  • 外键字段的类型要和主键字段的类型一致(长度可以不同)
  • 从表外键字段的值,必须在主键字段出现过,或者为null

3.1 添加外键约束

使用DDL语句

ALTER  TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN  KEY( 列名 ) REFERENCES 参照的表名 (参照表的列名);

使用Navicat添加外键约束

3.2 删除外键约束 

使用DDL语句

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

使用Navicat删除外键约束 

 


四、唯一性约束(Unique)

4.1 添加唯一性约束

使用DDL语句添加唯一性约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名); 

 使用Navicat添加唯一性约束

 

4.2 删除唯一性约束

使用DDL语句删除唯一性约束

ALTER TABLE 表名 DROP KEY 约束名; 

使用Navicat删除唯一性约束


五、非空约束(Not Null)

5.1 添加非空约束

使用DDL语句添加非空约束

 ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

使用Navicat添加非空约束 


5.2 删除非空约束 

使用DDL语句删除非空约束

ALTER TABLE 表名 MODIFY 列名 类型 NULL;

使用Navicat删除非空约束


六、检查约束(Check)

七、查询表中的约束信息

SHOW KEYS FROM 表名; 


http://www.mrgr.cn/news/5248.html

相关文章:

  • Linux设备驱动节点里的bind与unbind
  • 工业物联网(IIOT)的定义、示例及关键技术
  • 深度学习中常用参数解释
  • Android笔试面试题AI答之Kotlin偏门考点总结
  • 【C++】深入解析C/C++内存管理:new与delete的使用及原理
  • SQL手工注入漏洞测试(MongoDB数据库)
  • 深入探讨量子计算领域的最新进展及其对社会经济的影响
  • EasyCVR视频汇聚技术赋能智慧煤矿:车载设备接入方案助力实时监控与远程监管
  • 软件测试面试题总结(含答案解析+文档)
  • Leetcode JAVA刷刷站(74)搜索二维矩阵
  • Vue的生命周期了解
  • C#实现数据采集系统-数据反写(1)MQTT订阅接收消息
  • 实现AOP机制 + Spring总结
  • 甲烷传感器的应用领域:从油气行业到环境监测的全面覆盖
  • 【机器学习】联邦学习技术
  • React 入门第三天:深入理解Hooks的强大功能
  • Python:Django 和 Tornado 的关系
  • LongWriter——从长文本语言模型中释放出10,000+字的生成能力
  • Docker私人学习笔记
  • git 目录提交代码