1-1:查询employees 表的员工部门号和性别,要求消除重复行
select distinct ‘员工部门号’,‘性别’ from employees;
1-2: 计算salary表每个雇员的实际收入(实际收入=收入-支出)。
select (收入-支出) as ‘实际收入’ from salary;
1-3: 查询employees表中员工的姓名和性别,要求sex值为1时,显示为‘男’,为0时显示为‘女’。
mysql> Select 姓名,
-> case
-> when 性别=1 then “男”
-> when 性别=0 then “女”
-> end as 性别
-> from employees;
1-4:查询每个雇员的地址和电话号码,显示列标题为adress,telephone
mysql> select 地址 as ‘adress’, 电话号码 as ‘telephone’ from employees;
1-5: 计算salary表中员工月收入的平均数
mysql> select avg(收入) as 月平均收入 from salary;
1-6: 计算所有员工的总支出
mysql> select sum(支出) as 总支出 from salary;
1-7: 显示女雇员的地址和电话号码
select 姓名,地址,电话号码 from employees where 性别=0;
1-8: 计算员工总数
mysql> select count(*) from employees;
1-9: 显示员工的最高收入和最低收入的员工编号
mysql> Select max(收入),min(收入) from salary;
2-1: 显示月收入高于2000元员工的员工号。
mysql> select 员工编号 from salary where 收入>2000;
2-2: 查询1970年以后的员工的姓名和地址。
mysql> select 姓名,地址 from employees where 出生日期>“1970-1-1”;
2-3: 显示工作年限三年以上(包含3年)、学历在本科以上(包含本科)的男性员工的信息。
mysql> select * from employees where 工作年限>=3 and (学历=“本科” or 学历=“硕士”) and 性别=1;
2-4: 查找员工中倒数第二个数字为0的员工的姓名、地址和学历。
mysql> select 姓名,地址,学历 from employees where 员工编号 like “%0_”;
2-5: 查询月收入在2000-3000元的员工。
select * from salary where 收入>=2000 and 收入<=3000;
3-1: 查询王林的基本情况和所工作的部门名称
mysql> select * from employees ,departments
-> where employees.员工部门号=departments.部门编号 and 姓名=‘王林’;
3-2: 查询财务部、研发部、市场部的员工信息。
mysql> select * from employees ,departments
-> where employees.员工部门号=departments.部门编号
-> and (部门名称=“财务部” or 部门名称=“市场部” or 部门名称=“研发部”);
3-3: 查询每个雇员的基本情况和薪水情况。
mysql> Select * from employees join salary using(员工编号);
3-4: 查询研发部在1970年以前的员工姓名和薪水情况。
mysql> select e.姓名,s.收入,s.支出
-> from employees e,salary s,departments d
-> where e.员工部门号=d.部门编号 and e.员工编号=s.员工编号 and d.部门名称=“研发部”
-> and e.出生日期 <‘1970-01-01’;
3-5: 查询employees表中员工的姓名、住址和收入水平,要求2000元以下显示为‘低收入’,2000-3000显示为‘中等收入’,3000元以上显示为‘高收入’。
mysql> select 姓名,地址,
-> case
-> when 收入<2000 then “低收入”
-> when 收入>3000 then “高收入”
-> when 收入>2000 and 收入<3000 then “中等收入”
-> end as “收入等级”
-> from employees,salary where employees.员工编号=salary.员工编号;
4-1: 按部门列出该部门的员工人数。
mysql> select d.部门名称,count(e.姓名) as “员工总人数”
-> from employees e,departments d
-> where e.员工部门号=d.部门编号 group by d.部门名称;
4-2: 分别统计男性员工和女性员工人数。
mysql> select count(*) as “人数”,
-> case
-> when 性别=1 then “男”
-> when 性别=0 then “女”
-> end as 性别
-> from employees group by 性别;
4-3: 查找雇员数超过2人的部门名称和员工数量。
mysql> select d.部门名称, count(e.姓名) as “员工总人数” from employees e,departments d
-> where e.员工部门号=d.部门编号
-> group by d.部门名称 having count(*)>2;
4-4 按员工学历分组统计各种学历人数。
mysql> select 学历,count(*) as人数
-> from employees group by 学历;
4-5: 将员工信息按出生日期从大到小排序。
mysql> select * from employees order by 出生日期;
4-6: 将员工薪水按收入多少从小到大排序
mysql> select * from salary order by 收入;
4-7: 按员工的工作年限分组,统计各个工作年限的人数,并按人数从小到大排序
mysql> select 工作年限 ,count(*) as ‘人数’
-> from employees group by 工作年限
-> order by 人数;
4-7: 按员工的工作年限分组,统计各个工作年限的人数,并按人数从小到大排序
mysql> select 工作年限 ,count(*) as ‘人数’
-> from employees group by 工作年限
-> order by 人数;