news 2026/3/12 5:32:43

多表查询练习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多表查询练习

练习1

-- ---------------------------------------> 多表查询案例 <---------------------------------- -- ------------------------------------> 多表查询 <-------------------------------------------- -- 准备数据 create table dept1 ( id int auto_increment comment 'ID' primary key, name varchar(50) not null comment '部门名称' ) comment '部门表'; create table emp2 ( id int auto_increment comment 'ID' primary key, name varchar(50) not null comment '姓名', age int comment '年龄', job varchar(20) comment '职位', salary int comment '薪资', entrydate date comment '入职时间', managerid int comment '直属领导ID', dept1_id int comment '部门ID' ) comment '员工表'; -- 添加外键 alter table emp2 add constraint fk_emp2_dept1_id foreign key (dept1_id) references dept1 (id); INSERT INTO dept1 (id, name) VALUES (1, '研发部'), (2, '市场部'), (3, '财务部'), (4, '销售部'), (5, '总经办'), (6, '人事部'); INSERT INTO emp2 (id, name, age, job, salary, entrydate, managerid, dept1_id) VALUES (1, '金庸', 66, '总裁', 20000, '2000-01-01', null, 5), (2, '张无忌', 20, '项目经理', 12500, '2005-12-05', 1, 1), (3, '杨逍', 33, '开发', 8400, '2000-11-03', 2, 1), (4, '韦一笑', 48, '开发', 11000, '2002-02-05', 2, 1), (5, '常遇春', 43, '开发', 10500, '2004-09-07', 3, 1), (6, '小昭', 19, '程序员鼓励师', 6600, '2004-10-12', 2, 1), (7, '灭绝', 60, '财务总监', 8500, '2002-09-12', 1, 3), (8, '周芷若', 19, '会计', 48000, '2006-06-02', 7, 3), (9, '丁敏君', 23, '出纳', 5250, '2009-05-13', 7, 3), (10, '赵敏', 20, '市场部总监', 12500, '2004-10-12', 1, 2), (11, '鹿杖客', 56, '职员', 3750, '2006-10-03', 10, 2), (12, '鹤笔翁', 19, '职员', 3750, '2007-05-09', 10, 2), (13, '方东白', 19, '职员', 5500, '2009-02-12', 10, 2), (14, '张三丰', 88, '销售总监', 14000, '2004-10-12', 1, 4), (15, '俞莲舟', 38, '销售', 4600, '2004-10-12', 14, 4), (16, '宋远桥', 40, '销售', 4600, '2004-10-12', 14, 4), (17, '陈友谅', 42, null, 2000, '2011-10-12', 1, null); create table salgrade ( grade int, losal int, hisal int ) comment '薪资等级表'; insert into salgrade values (1, 0, 3000); insert into salgrade values (2, 3001, 5000); insert into salgrade values (3, 5001, 8000); insert into salgrade values (4, 8001, 10000); insert into salgrade values (5, 10001, 15000); insert into salgrade values (6, 15001, 20000); insert into salgrade values (7, 20001, 25000); insert into salgrade values (8, 25001, 30000); -- 1. 查询员工的姓名、年龄、职位、部门信息 (隐式内连接) -- 表: emp , dept -- 连接条件: emp.dept_id = dept.id select e.name, e.age, e.job, d.name from emp2 as e, dept1 as d where e.dept1_id = d.id; -- 2. 查询年龄小于30岁的员工的姓名、年龄、职位、部门信息(显式内连接) -- 表: emp , dept -- 连接条件: emp.dept_id = dept.id select e.name, e.age, e.job, d.name from emp2 as e inner join dept1 as d on e.dept1_id = d.id where e.age < 30; -- 3. 查询拥有员工的部门ID、部门名称(内连接) -- 表: emp , dept -- 连接条件: emp.dept_id = dept.id -- distinct去重关键字 select distinct d.id, d.name from emp2 as e, dept1 as d where e.dept1_id = d.id; -- 4. 查询所有年龄大于40岁的员工, 及其归属的部门名称; 如果员工没有分配部门, 也需要展示出来 -- 表: emp , dept -- 连接条件: emp.dept_id = dept.id -- 外连接 select e.*, d.name from emp2 as e left join dept1 as d on d.id = e.dept1_id where e.age > 40; -- 5. 查询所有员工的工资等级 -- 表: emp , salgrade -- 连接条件 : emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal select e.*, s.grade, s.losal, s.hisal from emp2 as e, salgrade as s where e.salary >= s.losal and e.salary <= s.hisal; select e.*, s.grade, s.losal, s.hisal from emp2 as e, salgrade as s where e.salary between s.losal and s.hisal; -- 6. 查询 "研发部" 所有员工的信息及 工资等级 -- 表: emp , salgrade , dept -- 连接条件 : emp.salary between salgrade.losal and salgrade.hisal , emp.dept_id = dept.id -- 查询条件 : dept.name = '研发部' select e.*, s.grade from emp2 as e, dept1 as d, salgrade as s where e.dept1_id = d.id and (e.salary between s.losal and s.hisal) and d.name = '研发部'; -- 7. 查询 "研发部" 员工的平均工资 -- 表: emp , dept -- 连接条件 : emp.dept_id = dept.id select avg(e.salary) from emp2 as e, dept1 as d where e.dept1_id = d.id and d.name = '研发部'; -- 8. 查询工资比 "灭绝" 高的员工信息。(标量子查询) -- a. 查询 "灭绝" 的薪资 select salary from emp2 where name = '灭绝'; -- b. 查询比她工资高的员工数据 select * from emp2 where salary > (select salary from emp where name = '灭绝'); -- 9. 查询比平均薪资高的员工信息 -- a. 查询员工的平均薪资 select avg(salary) from emp2; -- b. 查询比平均薪资高的员工信息 select * from emp2 where salary > (select avg(salary) from emp); -- 10. 查询低于本部门平均工资的员工信息 -- a. 查询指定部门平均薪资 1 select avg(e1.salary) from emp2 e1 where e1.dept1_id = 1; select avg(e1.salary) from emp2 e1 where e1.dept1_id = 2; -- b. 查询低于本部门平均工资的员工信息 select *, (select avg(e1.salary) from emp2 e1 where e1.dept1_id) as '平均薪资' from emp2 as e2 where e2.salary < (select avg(e1.salary) from emp2 e1 where e1.dept1_id = e2.dept1_id); -- 11. 查询所有的部门信息, 并统计部门的员工人数 select d.id, d.name, (select count(*) from emp2 e where e.dept1_id = d.id) '人数' from dept d; select count(*) from emp2 where dept1_id = 1; -- 12. 查询所有学生的选课情况, 展示出学生名称, 学号, 课程名称 -- 表: student , course , student_course -- 连接条件: student.id = student_course.studentid , course.id = student_course.courseid select s.name , s.no , c.name from student s , student_course sc , course c where s.id = sc.studentid and sc.courseid = c.id ;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/11 20:57:24

YOLO模型上线前的压力测试:高并发请求如何扛住?

YOLO模型上线前的压力测试&#xff1a;高并发请求如何扛住&#xff1f; 在智能制造工厂的质检线上&#xff0c;数百个摄像头正以每秒30帧的速度持续拍摄产品图像&#xff1b;城市的安防中心里&#xff0c;成千上万路视频流同时触发AI检测任务&#xff1b;自动驾驶车辆穿梭于复…

作者头像 李华
网站建设 2026/3/12 3:37:53

YOLO目标检测中的类别不平衡问题及解决方案

YOLO目标检测中的类别不平衡问题及解决方案 在工业质检线上&#xff0c;一台高速运转的摄像头每秒拍摄数百张PCB板图像。系统使用YOLOv8进行缺陷检测——理论上&#xff0c;这应该是一个成熟可靠的流程。但几周后工程师发现&#xff1a;尽管整体准确率高达92%&#xff0c;产线仍…

作者头像 李华
网站建设 2026/3/8 3:29:17

YOLO训练过程中的学习率调度策略效果对比

YOLO训练过程中的学习率调度策略效果对比 在现代目标检测系统中&#xff0c;YOLO系列模型凭借其“一次前向传播完成检测”的高效设计&#xff0c;已成为工业界部署的首选方案。从YOLOv3到最新的YOLOv8乃至YOLOv10&#xff0c;尽管网络结构不断演进&#xff0c;精度与速度持续优…

作者头像 李华
网站建设 2026/3/11 19:46:18

分布式电源接入配电网潮流计算:从分析到程序定制

分布式电源接入配电网潮流计算分析&#xff0c;分布式电源接入配电网潮流计算程序编写&#xff0c;分布式电源接入配电网潮流计算程序定制。 DG&#xff08;分布式电源&#xff09;&#xff0c;风机&#xff0c;光伏等&#xff0c;接入配电网&#xff0c;IEEE33等系统。 潮流计…

作者头像 李华
网站建设 2026/3/4 14:15:20

基于北方苍鹰优化算法优化高斯过程回归(NGO - GPR)的数据回归预测实践

基于北方苍鹰优化算法优化高斯过程回归(NGO-GPR)的数据回归预测 NGO-GPR数据回归 利用交叉验证抑制过拟合问题 matlab代码&#xff0c;注&#xff1a;暂无Matlab版本要求 -- 推荐 2018B 版本及以上在数据回归预测领域&#xff0c;找到一种精准且泛化能力强的模型至关重要。今天…

作者头像 李华
网站建设 2026/3/11 21:54:41

收藏这份转型指南:计算机专业如何应对大模型时代的范式革命

文章指出计算机科学教育需从"以存储为中心"转向"以计算为中心"的范式&#xff0c;以适应大模型AI时代。传统CS课程已过时&#xff0c;而围绕GPGPU、NPU等新算力的软硬件协同、算力调度、数据中心优化等领域存在大量新需求。尽管面临高校缺乏超算中心、教材…

作者头像 李华