SQL语法练习5

1.返回员工拥有的部门,员工信息含员工部门
2.查询员工薪资大于小薇的 员工信息
3.返回员工所属领导信息
4.返回入职时间早于领导 入职时间
5.返回从事财务工作的员工信息
6.求每个部门 最低员工薪资
7.返回员工薪资大于 平均薪资员工

CREATE TABLE dept (
  `dept_no` int NOT NULL COMMENT '部门id',
  `dept_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称',
  `dept_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门地址',
  PRIMARY KEY (`dept_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
CREATE TABLE emp (
  `emp_number` int DEFAULT NULL COMMENT '员工编号',
  `emp_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '员工编号',
  `emp_post` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '员工职务',
  `emp_leader_number` int DEFAULT NULL COMMENT '员工领导编号',
  `emp_hiredate` datetime DEFAULT NULL COMMENT '员工入职时间',
  `emp_salary` double(10,0) DEFAULT NULL COMMENT '员工薪水',
  `emp_bonus` int DEFAULT NULL COMMENT '员工奖金',
  `emp_deptno` int DEFAULT NULL COMMENT '员工对外部门表外键'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO dept (`dept_no`, `dept_name`, `dept_address`) VALUES ('1', '技术部门', '湖北武汉市');
INSERT INTO dept (`dept_no`, `dept_name`, `dept_address`) VALUES ('2', '财务部门', '中国上海市');
INSERT INTO dept (`dept_no`, `dept_name`, `dept_address`) VALUES ('3', '设计部门', '湖北孝感市');

INSERT INTO emp (`emp_number`, `emp_name`, `emp_post`, `emp_leader_number`, `emp_hiredate`, `emp_salary`, `emp_bonus`, `emp_deptno`) VALUES ('1001', '李薇', 'CEO', NULL, '2021-11-01 11:32:46', '20000', '10000', '1');
INSERT INTO emp (`emp_number`, `emp_name`, `emp_post`, `emp_leader_number`, `emp_hiredate`, `emp_salary`, `emp_bonus`, `emp_deptno`) VALUES ('1002', '小薇', 'CFO', '1001', '2021-10-01 11:32:46', '5000', '10000', '2');
INSERT INTO emp (`emp_number`, `emp_name`, `emp_post`, `emp_leader_number`, `emp_hiredate`, `emp_salary`, `emp_bonus`, `emp_deptno`) VALUES ('1004', '张三', 'CTO', NULL, '2021-11-01 11:32:46', '80000', '10000', '1');
INSERT INTO emp (`emp_number`, `emp_name`, `emp_post`, `emp_leader_number`, `emp_hiredate`, `emp_salary`, `emp_bonus`, `emp_deptno`) VALUES ('1005', '李四', '技术总监', '1004', '2021-11-01 11:32:46', '20000', '10000', '1');
INSERT INTO emp (`emp_number`, `emp_name`, `emp_post`, `emp_leader_number`, `emp_hiredate`, `emp_salary`, `emp_bonus`, `emp_deptno`) VALUES ('1006', '王麻子', '客服', NULL, '2022-03-02 11:49:45', '3500', NULL, NULL);


-- 1.返回员工拥有的部门,员工信息含员工部门
SELECT * FROM emp JOIN  dept ON dept.dept_no=emp.emp_deptno;

-- 2.查询员工薪资大于小薇的员工信息
SELECT * FROM emp WHERE emp.emp_salary>(SELECT emp_salary FROM emp WHERE emp.emp_number=1002);

-- 3.返回员工所属领导信息
SELECT * FROM emp as a,emp as b WHERE a.emp_leader_number=b.emp_number;

-- 4.返回入职时间早于领导的入职时间
SELECT * FROM emp as a, emp as b WHERE a.emp_number=b.emp_leader_number and a.emp_hiredate>b.emp_hiredate;

--5.返回从事财务工作的员工信息
SELECT * FROM emp JOIN dept ON emp.emp_deptno=dept.dept_no and dept.dept_no=2;

--6.求每个部门最低员工薪资
SELECT *,min(emp_salary) FROM emp JOIN dept ON emp.emp_deptno=dept.dept_no GROUP BY emp_deptno;

--7.返回员工薪资大于平均薪资员工
SELECT *FROM emp WHERE emp_salary>(SELECT AVG(emp_salary)FROM emp);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值