news 2026/6/10 13:12:00

多表查询练习

作者头像

张小明

前端开发工程师

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/6/10 12:27:58

YOLO与Flask/Django集成:构建Web端检测服务的路径

YOLO与Flask/Django集成&#xff1a;构建Web端检测服务的路径 在智能制造车间里&#xff0c;一台摄像头正实时监控传送带上的零件流动。突然&#xff0c;系统自动弹出告警&#xff1a;“异物检出”——一个不该出现的金属碎片被精准识别并框出。这背后没有复杂的客户端软件&am…

作者头像 李华
网站建设 2026/6/10 12:25:19

YOLO与ONNX格式转换指南:打通不同框架的壁垒

YOLO与ONNX格式转换指南&#xff1a;打通不同框架的壁垒 在工业质检流水线上&#xff0c;一个摄像头每秒捕捉上百帧图像&#xff0c;系统必须在毫秒级内判断是否存在缺陷产品。这种对实时性近乎苛刻的要求&#xff0c;正是目标检测技术大显身手的舞台。而在这类场景中&#xf…

作者头像 李华
网站建设 2026/6/9 19:59:51

YOLO在零售门店的应用:商品识别与客流统计双丰收

YOLO在零售门店的应用&#xff1a;商品识别与客流统计双丰收 在实体零售门店仍占消费主流的今天&#xff0c;如何用最低成本实现“看得见、管得清、反应快”的运营闭环&#xff0c;是每一家连锁商超和便利店都在思考的问题。人工盘点效率低、缺货难以及时发现、顾客动线无从分析…

作者头像 李华
网站建设 2026/6/10 12:28:09

2025年度全景复盘:技术成长、创作突破与生活的三重奏

在代码与文字的交织中&#xff0c;我找到了属于自己的节奏——这一年&#xff0c;我不只是写代码的程序员&#xff0c;更是用技术思考生活的创作者。 文章目录一、开篇&#xff1a;为什么需要这样一次深度复盘&#xff1f;二、技术成长与突破&#xff1a;从“会用”到“懂为什么…

作者头像 李华
网站建设 2026/6/10 13:54:13

日常工作中是否应该以administrator账户进行登录?

强烈不建议在日常工作中使用 Administrator 账户登录。 尽管它拥有最高权限&#xff0c;非常方便&#xff0c;但这样做会将自己和公司的电脑置于巨大的安全风险之下。这可以被视为网络安全的一个大忌。 以下是详细的原因和建议&#xff1a; 为什么日常使用 Administrator 账…

作者头像 李华