MySQL 练习题2

CREATE TABLE `dept` ( `did` int(11) NOT NULL AUTO_INCREMENT, `dname` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`did`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of dept -- ---------------------------- INSERT INTO `dept` VALUES ('1', '武当', '湖北'); INSERT INTO `dept` VALUES ('2', '华山', '陕西'); INSERT INTO `dept` VALUES ('3', '嵩山', '河南'); INSERT INTO `dept` VALUES ('4', '日月神教', '黑木崖'); -- ---------------------------- -- Table structure for ren -- ---------------------------- DROP TABLE IF EXISTS `ren`; CREATE TABLE `ren` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `salary` int(10) DEFAULT NULL, `leader` int(11) DEFAULT NULL, `menpai` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of ren -- ---------------------------- INSERT INTO `ren` VALUES ('1', '张三丰', '100', '10000', '0', '武当'); INSERT INTO `ren` VALUES ('2', '张无忌', '20', '8000', '0', '明教'); INSERT INTO `ren` VALUES ('3', '岳不群', '40', '6500', '0', '华山'); INSERT INTO `ren` VALUES ('4', '东方不败', '35', '12000', '0', '日月神教'); INSERT INTO `ren` VALUES ('5', '令狐冲', '21', '4000', '3', '华山'); INSERT INTO `ren` VALUES ('6', '林平之', '18', '2000', '3', '华山'); INSERT INTO `ren` VALUES ('7', '金毛狮王', '50', '10000', '2', '明教'); INSERT INTO `ren` VALUES ('8', '张翠山', '46', '10000', '1', '武当'); INSERT INTO `ren` VALUES ('9', '张远桥', '55', '6500', '1', '武当'); INSERT INTO `ren` VALUES ('10', 'Alex', '12', '350', '0', 'python');
1.表关系
注意:创建表时,根据合理性设置字段的长度和类型.
-- 1.查询所有人员信息
-- SELECT * FROM ren INNER JOIN dept on ren.menpai = dept.dname
-- 2.只查询人员的姓名和年龄
-- SELECT name,age FROM ren
-- 3.查询年龄为20岁的有哪些人员
-- SELECT * FROM ren WHERE age>20
-- 4.查询60岁以下的人员有哪些人员
-- SELECT * FROM ren WHERE age <60
-- 5.查询50岁以上并且工资大于8000的人员有哪些
-- SELECT * FROM ren WHERE age>50 and salary >8000
-- 6.查询姓[张]的人员有哪些
-- SELECT * FROM ren WHERE `name` LIKE '张%'
-- 7.查询哪些人员属于 武当/华山/嵩山
-- SELECT menpai,`name` FROM ren WHERE menpai IN('武当','华山','嵩山')
-- 8.查询工资在 5000-8900 的人员有哪些
-- SELECT name,salary FROM ren WHERE salary BETWEEN 5000 and 8900
-- 9.查询所有人员,要求按工资倒序排列
-- SELECT * FROM ren ORDER BY salary DESC
-- 10.查询令狐冲的领导人是谁
-- SELECT * FROM ren WHERE name = ’令狐冲‘
-- 11.查询人员表中最高工资是多少
-- SELECT NAME,salary FROM ren ORDER BY salary DESC LIMIT 1
-- 12.查询人员表中最低工资是多少
-- SELECT NAME, salary FROM ren ORDER BY salary Asc LIMIT 1
-- SELECT MIN(salary) FROM ren
-- 13.查询所有人员的平均工资是多少--
-- SELECT AVG(salary) FROM ren
-- 14.查询所有人员的工资总和是多少
-- SELECT SUM(salary) FROM ren
-- 15.查询目前有多少个人员
-- SELECT COUNT(id)FROM ren
-- 16.查询当前武林中有哪些门派
-- SELECT dname FROM dept
-- 17.查询 武当派 最高工资是谁--
-- SELECT `name`, MAX(salary) FROM ren INNER JOIN dept on ren.menpai=dept.dname where ren.menpai='武当'
-- 18.查询各门派的平均工资是多少
-- SELECT menpai,avg(salary) FROM ren GROUP BY ren.menpai
-- 19.查询当前武林中有哪些门派的平均工资大于8000 并按工资倒序排列
-- SELECT menpai,AVG(salary) FROM ren GROUP BY ren.menpai HAVING avg(salary)>8000 ORDER BY salary
-- 20.查询当前人员表的中的第3条数据到第7条数据
-- SELECT * FROM ren LIMIT 3,7
-- 22.查询武当派下有哪些弟子
-- SELECT menpai,`name` FROM ren WHERE menpai ='武当'
-- 23.查询各门派的工资总和按倒序/正序排列
-- SELECT menpai,SUM(salary) FROM ren GROUP BY menpai
-- 25.将武当派 张三丰 修改为 张丰
-- update ren set name='张丰' where NAME='张三丰'
-- 29.在湖北省内的门派中的人员有哪些.
-- SELECT dname,`name` FROM dept INNER JOIN ren ON dept.dname= ren.menpai WHERE address='湖北'
-- 30.在陕西省内门派中的工资小于5000,年龄大于20岁的人员有哪些,按主键倒序排列
-- SELECT `name` FROM dept INNER JOIN ren WHERE address='陕西' and salary<5000 AND age>20 ORDER BY ren.id DESC
-- -------------------------疑难部分-------------------------------
-- 21.查询哪些门派下没有弟子(错误)
-- SELECT menpai FROM dept RIGHT JOIN ren ON dept.dname=ren.menpai
-- 24.删除工资重复的人员,请保留年龄最大的一个人
-- 26.将所有门派大哥工资上调10%,但不包括Alex.
-- 27.查看哪些人员的门派已登记地理位置.
-- SELECT dname FROM dept WHERE address = NULL
-- 28.查询所有人员门派的位置信息,不存在位置信息则不显示
2.下面:开始你的表演
1.查询所有人员信息
2.只查询人员的姓名和年龄
3.查询年龄为20岁的有哪些人员
4.查询60岁以下的人员有哪些人员
5.查询50岁以上并且工资大于8000的人员有哪些
6.查询姓[张]的人员有哪些
7.查询哪些人员属于 武当/华山/嵩山
8.查询工资在 5000-8900 的人员有哪些
9.查询所有人员,要求按工资倒序排列
10.查询令狐冲的领导人是谁
11.查询人员表中最高工资是多少
12.查询人员表中最低工资是多少
13.查询所有人员的平均工资是多少
14.查询所有人员的工资总和是多少
15.查询目前有多少个人员
16.查询当前武林中有哪些门派
17.查询 武当派 最高工资是谁
18.查询各门派的平均工资是多少
19.查询当前武林中有哪些门派的平均工资大于8000 并按工资倒序排列
20.查询当前人员表的中的第3条数据到第7条数据
21.查询哪些门派下没有弟子
22.查询武当派下有哪些弟子
23.查询各门派的工资总和按倒序/正序排列
24.删除工资重复的人员,请保留年龄最大的一个人
25.将武当派 张三丰 修改为 张丰
26.将所有门派大哥工资上调10%,但不包括Alex.
27.查看哪些人员的门派已登记地理位置.
28.查询所有人员门派的位置信息,不存在位置信息则不显示
29.在湖北省内的门派中的人员有哪些.
30.在陕西省内门派中的工资小于5000,年龄大于20岁的人员有哪些,按主键倒序排列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通