删除学习“叶平”老师课的sc表记录

要删除学习叶平 老师课程的成绩表(SC)记录,需要多表关联定位数据:

  1. Teacher表找到叶平的教师编号t_no
  2. 通过t_noCourse表找到对应课程编号c_no
  3. 通过c_noSC表找到需要删除的成绩记录

SQL 实现代码

MySQL / Oracle 通用写法(推荐,兼容性最好)

sql

复制代码
-- 删除学习叶平老师课程的SC表记录
DELETE FROM sc
WHERE sc.c_no IN (
    -- 子查询:获取叶平老师教授的所有课程编号
    SELECT course.c_no 
    FROM course
    JOIN teacher ON course.t_no = teacher.t_no  -- 课程表关联教师表
    WHERE teacher.tname = '叶平'  -- 筛选教师姓名为叶平
);

多表连接删除写法(MySQL 专用)

sql

复制代码
-- MySQL 多表连接删除
DELETE sc
FROM sc
JOIN course ON sc.c_no = course.c_no
JOIN teacher ON course.t_no = teacher.t_no
WHERE teacher.tname = '叶平';

代码说明

  1. 核心逻辑 :通过教师表→课程表→成绩表的关联关系,精准定位要删除的成绩记录
  2. 子查询作用 :先查出叶平老师教的所有课程编号,再删除成绩表中对应课程的记录
  3. 安全提示 :执行DELETE前,建议先执行SELECT查询确认要删除的数据,避免误删:

sql

复制代码
-- 先查询验证数据(必做!)
SELECT * FROM sc
WHERE sc.c_no IN (
    SELECT course.c_no 
    FROM course
    JOIN teacher ON course.t_no = teacher.t_no
    WHERE teacher.tname = '叶平'
);

总结

  1. 多表删除需逐层关联定位目标数据
  2. 优先使用IN子查询写法,适配所有数据库
  3. 删除前必须用SELECT验证数据,防止误操作
相关推荐
秦哈哈1 小时前
【Hello Agents】学习笔记(二)
笔记·学习·microsoft
sunshine22 girl1 小时前
Java学习三 高级语法3, 方法
java·学习
传奇开心果编程2 小时前
【dioxus0.7基础语法学与练】第8课:RSX 宏 — Dioxus 声明式 UI 语法
开发语言·学习·rust
一条破秋裤2 小时前
24_MPU6050结构参数与寄存器基础
stm32·嵌入式硬件·学习
诗词在线3 小时前
江上渔者|原文+注释+译文+赏析+考点
学习
逆境不可逃3 小时前
Pi Agent 学习笔记:不同模型如何接入同一套工具循环
笔记·学习
词却4 小时前
OpenCV学习:dlib 人脸检测
人工智能·opencv·学习
爱吃苹果的日记本4 小时前
数据结构第三课补充(空间复杂度)
数据结构·学习
PC2005-cloud4 小时前
Rust学习笔记:所有权、借用与生命周期——Rust的核心机制
笔记·学习·rust
霍金的微笑5 小时前
fuccc
学习