员工表employees和部门表department,员工及所在部门信息的相关信息查询
1项目背景介绍:随着科学技术的发展,我们公司的各项管理也日趋完善,本次的数据库设计主要涉及到员工及所在部门信息的相关信息查询.2.任务概述具体关系数据库如下:
假定表employees和表department包含表1和表2的所示的数据:
表1:
Empid | Name | Department | Memo | Birthday | Salary |
001 | 李丽 | 1 | 打字员 | 1980-3-12 | 1000 |
002 | 李红 | 4 | 副经理 | 1964-8-25 | 4000 |
003 | 王亮 | 2 | 行政 | 1989-12-09 | 1200 |
004 | 张小阳 | 1 | 统计员 | 1990-8-22 | 2100 |
005 | 刘大伟 | 3 | 质检员 | 1995-6-15 | 1200 |
006 | 赵思佳 | 3 | 审核员 | 2005-7-13 | 2000 |
007 | 李福祥 | 2 | 采购员 | 2007-9-19 | 3000 |
008 | 王晓思 | 4 | 客服 | 2008-10-18 | 5000 |
表2:
Depid | Depname | Memo |
1 | 开发部 | |
2 | 集成部 | |
3 | 销售部 | |
4 | 服务部 |
具体要求:用MySQL语言实现下列功能的SQL语句代码
创建 部门员工信息库
创建表,并向表中录入数据:
create table department ( depid int primary key, depname varchar(50) not null, memo varchar(255) ); insert into department (depid, depname, memo) values (1, '开发部', ''), (2, '集成部', ''), (3, '销售部', ''), (4, '服务部', ''); create table employees ( empid varchar(10) primary key, name varchar(50) not null, department int, memo varchar(255), birthday date, salary decimal(10, 2), foreign key (department) references department(depid) ); insert into employees (empid, name, department, memo, birthday, salary) values ('001', '李丽', 1, '打字员', '1980-03-12', 1000.00), ('002', '李红', 4, '副经理', '1964-08-25', 4000.00), ('003', '王亮', 2, '行政', '1989-12-09', 1200.00), ('004', '张小阳', 1, '统计员', '1990-08-22', 2100.00), ('005', '刘大伟', 3, '质检员', '1995-06-15', 1200.00), ('006', '赵思佳', 3, '审核员', '2005-07-13', 2000.00), ('007', '李福祥', 2, '采购员', '2007-09-19', 3000.00), ('008', '王晓思', 4, '客服', '2008-10-18', 5000.00);
预览结果:
(1). 查询employees中的所有数据并将数列名用中文表示;
SELECT Empid AS 员工编号, Name AS 姓名, Department AS 部门编号, Memo AS 备注, Birthday AS 生日, Salary AS 工资 FROM employees;
运行结果:
(2). 查询employees中的所有记录并将部门名称编号替换成department表中的部门名,并按部门编顺序进行显示;
SELECT e.Empid, e.Name, d.Depname, e.Memo, e.Birthday, e.Salary FROM employees e JOIN department d ON e.Department = d.Depid ORDER BY e.Department;
运行结果:
(3). 查询employees中工资大于1500并且属于“开发部”的全部信息;
SELECT * FROM employees WHERE Salary > 1500 AND Department = (SELECT Depid FROM department WHERE Depname = '开发部');
运行结果:
(4). 查询employees中姓“王”的人员信息;
SELECT * FROM employees WHERE Name LIKE '王%';
运行结果:
(5). 查询employees中1960—1969年出生的人员信息;
SELECT * FROM employees WHERE Birthday BETWEEN '1960-01-01' AND '1969-12-31';
运行结果:
(6). 查询开发部员工工资总和;
SELECT SUM(Salary) FROM employees WHERE Department = (SELECT Depid FROM department WHERE Depname = '开发部');
运行结果:
(7). 查询不属于开发部人员的全部信息;
SELECT * FROM employees WHERE Department != (SELECT Depid FROM department WHERE Depname = '开发部');
运行结果:
(8). 查询工资最高的三位人员信息;
SELECT * FROM employees ORDER BY Salary DESC LIMIT 3;
运行结果:
(9). 查询各部门平均工资;
SELECT d.Depname, AVG(e.Salary) AS 平均工资 FROM employees e JOIN department d ON e.Department = d.Depid GROUP BY d.Depname;
运行结果:
(10). 将所有工资低于1500元的员工工资加200元;
UPDATE employees SET Salary = Salary + 200 WHERE Salary < 1500;
(11). 所有开发部人员工资上调10%;
UPDATE employees SET Salary = Salary * 1.1 WHERE Department = (SELECT Depid FROM department WHERE Depname = '开发部');
(12). 删除开发部生日为空的人员信息。
DELETE FROM employees WHERE Department = (SELECT Depid FROM department WHERE Depname = '开发部') AND Birthday IS NULL;
