首页 > 数据库 > MySQL > 正文

mysql中外键和主键的区别有哪些

2024-07-24 12:33:21
字体:
来源:转载
供稿:网友

  这篇文章主要介绍“mysql中外键和主键的区别有哪些”,在日常操作中,相信很多人在mysql中外键和主键的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中外键和主键的区别有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
 
 
  mysql中外键和主键有区别,主要有:1、主键用来保证数据完整性,外键用来和其他表建立联系用;2、主键只能有一个,而一个表可以有多个外键;3、主键不能有重复,不允许为空,而外键可以有重复,可以是空值。
 
  本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。
 
  mysql中外键和主键有区别吗
  主键和外键都是约束。主键用于保持数据完整性,外键作用于两个表建立连接。下面分别介绍主键、外键及其区别。
 
  主键
  表中经常有多个列,主键是唯一标识表中每行的列。一个表只能有一个主键,主键列不能包含null值。
 
  例如:
  学生表(学号,姓名,性别,班级)
  其中每个学生的学号是唯一的,学号就是一个主键;
 
  课程表(课程编号,课程名,学分)
  其中课程编号是唯一的,课程编号就是一个主键
 
  联合主键
  当某一列不能唯一识别每行,使用联合主键,将两列看为一个整体。非空、唯一、不重复。
 
  例如:
  成绩表(学号,课程号,成绩)
 
  成绩表中单一一个属性无法唯一标识一条记录,学号和课程编号的组合才可以唯一标识一条记录,所以学号和课程编号的属性组是一个主键。
 
  外键
  外键用于与另一张表相关联。以另一个表的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
  表的外键值必须在主表中能找到。
  当主表的记录被从表参照时,主表的记录不允许删除。
  
  class表与Student表通过class_id 关联,实现一对多的关系。class_id作为Student表的外键,Student表为从表,在class表中为主键,class表为主表。
 
  主键、外键和索引的区别:
  a.定义
  主键:唯一标识一条记录,不能有重复,不允许为空。
  外键:表的外键是另一表的主键,外键是可以有重复的,可以是空值。
  索引:该字段没有重复值,但可以有一个空值。
 
  b.作用
  主键:用来保证数据完整性
  外键:用来和其他表建立联系用
  索引:用来提高查询排序的速度
 
  c.个数
  主键:主键只能有一个。
  外键:一个表可以有多个外键。
  索引:一个表可以有多个唯一索引。
 
  添加主键、外键约束
  主键约束
 
  create table 表名(
    列名1 数据类型 primary key,
   列名2 数据类型);--------或------------create table 表名(
    列名1 数据类型,
   列名2 数据类型,
    primary key(列名1));------已经存在的表-----alter table 表名 add primary key(列名);
  外键约束
 
  ---------主表------create table 表1(
   列名1 数据类型 primary key,
   列名2 数据类型  
  );----从表(外键约束所在的表)------create table 表2(
   FK_列名1 数据类型,
    列名2 数据类型,
    constraint 外键约束的名字 foreign key(从表的列名1) references 主表表名(主表的列名1));
  到此,关于“mysql中外键和主键的区别有哪些”的学习就结束了,希望能够解决大家的疑惑。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表