📜  主键和外键的区别 - SQL (1)

📅  最后修改于: 2023-12-03 15:06:18.350000             🧑  作者: Mango

主键和外键的区别 - SQL

在关系型数据库中,主键和外键是非常重要的概念,它们用来描述不同表之间的关系,下面我们来详细介绍它们的区别。

主键

主键是表中用来唯一标识每一条记录的一列或者列的组合。主键的值必须是唯一的,不能为null。通常情况下,主键选用一个单一的列,这个列通常是整形,且自增的,也可以选择多列作为联合主键,如下例子所示:

CREATE TABLE student (
  s_id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(30) NOT NULL,
  PRIMARY KEY(s_id)
);

上面的例子中,s_id列是主键,AUTO_INCREMENT表示s_id自动生成,每次插入时会自动加1。这个表中,每一个学生是由独一无二的s_id标识的。

外键

外键是表中用来链接其他表的列,它是另一个表的主键的引用。外键确保了表之间的数据的完整性,可以保证参照表中不存在无效的引用,如下例子所示:

CREATE TABLE course (
  c_id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(30) NOT NULL,
  s_id INT,
  FOREIGN KEY (s_id) REFERENCES student(s_id)
);

上面的例子中,course表中的s_id列是一个外键,参考的是student表中的s_id列。这意味着,只有当student表中存在一个与course表中的s_id列相同的值的时候,才能在course表中插入一个新的记录。这样可以保证course表中的每条记录都指向了student表中的存在的记录,防止了意外的错误发生。

总之,主键和外键是非常重要的概念,在设计数据库时应该充分考虑它们的使用。