📜  从表 sql 中删除记录(1)

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

从表 SQL 中删除记录

在关系型数据库中,表间往往存在引用关系,这时候我们需要在从表中删除记录。在 SQL 中,我们可以使用 DELETE 语句来删除表中的记录。下面是删除从表中记录的方法。

语法
DELETE FROM table_name WHERE <condition>;

其中,table_name 为需要删除记录的表名,<condition> 为删除记录的条件,包括复合条件。如果没有指定删除条件,则会删除表中的所有记录。

示例

以学生信息表和选课信息表为例。

-- 学生信息表
CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT NOT NULL,
  gender CHAR(1) NOT NULL
);

-- 选课信息表
CREATE TABLE course (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  student_id INT NOT NULL,
  FOREIGN KEY (student_id) REFERENCES student (id)
);

-- 添加示例数据
INSERT INTO student (name, age, gender) VALUES
  ("Tom", 20, "M"),
  ("Jane", 19, "F");

INSERT INTO course (name, student_id) VALUES
  ("Math", 1),
  ("English", 2),
  ("Sociology", 2);

现在我们要删除 Jane 的选课信息,即从 course 表中删除 student_id = 2 的记录。

DELETE FROM course WHERE student_id = 2;
注意事项
  • 删除记录是一项危险操作,在执行前一定要谨慎确认。
  • 删除操作不能撤回,一旦删除将无法恢复。
  • 尽量使用带有条件的删除语句,不要轻易使用不带条件的删除语句。
  • 删除记录时,如果要删除的记录被其他表引用,则需要先删除对应的引用记录才能删除该记录。
  • 删除操作对数据库的性能会产生影响,建议在低负载的情况下执行删除操作。