SQL练习

SQL练习:

1. 查询出部门编号为D2019060011的所有员工

2. 所有财务总监的姓名、编号和部门编号。

3. 找出奖金高于工资的员工。

4. 找出奖金高于工资40%的员工。

5 找出部门编号为D2019090011中所有财务总监,和部门编号为D2019060011中所有财务专员的详细资

料。

6. 找出部门编号为D2019090001中所有总经理,部门编号为D2019090011中所有财务总监,还有即不是总经理又不是销售总监但其工资大或等于4000的所有员工详细资料。

7有奖金的工种。

8无奖金或奖金低于1000的员工。

9. 查询名字由两个字组成的员工。

10.查询2020年入职的员工。

11. 查询所有员工详细信息,用编号升序排序。

12. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序。

13. 查询每个部门的平均工资。

14. 求出每个部门的雇员数量。

15. 查询每种工作的最高工资、最低工资、人数.

16. 列出最低薪金大于4000的各种工作及从事此工作的员工人数。

17. 统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计

大于6000,输出结果按月工资的合计升序排列。

多表练习

1. 列出所有员工的姓名及其直接上级的姓名。

2. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。

3. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

4. 列出在财务部工作的员工的姓名,假定不知道财务部的部门编号。

5. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导。

6. 列出与陈超从事相同工作的所有员工及部门名称。

7. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。

8. 列出薪金高于在财务部工作员工平均薪金的员工姓名和薪金、部门名称

mysql> select * from employee;
+----+-------------+-----------+-----------------+-------------+------------+---------+---------+-------+---------------+
| id | number      | name      | job             | leader_NO   | hire_date  | salary  | bonus   | level | department_NO |
+----+-------------+-----------+-----------------+-------------+------------+---------+---------+-------+---------------+
|  1 | E2018010001 | 吴所为    | 总经理          | NULL        | 2018-01-01 | 2800.00 | 4000.00 |     9 | D2019060001   |
|  2 | E2018070003 | 韩金龙    | 总经理          | NULL        | 2018-07-01 | 2800.00 | 4000.00 |     8 | D2019090001   |
|  3 | E2018060002 | 王黎明    | 总经理          | NULL        | 2018-06-01 | 2800.00 | 4000.00 |     8 | D2019060002   |
|  4 | E2018020002 | 龚爱国    | 总经理          | NULL        | 2018-02-01 | 2800.00 | 4000.00 |     8 | D2020010001   |
|  5 | E2019050001 | 马金花    | 财务总监        | E2018010001 | 2019-01-01 | 3800.00 |  500.00 |     6 | D2019060011   |
|  6 | E2019050018 | 李昌贵    | 财务专员        | E2019050001 | 2019-04-21 | 2800.00 |  800.00 |     4 | D2019060011   |
|  7 | E2019100011 | 王建国    | 网络管理员      | E2018010001 | 2019-10-01 | 3200.00 |    NULL |     5 | D2019060013   |
|  8 | E2019110004 | 黎锦熙    | 网络管理员      | E2019100011 | 2019-11-01 | 3200.00 |    NULL |     5 | D2019060013   |
|  9 | E2020020023 | 繁茂森    | 销售专员        | E2019060005 | 2020-02-01 | 2800.00 |    0.00 |     4 | D2019060014   |
| 10 | E2019060005 | 张善民    | 销售经理        | E2018010001 | 2019-06-01 | 2800.00 |  500.00 |     6 | D2019060014   |
| 11 | E2019060009 | 廖云龙    | 技术总监        | E2018010001 | 2019-06-01 | 4800.00 | 2000.00 |     7 | D2019060012   |
| 12 | E2019120021 | 刘盛会    | 研发工程师      | E2019060009 | 2019-12-11 | 4800.00 |  500.00 |     5 | D2019060012   |
| 13 | E2019020001 | 马明全    | 高级工程师      | E2019060009 | 2019-02-01 | 4800.00 | 1000.00 |     6 | D2019060012   |
| 14 | E2019120015 | 李意      | 行政专员        | E2018070003 | 2019-12-20 | 2800.00 |  500.00 |     4 | D2019090001   |
| 15 | E2019020017 | 刘六一    | 财务总监        | E2018070003 | 2019-02-16 | 3800.00 | 1000.00 |     6 | D2019090011   |
| 16 | E2020020012 | 陈超      | 研发工程师      | E2019060009 | 2020-02-18 | 4200.00 |  500.00 |     5 | D2019060012   |
+----+-------------+-----------+-----------------+-------------+------------+---------+---------+-------+---------------+
mysql> select * from department;
+----+-------------+--------------+----------+-------------+
| id | number      | name         | location | super_NO    |
+----+-------------+--------------+----------+-------------+
|  1 | D2019050001 | 清华集团     | 北京     | NULL        |
|  2 | D2019050002 | 集团总部     | 北京     | D2019050001 |
|  3 | D2019060001 | 成都中心     | 成都     | D2019050001 |
|  4 | D2019060002 | 武汉中心     | 武汉     | D2019050001 |
|  5 | D2019090001 | 上海中心     | 上海     | D2019050001 |
|  6 | D2020010001 | 广州中心     | 广州     | D2019050001 |
|  7 | D2019090011 | 财务部       | 上海     | D2019090001 |
|  8 | D2020020012 | 行政部       | 上海     | D2019090001 |
|  9 | D2019060011 | 财务部       | 成都     | D2019060001 |
| 10 | D2019060012 | 技术部       | 成都     | D2019060001 |
| 11 | D2019060013 | 网络部       | 成都     | D2019060001 |
| 12 | D2019060014 | 市场部       | 成都     | D2019060001 |
+----+-------------+--------------+----------+-------------+

1. 查询出部门编号为D2019060011的所有员工

2. 所有财务总监的姓名、编号和部门编号。

3. 找出奖金高于工资的员工。

4. 找出奖金高于工资40%的员工。

5 找出部门编号为D2019090011中所有财务总监,和部门编号为D2019060011中所有财务专员的详细资

6. 找出部门编号为D2019090001中所有总经理,部门编号为D2019090011中所有财务总监,还有即不是总经理又不是销售总监但其工资大或等于4000的所有员工详细资料。
有奖金的工种。
8无奖金或奖金低于1000的员工。
9. 查询名字由两个字组成的员工。
10.查询2020年入职的员工。
11. 查询所有员工详细信息,用编号升序排序。
12. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序。
13. 查询每个部门的平均工资。
14. 求出每个部门的雇员数量。
15. 查询每种工作的最高工资、最低工资、人数.
16. 列出最低薪金大于4000的各种工作及从事此工作的员工人数。
17. 统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计大于6000,输出结果按月工资的合计升序排列。

多表练习

1. 列出所有员工的姓名及其直接上级的姓名。
2. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
3. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
4. 列出在财务部工作的员工的姓名,假定不知道财务部的部门编号。
5. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导。
6. 列出与陈超从事相同工作的所有员工及部门名称。
7. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
8. 列出薪金高于在财务部工作员工平均薪金的员工姓名和薪金、部门名称
### 关于SQL练习题及答案 以下是关于SQL的相关练习题以及解答,这些题目可以帮助初学者更好地理解SQL的基础语法和实际应用。 #### 题目一:查询两门及其以上不及格课程的同学的学号、姓名及其平均成绩 此问题可以通过嵌套子查询来实现。具体逻辑如下: 1. 找到所有不及格的成绩记录。 2. 使用 `GROUP BY` 和 `HAVING COUNT(*) >= 2` 来筛选至少有两门课不及格的学生。 3. 计算这些学生的平均成绩并返回其学号和姓名。 代码示例如下: ```sql SELECT s.Sid, s.Sname, AVG(sc.Degree) AS AvgDegree FROM Student s JOIN SC sc ON s.Sid = sc.Sid WHERE sc.Degree < 60 GROUP BY s.Sid, s.Sname HAVING COUNT(sc.Cid) >= 2; ``` 上述语句实现了所需功能[^1]。 --- #### 题目二:查询Score表中的最高分的学生学号和课程号 通过使用子查询找到最大分数,并将其与原始数据匹配即可得到目标学生的信息。 代码示例如下: ```sql SELECT Sno, Cno FROM Score WHERE Degree = (SELECT MAX(Degree) FROM Score); ``` 这段代码能够有效解决该问题[^2]。 --- ### SQL学习资源推荐 对于希望深入学习SQL的人群来说,除了完成各种类型的练习题外,还可以参考以下几种方式获取更多知识: 1. **在线平台** - LeetCode 提供了大量的SQL挑战题目,适合不同层次的学习者尝试。 - W3Schools 是一个非常友好的入门网站,它提供了详尽的SQL教程和实例演示。 2. **书籍资料** 推荐《SQL必知必会》这本书籍作为基础读物;另外,《高性能MySQL》则更侧重性能优化方面的话题,适用于有一定经验的技术人员进一步提升自己能力水平。 3. **实践操作环境搭建** 安装本地数据库服务器如 MySQL 或 PostgreSQL ,创建虚拟项目场景来进行反复试验也是极为重要的环节之一 。可以利用Docker快速部署所需的测试环境。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值