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

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

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

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验证数据,防止误操作
相关推荐
海绵宝宝转agent1 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)1 小时前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
sunshine22 girl5 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
sunshine22 girl6 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
Answer1st6 小时前
【嵌入式学习】嵌入式原理知识-DMA(九)
学习
传奇开心果编程7 小时前
【ArkUI进阶练中学】第11课:安全与合规进阶
学习·ui·华为·harmonyos
Mr_Macallon8 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
sunoo-2299 小时前
【ARM嵌入式学习笔记第十天】i.MX6ULL eLCDIF控制器驱动RGB LCD全解析(硬件原理+寄存器配置+裸机代码)
arm开发·笔记·学习
kaiyou202610 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
知识分享小能手10 小时前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习