1、显示所有职工的基本信息。
因为是基本信息,所以用*即可,因为是职工的基本信息所以用employees即可,输入select * from employees;
2、查询所有职工所属部门的部门号,不显示重复的部门号。
因为是查询部门,所以应该在数据库里的部门里查询部门名称,先得出用select department_name from departments; 但因为这样会出现重复,且题目要的是不重复,所以应加前缀distinct 去重,完整版select distinct department_name from department;
3、求出所有职工的人数。
因为求的是职工的总人数,直接用select count(*) from employees;
4、列出最高工资和最低工资。
列出最高和最低就应该知道最高(MAX)、最低(MIN),所以得出直接用select MAX(salary) from employees;和select MIN(salary) from employees; 但如果要同时显示最高和最低就加','隔开 select MAX(salary),MIN(salary) from employees;
5、列出职工的平均工资和总工资。
因为是平均用avg,总工资和总人数一样用count ,select avg(salary), count(salary) from employees;
6、创建一个只有职工号、姓名和工作时间的新表,名为工作日期表。
create table 工作日期表(id int,name char(30),worktime char(30));
7、显示所有女职工的年龄。
条件是显示女职工的年龄+性别,但在所有的表中没有发现年龄和性别,所以尚未查到
8、列出所有姓刘的职工的职工号、姓名和出生日期。
用
select last_name, employ_id ,name,birthday from employees
where last_name like '刘';
9、列出1960年以前出生的职工的姓名、参加工作日期。
10、列出工资在10000-20000之间的所有职工姓名。
因为是查姓名用工资,且是在范围内,用where。得出最后的指令是select last_name,salary from employees
-> where salary>=10000
-> and salary<=20000; 或者select last_name,salary from employees where salary>=10000 and salary <=20000;不分行
11、列出所有陈姓和李姓的职工姓名。
因为是查询陈姓和李姓,所以要用到where last_name like 'Chen'或者是'Lee',即可
分开查询就是select last_name from employees where last_name like 'Chen';和select last_name from employees where last_name like 'Lee';
12、列出所有部门号为2和3的职工号、姓名、党员否。
13、将职工表worker中的职工按出生的先后顺序排序。
14、显示工资最高的前3名职工的职工号和姓名。
因为是确认前三所以用select * from employees order by salary desc limit 3;
15、求出各部门党员的人数。
求党员的总人数用select count(党员) from employees;
16、统计各部门的工资和平均工资
用select avg(salary),department_id from employees inner join departments on departments department_id=employees department_id;
17、列出总人数大于4的部门号和总人数。
因为此次要查询部门号和人数,用内链接
所以用的指令是
select d.department_name,count(e.employee_id) c
-> from employees e
-> inner join departments d
-> on e.department_id=d.department_id
-> group by d.department_name
-> having c>4
-> ;