要求:
1建库建表与插入数据:

2查询:
-- 1. 显示所有职工的基本信息
select * from t_worker;
-- 2. 查询所有职工所属部门的部门号(不重复)
select distinct department_id from t_worker;

-- 3. 求出所有职工的人数
select count(*) as total_workers from t_worker;

-- 4. 列出最高工资和最低工资
select
max(wages) as max_wage,
min(wages) as min_wage from t_worker;

-- 5. 列出职工的平均工资和总工资
select avg(wages),sum(wages)from t_worker;

-- 6. 创建一个只有职工号、姓名和参加工作的新表
create table work_date_table as
select worker_id, name, worker_date from t_worker;

-- 7. 显示所有党员的年龄(使用当前日期计算)
select year(now())-year(born) age from worker where politics = '党员';

-- 8. 列出工资在4000—8000之间的所有职工姓名
select name from t_worker where 工资>= 4000 and 工资<=8000;

-- 9. 列出所有孙姓和李姓职工姓名
select 姓名 from worker where 姓名 like '孙%' or 姓名 like '李%';

-- 10. 列出部门102和103且非党员的职工号、姓名
select worker_id, name from t_worker where department_id in (102, 103) and politics = '群众';
-- 11. 将职工按出生日期排序
select * from t_worker order by 出生日期 asc;

-- 12. 显示工资最高的前3名职工的职工号和姓名
select worker_id, name from t_worker order by wages desc limit 3;

-- 13. 求出各部门党员的人数
select 部门号 count(*) 部门党员人数
from t_worker(avg(工资),2) from where politics = '党员'group by department_id;

-- 14. 统计各部门的工资和平均工资
select 部门号,sum(工资),round(avg9工资),2) from worker group by 部门号;

-- 15. 列出总人数大于等于3的部门号和总人数
select 部门号, count(*) 总人数 from worker group by 部门号 having 总人数>=3;

1150

被折叠的 条评论
为什么被折叠?



