以下为本次实验的内容

首先,本次实验分别有xscj 和 ygg1 两个数据库

+----------------+
| Tables_in_xscj |
+----------------+
| js             |
| kc             |
| xs             |
| xs1            |
| xs_kc          |
+----------------+
+----------------+
| Tables_in_ygg1 |
+----------------+
| departments    |
| employees      |
| salary         |
| salary_level   |
+----------------+

1.查找选修了101号课程且成绩不少于80分的学生的学号,姓名,课程号和成绩。[注:两个不同的表]

写法1:
select xs.学号,姓名,课程号,成绩 from xs,xs_kc
where xs.学号 = xs_kc.学号 and 课程号 = '101' and 成绩 >= 80;
写法2:
select 学号,姓名,课程号,成绩 from xs join xs_kc using(学号)
where 课程号 = '101' and 成绩 >= 80;
+--------+--------+--------+------+
| 学号   | 姓名   | 课程号 | 成绩 |
+--------+--------+--------+------+
| 081101 | 王林   | 101    |   80 |
| 081104 | 韦平平 | 101    |   90 |
| 081108 | 林一帆 | 101    |   85 |
| 081110 | 张蔚   | 101    |   95 |
| 081111 | 赵琳   | 101    |   91 |
| 081201 | 王敏   | 101    |   80 |
| 081204 | 马琳琳 | 101    |   91 |
| 081216 | 孙祥欣 | 101    |   81 |
| 081220 | 吴薇华 | 101    |   82 |
| 081241 | 罗林琳 | 101    |   90 |
+--------+--------+--------+------+

2、查找所有学生的选课情况。显示的列为:学号、姓名、课程号、成绩

写法1:select xs.学号,姓名,课程号,成绩 from xs,xs_kc where xs.学号 = xs_kc.学号;
写法2:select 学号,姓名,课程号,成绩 from xs join xs_kc using(学号);

3、查找被选修了的课程的选修情况和所有开设的课程名。显示的列为:课程号、课程名、学号、成绩

写法1:select kc.课程号,课程名,学号,成绩 from kc,xs_kc where kc.课程号 = xs_kc.课程号;
写法2:select 课程号,课程名,学号,成绩 from kc join xs_kc using(课程号);

4、查询YGGL数据库中每个员工的情况及其薪水的情况。显示的列为编号、姓名、工资(工资为收入-支出)

写法1:select salary.编号,姓名,收入-支出 as 工资 from employees,salary
where employees.编号 = salary.编号;
写法2:select salary.编号,姓名,收入-支出 as 工资 from employees join salary using(编号);

5、使用内连的方法查询名字为“王林”的员工所在的部门。显示的列为:编号、姓名、部门名称

写法1:select 编号,姓名,部门名称 from departments join employees on departments.部门号 = employees.部门号
where 姓名 = '王林';
写法2:select 编号,姓名,部门名称 from departments join employees using(部门号) where 姓名 = '王林';
+--------+------+------------+
| 编号   | 姓名  | 部门名称    |
+--------+------+------------+
| 000001 | 王林 | 人力资源部   |
+--------+------+------------+

6、使用内连的方法查找不在市场部(即部门号不等于5)工作的所有员工的信息。(不等于!=),显示的列为编号、部门号、部门名

写法1:select 编号,employees.部门号,部门名称 from departments join employees on departments.部门号 = employees.部门号
 where employees.部门号 != '5';
 写法2: select 编号,部门号,部门名称 from departments join employees using(部门号) where 部门号 != '5';
+--------+--------+------------+
| 编号   | 部门号 | 部门名称   |
+--------+--------+------------+
| 010008 | 1      | 财务部     |
| 020010 | 1      | 财务部     |
| 020018 | 1      | 财务部     |
| 000001 | 2      | 人力资源部 |
| 108991 | 3      | 经理办公室 |
| 210678 | 3      | 经理办公室 |
| 302566 | 4      | 研发部     |
| 308759 | 4      | 研发部     |
| 504209 | 4      | 研发部     |
+--------+--------+------------+

7、查询salary表哪些员工收入相同,查询结果显示收入相同工号不同的员工信息。显示的列为:编号、编号、收入(可以找到1个记录,有2个人收入都是2347.68)

select a.编号,a.收入 from salary a join salary b on a.收入 = b.收入 and a.编号 != b.编号;
+--------+---------+
| 编号   | 收入    |
+--------+---------+
| 111006 | 2347.68 |
| 020018 | 2347.68 |
+--------+---------+