一、准备工作
1.打开控制台
2.登录
3.创建名为mydb的数据库
4.建表并添加数据
二、查询
1.显示所有职工的基本信息
指令: select *from mydb.worker;
2.查询所有职工所属部门的部门号,不显示重复的部门号
指令:SELECT DISTINCT `部门号` FROM mydb.worker;
3.求出所有职工的人数
指令:SELECT COUNT(*) AS `职工人数`FROM mydb.worker;
4.列出最高工和最低工资
指令:SELECT MAX(工资) AS 最高工资, MIN(工资) AS 最低工资 FROM mydb.worker;
5.列出职工的平均工资和总工资
指令:SELECT AVG(工资) AS 平均工资, SUM(工资) AS 总工资 FROM mydb.worker;
6.创建一个只有职工号.姓名和参加工作的新表,名为工作日期表
指令: CREATE TABLE mydb.工作日期表 AS SELECT 职工号, 姓名, 工作时间 FROM mydb.worker;
7.列出所有姓刘的职工的职工号.姓名和出生日期
(这里没有所以用张代替,后面几项没有数据的也将被代替)
指令:SELECT 职工号, 姓名, 出生日期 FROM mydb.worker WHERE 姓名 LIKE '张%';
8.列出1990年以前出生的职工的姓名.参加工作日期
指令:SELECT 姓名, 工作时间 FROM mydb.worker WHERE YEAR(出生日期) < 1990;
9.列出工资在3000-4500之间的所有职工姓名
指令:SELECT 姓名 FROM mydb.worker WHERE 工资 BETWEEN 3000 AND 4500;
10.列出所有王姓和李姓的职工姓名
指令:SELECT 姓名 FROM mydb.worker WHERE 姓名 LIKE '王%' OR 姓名 LIKE '李%';
11.列出所有部门号为102和101的职工号、姓名、政治面貌
指令:SELECT 职工号, 姓名, 政治面貌 FROM mydb.worker WHERE 部门号 IN (101, 102);
12.将职工表worker中的职工按出生的先后顺序排序
指令:SELECT * FROM mydb.worker ORDER BY 出生日期 ASC;
13.显示工资最高的前3名职工的职工号和姓名
指令:SELECT 职工号, 姓名 FROM mydb.worker ORDER BY 工资 DESC LIMIT 3;
14.求出各部门党员的人数
指令:SELECT 部门号, COUNT(*) AS 党员人数 FROM mydb.worker WHERE 政治面貌 = '党员' GROUP BY 部门号;
15.统计各部门的工资和平均工资
指令:SELECT 部门号, SUM(工资) AS 总工资, AVG(工资) AS 平均工资 FROM mydb.worker GROUP BY 部门号;
16.列出总人数大于2的部门号和总人数
指令:SELECT 部门号, COUNT(*) AS 总人数 FROM mydb.worker GROUP BY 部门号 HAVING 总人数 > 2;