ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

学习笔记|MySQL中关于约束类型,主键 ,唯一键,外键知识

2020-02-20 16:40:56  阅读:314  来源: 互联网

标签:外键 约束 为空 MySQL 该字 主表 主键


六种常见约束

  1. not null:非空约束,用于保证该字段的值不能为空
  2. default:默认约束,用于保证该字段的值不能为空
  3. primary key:主键约束,用于保证该字段的值具有唯一性,且非空
  4. unique:唯一约束,用于保证该字段的值具有唯一性,可以为空
  5. check:检查约束,用于对插入的数据按照设置的逻辑进行检查
  6. foreign key:外键约束,用于限制两个表的关系,用于保证该字段的值必须来主表关联列的值
DROP TABLE IF EXISTS test1 ;

CREATE TABLE test1 (
  id INT PRIMARY KEY,
  #主键
  id_name VARCHAR (20) NOT NULL,
  #非空约束
  seat INT UNIQUE,
  #唯一
  gender CHAR(1) CHECK (gender = '男' 
    OR gender = '女'),
  #检查约束
  class VARCHAR (220) DEFAULT '高三一班' #默认约束
) ;

*约束是可以叠加的

主键和唯一键的比较

primary key unique
值唯一性 唯一 唯一
是否为空 非空 可以为空
表中允许个数 1 多个
允许组合 允许 允许

外键约束

特点:

  1. 要求在从表设置外键关系
  2. 从表的外键列的类型和主表的关联列一致或兼容,名称无要求(类似于java中的父系和子系)
  3. 主表的关联列必须是一个key(一般是主键或唯一键)
  4. 插入数据时 先插入主表,再插入从表
  5. 删除数据时,先删除从表,再删除主表

语法:

ALTER TABLE 表名 ADD 【CONSTRAINT 外键名字】 FOREIGN KEY 外键字段 REFERENCES 主表(关联列);

外键约束不支持列级约束

主键约束和外键约束的对比

主键约束 外键约束
说明 唯一性,不能重复,不允许为空 外键可以重复以及允许为空,表的外键是另一表的主键
功能 保证字段的唯一性 关联数据,与其他表建立联系
不同点 主键只能由一个 允许存在多个外键
weixin_44094106 发布了2 篇原创文章 · 获赞 2 · 访问量 96 私信 关注

标签:外键,约束,为空,MySQL,该字,主表,主键
来源: https://blog.csdn.net/weixin_44094106/article/details/104406328

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有