MySQL如何在使用外键的表中插入数据?

MySQL如何在使用外键的表中插入数据?

什么是外键?

外键(Foreign Key)是一种关系型数据库用于建立两个表之间关联的一种技术。一般地,一个表的外键指向另一个表的主键。

阅读更多:MySQL 教程

为什么要用外键?

使用外键可以帮助我们保证表与表之间数据的完整性和一致性。例如,我们有两个表,一个是“学生”表,一个是“课程”表,我们通过在“课程”表上建立“外键”,将其与“学生”表上的“主键”连接起来,就可以确保当我们插入学生分数时,每个学生都与一个存在于“课程”表中的课程对应。

怎样在使用外键的表中插入数据?

正常情况下,在使用外键的表中插入数据与普通的插入数据操作相同。但是需要注意的是,插入的数据需要符合外键的引用(Reference)规则,否则将无法插入。

示例:

创建“学生”表:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  gender ENUM('M', 'F') NOT NULL
);

创建“课程”表:

CREATE TABLE courses (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  teacher VARCHAR(50) NOT NULL
);

为“课程”表添加外键,将其与“学生”表的“id”列建立关联:

ALTER TABLE courses
ADD CONSTRAINT fk_students_id
FOREIGN KEY (id)
REFERENCES students(id);

插入数据时需要注意,插入的“id”需要符合“学生”表的“id”列中存在的值:

-- 学生表中插入数据
INSERT INTO students (name, age, gender)
VALUES
  ('Tom', 18, 'M'),
  ('Lily', 17, 'F'),
  ('David', 18, 'M');

-- 在课程表中插入数据,需要指定与学生表中的id列对应的值
INSERT INTO courses (name, teacher, id)
VALUES
  ('English', 'John', 1),
  ('Math', 'Kevin', 2),
  ('Science', 'Lucy', 3);

注意,在插入数据时如果出现了不符合外键规则的数据,则会抛出错误信息,例如:

-- 如果在课程表中插入了不存在于学生表id列中的数据,则会抛出错误
INSERT INTO courses (name, teacher, id)
VALUES 
  ('History', 'Sara', 4);

总结

外键是关系型数据库中用于建立两个表之间关联的一种技术。使用外键可以保证表与表之间数据的完整性和一致性。在插入数据时需要注意外键的引用规则,确保插入的数据符合外键的引用规则。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程