SQL——34道经典例题之1-17

news2025/3/10 18:35:41

目录

1 查询每个部门最高薪水的人员名称

2 查询哪些人的薪水在部门平均薪水之上

3 查询每个部门的平均薪水等级

3.1 每个部门的平均薪水的等级 

3.2 每个部门的平均的薪水等级

4 查询最高薪水(不用max函数)

5 查询平均薪水最高的部门的部门编号

6 查询平均薪水最高的部门的部门名称

7 查询平均薪水的等级最低的部门的部门名称

8 查询比普通员工的最高薪水还要高的经理人姓名

9 查询薪水最高的前五名员工

10 查询薪水最高的第6-10名员工

11 查询最后入职的5名员工

12 查询每个薪水等级有多少员工

13 列出所有员工及领导名字

14 受雇日期早于其直接上级的所有员工编号、姓名、部门名称

15 列出部门名称和员工信息,同时列出没有员工的部门

16 列出至少5个员工的所有部门

17 列出薪水比“SMITH”多的所有员工信息


数据代码在文末。 


1 查询每个部门最高薪水人员名称

# (1)求出每个部门的最高薪水
select e.deptno,max(e.sal) maxsal from emp e
group by e.deptno; 
+--------+---------+
| deptno | maxsal  |
+--------+---------+
|     20 | 3000.00 |
|     30 | 2850.00 |
|     10 | 5000.00 |
+--------+---------+

# (2)将以上表当作一个临时表t,多表连接(join...on...)
select e.deptno,e.ename,t.maxsal,e.sal
from (select e.deptno,max(e.sal) as maxsal from emp e group by e.deptno) t
join emp e on e.deptno=t.deptno
where t.maxsal=e.sal
order by e.deptno;
+--------+-------+---------+---------+
| deptno | ename | maxsal  | sal     |
+--------+-------+---------+---------+
|     10 | KING  | 5000.00 | 5000.00 |
|     20 | SCOTT | 3000.00 | 3000.00 |
|     20 | FORD  | 3000.00 | 3000.00 |
|     30 | BLAKE | 2850.00 | 2850.00 |
+--------+-------+---------+---------+

2 查询哪些人的薪水在部门平均薪水之上

# (1)部门平均薪水
select e.deptno,avg(sal) avgsal from emp e 
group by deptno; 
+--------+-------------+
| deptno | avgsal     |
+--------+-------------+
|     20 | 2175.000000 |
|     30 | 1566.666667 |
|     10 | 2916.666667 |
+--------+-------------+

# (2)当作临时表t,多表连接(join...on...)
select t.deptno,e.ename
from (select e.deptno,avg(sal) avgsal from emp e group by e.deptno) t
join emp e on e.deptno=t.deptno
where e.sal>t.avgsal
order by t.deptno;
+--------+-------+
| deptno | ename |
+--------+-------+
|     10 | KING  |
|     20 | JONES |
|     20 | SCOTT |
|     20 | FORD  |
|     30 | ALLEN |
|     30 | BLAKE |
+--------+-------+

3 查询每个部门平均薪水等级

3.1 每个部门平均薪水等级 

# (1)部门的平均薪水
select e.deptno,avg(e.sal) as avgsal
from emp e
group by e.deptno;
+--------+-------------+
| deptno | avgsal      |
+--------+-------------+
|     20 | 2175.000000 |
|     30 | 1566.666667 |
|     10 | 2916.666667 |
+--------+-------------+

#(2)部门的薪水等级
select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
|     1 |   700 |  1200 |
|     2 |  1201 |  1400 |
|     3 |  1401 |  2000 |
|     4 |  2001 |  3000 |
|     5 |  3001 |  9999 |
+-------+-------+-------+

# (3)将临时表t与表salgrade进行连接,查询平均薪水在哪个等级范围中
select t.deptno,s.grade
from (select e.deptno,avg(e.sal) as avgsal from emp e group by e.deptno) t
join salgrade s
on t.avgsal between s.losal and s.hisal
order by t.deptno;
+--------+-------+
| deptno | grade |
+--------+-------+
|     10 |     4 |
|     20 |     4 |
|     30 |     3 |
+--------+-------+

3.2 每个部门的平均薪水等级

# (1)查询部门每个人的薪水等级在哪个等级范围中
select e.deptno,e.ename,s.grade
from emp e
join salgrade s
on e.sal between s.losal and s.hisal
order by e.deptno;
+--------+--------+-------+
| deptno | ename  | grade |
+--------+--------+-------+
|     10 | CLARK  |     4 |
|     10 | KING   |     5 |
|     10 | MILLER |     2 |
|     20 | SMITH  |     1 |
|     20 | JONES  |     4 |
|     20 | SCOTT  |     4 |
|     20 | ADAMS  |     1 |
|     20 | FORD   |     4 |
|     30 | ALLEN  |     3 |
|     30 | WARD   |     2 |
|     30 | MARTIN |     2 |
|     30 | BLAKE  |     4 |
|     30 | TURNER |     3 |
|     30 | JAMES  |     1 |
+--------+--------+-------+

# (2)将临时表t按每个部门的等级进行平均
select t.deptno,avg(t.grade) as avgGrade
from (select e.deptno,e.ename,s.grade from emp e 
    join salgrade s on e.sal between s.losal and s.hisal order by e.deptno) t
group by t.deptno;
+--------+----------+
| deptno | avgGrade |
+--------+----------+
|     20 |   2.8000 |
|     30 |   2.5000 |
|     10 |   3.6667 |
+--------+----------+

4 查询最高薪水(不用max函数)

# 第一种方法
select sal from emp
order by sal desc
limit 1;
+---------+
| sal     |
+---------+
| 5000.00 |
+---------+

# 第二种方法
# (1)将两张一样的表进行比较,并且清除重复值
select distinct a.sal
from emp a
join emp b
on a.sal<b.sal;
+---------+
| sal     |
+---------+
| 1300.00 |
|  950.00 |
| 1100.00 |
| 1500.00 |
| 1250.00 |
|  800.00 |
| 2450.00 |
| 2850.00 |
| 1600.00 |
| 2975.00 |
| 3000.00 |
+---------+

# (2)选取除上表以外的最大值
select sal 
from emp 
where sal not in
(select distinct a.sal from emp a join emp b on a.sal<b.sal);
+---------+
| sal     |
+---------+
| 5000.00 |
+---------+

5 查询平均薪水最高的部门部门编号

# (1)每个部门的平均薪水
select e.deptno,avg(sal) avgsal
from emp e
group by e.deptno
order by e.deptno;
+--------+-------------+
| deptno | avgsal      |
+--------+-------------+
|     10 | 2916.666667 |
|     20 | 2175.000000 |
|     30 | 1566.666667 |
+--------+-------------+

# (2)临时表t中查询最高平均薪水
#(select中加入t.deptno,则会出错,因为会出现所有deptno,而最高只有一个平均薪水)
select max(t.avgsal) maxavgsal
from (select e.deptno,avg(sal) avgsal from emp e group by e.deptno) t;
+-------------+
| maxavgsal   |
+-------------+
| 2916.666667 |
+-------------+

# (3)使用having语句过滤
select e.deptno,avg(e.sal) as avgsal
from emp e 
group by e.deptno
having avgsal=(select max(t.avgsal) maxavgsal 
                from (select e.deptno,avg(sal) avgsal from emp e group by e.deptno) t);
+--------+-------------+
| deptno | avgsal      |
+--------+-------------+
|     10 | 2916.666667 |
+--------+-------------+

6 查询平均薪水最高的部门部门名称

# 将上一题作为临时表f,连接dept表 
select d.deptno,d.dname,f.avgsal
from (select e.deptno,avg(e.sal) as avgsal
        from emp e 
        group by e.deptno
        having avgsal=(select max(t.avgsal) maxavgsal 
                from (select e.deptno,avg(sal) avgsal from emp e group by e.deptno) t)) f
join dept d
on d.deptno=f.deptno;
+--------+------------+-------------+
| deptno | dname      | avgsal      |
+--------+------------+-------------+
|     10 | ACCOUNTING | 2916.666667 |
+--------+------------+-------------+

# 在having语句添加子查询,先将emp表与dept表先连接,再确定最高薪水
select e.deptno,d.dname,avg(e.sal) avgsal
from emp e
join dept d
on e.deptno=d.deptno
group by e.deptno,d.dname
having avgsal=(select max(t.avgsal) maxavgsal 
                from (select e.deptno,avg(sal) avgsal from emp e group by e.deptno) t);
+--------+------------+-------------+
| deptno | dname      | avgsal      |
+--------+------------+-------------+
|     10 | ACCOUNTING | 2916.666667 |
+--------+------------+-------------+

7 查询平均薪水等级最低部门部门名称

# (1)每部门平均薪水的等级
select t.deptno,t.dname,s.grade
from (select e.deptno,d.dname,avg(sal) avgsal 
        from emp e join dept d on e.deptno=d.deptno
        group by deptno) t
join salgrade s 
on t.avgsal between s.losal and s.hisal;
+--------+------------+-------+
| deptno | dname      | grade |
+--------+------------+-------+
|     20 | RESEARCH   |     4 |
|     30 | SALES      |     3 |
|     10 | ACCOUNTING |     4 |
+--------+------------+-------+

# (2)平均薪水等级最低的部门
select min(f.grade) minGrade 
from (select t.deptno,t.dname,s.grade
        from (select e.deptno,d.dname,avg(sal) avgsal 
                from emp e join dept d on e.deptno=d.deptno
                group by deptno) t
        join salgrade s 
        on t.avgsal between s.losal and s.hisal) f;
+----------+
| minGrade |
+----------+
|        3 |
+----------+

# (3)最低等级的部门名称(用where或having筛选)
select 
    t.deptno,t.dname,s.grade
from 
    (select e.deptno,d.dname,avg(sal) avgsal 
        from emp e 
        join dept d 
        on e.deptno=d.deptno
        group by deptno) t
join 
    salgrade s 
on 
    t.avgsal between s.losal and s.hisal 
having 
    s.grade = (select min(f.grade) minGrade 
                from (select t.deptno,t.dname,s.grade
                        from (select e.deptno,d.dname,avg(sal) avgsal 
                                from emp e join dept d on e.deptno=d.deptno group by deptno) t
                        join salgrade s on t.avgsal between s.losal and s.hisal) f);
+--------+-------+-------+
| deptno | dname | grade |
+--------+-------+-------+
|     30 | SALES |     3 |
+--------+-------+-------+

8 查询比普通员工最高薪水还要高经理人姓名

# 普通员工没有出现在mgr上
# (1)查找mgr
select distinct mgr from emp;
+------+
| mgr  |
+------+
| 7902 |
| 7698 |
| 7839 |
| 7566 |
| NULL |
| 7788 |
| 7782 |
+------+

select * from emp where empno in (select distinct mgr from emp);
+-------+-------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+-----------+------+------------+---------+------+--------+
|  7902 | FORD  | ANALYST   | 7566 | 1981-12-03 | 3000.00 | NULL |     20 |
|  7698 | BLAKE | MANAGER   | 7839 | 1981-05-01 | 2850.00 | NULL |     30 |
|  7839 | KING  | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL |     10 |
|  7566 | JONES | MANAGER   | 7839 | 1981-04-02 | 2975.00 | NULL |     20 |
|  7788 | SCOTT | ANALYST   | 7566 | 1987-04-19 | 3000.00 | NULL |     20 |
|  7782 | CLARK | MANAGER   | 7839 | 1981-06-09 | 2450.00 | NULL |     10 |
+-------+-------+-----------+------+------------+---------+------+--------+

# (2)筛选普通员工
select * from emp where empno not in (select distinct mgr from emp);
Empty set (0.00 sec)  #not in 不会自动忽略空值,in会自动忽略空值
select * from emp where empno not in (select distinct mgr from emp where mgr is not null);
+-------+--------+----------+------+------------+---------+---------+--------+
| EMPNO | ENAME  | JOB      | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+-------+--------+----------+------+------------+---------+---------+--------+
|  7369 | SMITH  | CLERK    | 7902 | 1980-12-17 |  800.00 |    NULL |     20 |
|  7499 | ALLEN  | SALESMAN | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
|  7521 | WARD   | SALESMAN | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
|  7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
|  7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
|  7876 | ADAMS  | CLERK    | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
|  7900 | JAMES  | CLERK    | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
|  7934 | MILLER | CLERK    | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
+-------+--------+----------+------+------------+---------+---------+--------+

# (3)查找最高薪水
select max(sal) as maxsal from emp where empno not in (select distinct mgr from emp where mgr is not null);
+---------+
| maxsal  |
+---------+
| 1600.00 |
+---------+

# (4)比普通员工最高薪水的经理人名字
select ename,sal from emp
where sal>(select max(sal) as maxsal from emp 
            where empno not in (select distinct mgr from emp where mgr is not null));
+-------+---------+
| ename | sal     |
+-------+---------+
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING  | 5000.00 |
| FORD  | 3000.00 |
+-------+---------+

9 查询薪水最高的前五名员工

select ename,sal from emp 
order by sal desc
limit 5;
+-------+---------+
| ename | sal     |
+-------+---------+
| KING  | 5000.00 |
| SCOTT | 3000.00 |
| FORD  | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+

10 查询薪水最高的第6-10名员工

select ename,sal from emp
order by sal desc
limit 5,5;
+--------+---------+
| ename  | sal     |
+--------+---------+
| CLARK  | 2450.00 |
| ALLEN  | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| WARD   | 1250.00 |
+--------+---------+

11 查询最后入职的5名员工

select ename,hiredate from emp
order by hiredate
limit 5;
+-------+------------+
| ename | hiredate   |
+-------+------------+
| SMITH | 1980-12-17 |
| ALLEN | 1981-02-20 |
| WARD  | 1981-02-22 |
| JONES | 1981-04-02 |
| BLAKE | 1981-05-01 |
+-------+------------+

12 查询每个薪水等级多少员工

# (1)每个员工的薪水等级
select e.ename,s.grade,e.sal from emp e
join salgrade s
on e.sal between s.losal and s.hisal;
+--------+-------+---------+
| ename  | grade | sal     |
+--------+-------+---------+
| SMITH  |     1 |  800.00 |
| ALLEN  |     3 | 1600.00 |
| WARD   |     2 | 1250.00 |
| JONES  |     4 | 2975.00 |
| MARTIN |     2 | 1250.00 |
| BLAKE  |     4 | 2850.00 |
| CLARK  |     4 | 2450.00 |
| SCOTT  |     4 | 3000.00 |
| KING   |     5 | 5000.00 |
| TURNER |     3 | 1500.00 |
| ADAMS  |     1 | 1100.00 |
| JAMES  |     1 |  950.00 |
| FORD   |     4 | 3000.00 |
| MILLER |     2 | 1300.00 |
+--------+-------+---------+

# (2)临时表t,分组函数group by
select t.grade,count(t.grade) courtgrade
from (select e.ename,s.grade,e.sal from emp e 
        join salgrade s on e.sal between s.losal and s.hisal) t
group by t.grade;
+-------+------------+
| grade | courtgrade |
+-------+------------+
|     1 |          3 |
|     3 |          2 |
|     2 |          3 |
|     4 |          5 |
|     5 |          1 |
+-------+------------+

13 列出所有员工及领导名字

# 一张表当作两张表,所有员工需要left join
select e.ename,b.ename as leadername
from emp e 
left join emp b
on e.mgr=b.empno;
+--------+------------+
| ename  | leadername |
+--------+------------+
| SMITH  | FORD       |
| ALLEN  | BLAKE      |
| WARD   | BLAKE      |
| JONES  | KING       |
| MARTIN | BLAKE      |
| BLAKE  | KING       |
| CLARK  | KING       |
| SCOTT  | JONES      |
| KING   | NULL       |
| TURNER | BLAKE      |
| ADAMS  | SCOTT      |
| JAMES  | BLAKE      |
| FORD   | JONES      |
| MILLER | CLARK      |
+--------+------------+

14 受雇日期早于其直接上级所有员工编号、姓名、部门名称

# (1)所有员工、领导的编号、姓名
select e.empno,e.deptno,e.ename,e.hiredate,b.ename as leadername,b.hiredate as leaderhiredate
from emp e
left join emp b
on e.mgr=b.empno;
+-------+--------+--------+------------+------------+----------------+
| empno | deptno | ename  | hiredate   | leadername | leaderhiredate |
+-------+--------+--------+------------+------------+----------------+
|  7369 |     20 | SMITH  | 1980-12-17 | FORD       | 1981-12-03     |
|  7499 |     30 | ALLEN  | 1981-02-20 | BLAKE      | 1981-05-01     |
|  7521 |     30 | WARD   | 1981-02-22 | BLAKE      | 1981-05-01     |
|  7566 |     20 | JONES  | 1981-04-02 | KING       | 1981-11-17     |
|  7654 |     30 | MARTIN | 1981-09-28 | BLAKE      | 1981-05-01     |
|  7698 |     30 | BLAKE  | 1981-05-01 | KING       | 1981-11-17     |
|  7782 |     10 | CLARK  | 1981-06-09 | KING       | 1981-11-17     |
|  7788 |     20 | SCOTT  | 1987-04-19 | JONES      | 1981-04-02     |
|  7839 |     10 | KING   | 1981-11-17 | NULL       | NULL           |
|  7844 |     30 | TURNER | 1981-09-08 | BLAKE      | 1981-05-01     |
|  7876 |     20 | ADAMS  | 1987-05-23 | SCOTT      | 1987-04-19     |
|  7900 |     30 | JAMES  | 1981-12-03 | BLAKE      | 1981-05-01     |
|  7902 |     20 | FORD   | 1981-12-03 | JONES      | 1981-04-02     |
|  7934 |     10 | MILLER | 1982-01-23 | CLARK      | 1981-06-09     |
+-------+--------+--------+------------+------------+----------------+

# (2)早于上级的所有员工的编号、姓名
select t.deptno,t.ename
from (select e.deptno,e.ename,e.hiredate,b.ename as leadername,b.hiredate as leaderhiredate
        from emp e left join emp b on e.mgr=b.empno) t
where t.hiredate<t.leaderhiredate;
+--------+-------+
| deptno | ename |
+--------+-------+
|     20 | SMITH |
|     30 | ALLEN |
|     30 | WARD  |
|     20 | JONES |
|     30 | BLAKE |
|     10 | CLARK |
+--------+-------+

# (3)早于上级的所有员工的编号、姓名、部门名称
select f.empno,f.ename,d.dname
from (select t.empno,t.deptno,t.ename
        from (select e.empno,e.deptno,e.ename,e.hiredate,b.ename leadername,b.hiredate 
               leaderhiredate
                from emp e left join emp b on e.mgr=b.empno) t
        where t.hiredate<t.leaderhiredate) f
join dept d
on d.deptno=f.deptno;
+-------+-------+------------+
| empno | ename | dname      |
+-------+-------+------------+
|  7369 | SMITH | RESEARCH   |
|  7499 | ALLEN | SALES      |
|  7521 | WARD  | SALES      |
|  7566 | JONES | RESEARCH   |
|  7698 | BLAKE | SALES      |
|  7782 | CLARK | ACCOUNTING |
+-------+-------+------------+
# 化简版
select d.dname,e.empno,e.ename
from emp e
join emp b
on e.mgr=b.empno
join dept d
on e.deptno=d.deptno
where e.hiredate>b.hiredate;
+------------+-------+--------+
| dname      | empno | ename  |
+------------+-------+--------+
| SALES      |  7654 | MARTIN |
| RESEARCH   |  7788 | SCOTT  |
| SALES      |  7844 | TURNER |
| RESEARCH   |  7876 | ADAMS  |
| SALES      |  7900 | JAMES  |
| RESEARCH   |  7902 | FORD   |
| ACCOUNTING |  7934 | MILLER |
+------------+-------+--------+

15 列出部门名称和员工信息,同时列出没有员工的部门

select d.dname,e.*
from emp e
right join dept d
on e.deptno=d.deptno;
+------------+-------+--------+-----------+------+------------+---------+---------+--------+
| dname      | EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+------------+-------+--------+-----------+------+------------+---------+---------+--------+
| ACCOUNTING |  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
| ACCOUNTING |  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 |    NULL |     10 |
| ACCOUNTING |  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |    NULL |     10 |
| RESEARCH   |  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |    NULL |     20 |
| RESEARCH   |  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
| RESEARCH   |  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 | 3000.00 |    NULL |     20 |
| RESEARCH   |  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |    NULL |     20 |
| RESEARCH   |  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 |    NULL |     20 |
| SALES      |  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
| SALES      |  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
| SALES      |  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |    NULL |     30 |
| SALES      |  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
| SALES      |  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
| SALES      |  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
| OPERATIONS |  NULL | NULL   | NULL      | NULL | NULL       |    NULL |    NULL |   NULL |
+------------+-------+--------+-----------+------+------------+---------+---------+--------+

16 列出至少5个员工所有部门

# (1)每个部门的员工数量
select e.deptno,count(e.ename) as totalEmp
from emp e
group by e.deptno;
+--------+----------+
| deptno | totalEmp |
+--------+----------+
|     20 |        5 |
|     30 |        6 |
|     10 |        3 |
+--------+----------+

# (2)有5个员工的部门
select t.deptno,t.totalEmp
from (select e.deptno,count(e.ename) as totalEmp
        from emp e group by e.deptno) t
where t.totalEmp>=5;
+--------+----------+
| deptno | totalEmp |
+--------+----------+
|     20 |        5 |
|     30 |        6 |
+--------+----------+

select e.deptno,count(e.ename) as totalEmp
from emp e
group by e.deptno
having totalEmp>=5;
+--------+----------+
| deptno | totalEmp |
+--------+----------+
|     20 |        5 |
|     30 |        6 |
+--------+----------+

17 列出薪水“SMITH”多的所有员工信息

# (1)查询"SMITH"薪水
select sal from emp where ename="SMITH";
+--------+
| sal    |
+--------+
| 800.00 |
+--------+

# (2)比较
select * from emp where sal>(select sal from emp where ename="SMITH");
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
|  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |    NULL |     20 |
|  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
|  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |    NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |    NULL |     10 |
|  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 | 3000.00 |    NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 |    NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |    NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
+-------+--------+-----------+------+------------+---------+---------+--------+

 ——数据:bjpowernode.sql

DROP TABLE IF EXISTS EMP;
DROP TABLE IF EXISTS DEPT;
DROP TABLE IF EXISTS SALGRADE;

CREATE TABLE DEPT
       (DEPTNO int(2) not null ,
	DNAME VARCHAR(14) ,
	LOC VARCHAR(13),
	primary key (DEPTNO)
	);
CREATE TABLE EMP
       (EMPNO int(4)  not null ,
	ENAME VARCHAR(10),
	JOB VARCHAR(9),
	MGR INT(4),
	HIREDATE DATE  DEFAULT NULL,
	SAL DOUBLE(7,2),
	COMM DOUBLE(7,2),
	primary key (EMPNO),
	DEPTNO INT(2) 
	)
	;

CREATE TABLE SALGRADE
      ( GRADE INT,
	LOSAL INT,
	HISAL INT );

INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 10, 'ACCOUNTING', 'NEW YORK'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 20, 'RESEARCH', 'DALLAS'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 30, 'SALES', 'CHICAGO'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 40, 'OPERATIONS', 'BOSTON'); 
commit;
 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7369, 'SMITH', 'CLERK', 7902,  '1980-12-17', 800, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7499, 'ALLEN', 'SALESMAN', 7698,  '1981-02-20', 1600, 300, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7521, 'WARD', 'SALESMAN', 7698,  '1981-02-22', 1250, 500, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7566, 'JONES', 'MANAGER', 7839,  '1981-04-02', 2975, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7654,'MARTIN', 'SALESMAN', 7698,  '1981-09-28', 1250, 1400, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7698, 'BLAKE', 'MANAGER', 7839,  '1981-05-01', 2850, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7782, 'CLARK', 'MANAGER', 7839,  '1981-06-09', 2450, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7788, 'SCOTT', 'ANALYST', 7566,  '1987-04-19', 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7839, 'KING', 'PRESIDENT', NULL,  '1981-11-17', 5000, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7844, 'TURNER', 'SALESMAN', 7698,  '1981-09-08', 1500, 0, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7876, 'ADAMS', 'CLERK', 7788,  '1987-05-23', 1100, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7900, 'JAMES', 'CLERK', 7698,  '1981-12-03', 950, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7902, 'FORD', 'ANALYST', 7566,  '1981-12-03', 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7934, 'MILLER', 'CLERK', 7782,  '1982-01-23', 1300, NULL, 10); 
commit;
 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 1, 700, 1200); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 2, 1201, 1400); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 3, 1401, 2000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 4, 2001, 3000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 5, 3001, 9999); 
commit;
dept
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+

emp
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 |    NULL |     20 |
|  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |    NULL |     20 |
|  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
|  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |    NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |    NULL |     10 |
|  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 | 3000.00 |    NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 |    NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |    NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
+-------+--------+-----------+------+------------+---------+---------+--------+

salgrade
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
|     1 |   700 |  1200 |
|     2 |  1201 |  1400 |
|     3 |  1401 |  2000 |
|     4 |  2001 |  3000 |
|     5 |  3001 |  9999 |
+-------+-------+-------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FE_CSS CSS 的三大特性

1 层叠性 相同选择器给设置相同的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要解决样式冲突的问题 层叠性原则&#xff1a; 样式冲突&#xff0c;遵循的原则是就近原则&#xff0c;哪个样式离结构近&#xff0c;就执行哪个…

「C/C++」C/C++预处理器

博客主页&#xff1a;何曾参静谧的博客 文章专栏&#xff1a;「C/C」C/C学习 目录一、宏替换 #define1. 定义常量2. 定义函数3. 定义代码块二、条件编译 #if1. 使用 #ifdef 和 #endif 编译不同平台的代码2. 使用 #if 和 #else 编译不同版本的代码3. 使用 #ifndef 和 #define和#…

机器学习 00 交叉验证

一、什么是交叉验证(cross validation) 交叉验证:将拿到的训练数掘&#xff0c;分为训练和验证集。以下图为例: 将数据分成4份&#xff0c;其中一份作为验证集。然后经过4次(组)的测试&#xff0c;每次都更换不同的验证集。即得到4组模型的结果&#xff0c;取平均值作为最终结…

ENVI 5.6软件安装教程

软件下载 [软件名称]&#xff1a;ENVI 5.6 [软件大小]&#xff1a;3.25G [安装环境]&#xff1a;Win7~Win11或更高 软件介绍 ENVI 5.6是一款实现遥感图像处理的工具&#xff0c;已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、地球科学、公用设施管…

RK3568平台使用PyQt5遇到的_ZTI18QOpenGLTimeMonitor, version Qt_5问题解决

1、背景 由于开发需要在ubuntu 20.04 RK3568平台上面使用PyQt5来运行GUI软件&#xff0c;整个软件的环境如下&#xff1a;python3.8 PyQt5 5.14.1版本 fireflyfirefly:/usr/bin$ pip list Package Version ---------------------- -------------------- blink…

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化《文章复现》 相关资源代码&#xff1a;基于多目标粒子群算法冷热电联供综合能源系统运行优化 基于多目标算法的冷热电联供型综合能源系统运行优化 考虑用户舒适度的冷热电多能互补综合能源系统优化调度 仿真平台:matl…

微信小程序【TypeError:Cannot read property ‘xxx‘ of undefined】特殊情况解决方法

xxx是一个属性 报错&#xff1a; 解决方法 翻译&#xff1a;TypeError&#xff1a;无法读取未定义的属性“ xxx” 产生原因&#xff1a; 未定义对应的属性变量不能正确的找到对应的变量 解决方法&#xff1a; 原因一&#xff1a; 在data中定义对应变量&#xff0c;并且最…

【51单片机】:定时器的详解(包括对单片机定时解释、各类定时方式,以及中断方式)

学习目标&#xff1a; 51定时/计数器的详解。 码字不易&#xff0c;如有帮助请收藏&#xff0c;点赞哦。 学习内容&#xff08;背景知识&#xff0c;了解一下对以后学习有帮助&#xff09;&#xff1a; 前提&#xff1a;首先我们知道51单片机内部有21~26个特殊功能寄存器&#…

Linux: 性能分析之On-CPU和Off-CPU

文章目录1. 前言2. 概述3. 分析方法概述3.1 CPU 采样 方法3.2 跟踪 方法4. 使用火焰图分析4.1 On-CPU 分析4.2 Off-CPU 分析4.2.1 Off-CPU 两种分析方法对比4.2.2 生成 Off-CPU 火焰图5. 参考资料1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读…

准备2023(2024)蓝桥杯

前缀和 一维前缀和 s[i]s[i-1]a[i]二维前缀和&#xff08;子矩阵的和&#xff09; s[i][j]s[i-1][j]s[i][j-1]-s[i-1][j-1]a[i][j] 差分 一维数组 //b是差分数组b[i]c;b[j1]-c;例题 #include<iostream> using namespace std; int n,m; int b[100002],a[100002]; vo…

【系统集成项目管理工程师】信息系统集成及服务

&#x1f4a5;信息系统集成及服务 1、信息技术基础架构库&#xff08;ITIL&#xff09; 简介&#xff1a; 最初是为了提高英国政府部门 IT 服务质量而开发&#xff0c;但它很快在英国的各个企业中得到了广泛的应用和认可。 ITIL 包含着如何管理IT 基础设施的流程描述&#xf…

【OpenCV-Python】cvui 之 trackbar

CVUI 之 trackbar cvui::trackbar() 渲染一个 trackbar&#xff0c; 可以左右拖动或点击对数字进行增加或减少的调整。 不使用离散间隔 使用离散间隔 Python import numpy as np import cv2 import cvuidef trackbar_test():WINDOW_NAME Trackbar-Test# 创建画布frame np.z…

2023-数据质量管理方法总结

一、数据质量保障原则 如何评估数据质量的好坏&#xff0c;业界有不同的标准&#xff0c;阿里主要从4个方面进行评估&#xff1a;完整性、准确性、一致性、及时性&#xff1b; 1.完整性 数据完整性是数据最基础的保障&#xff1b; 完整性&#xff1a;指数据的记录和信息是否…

Redis高级功能

目录 1.RDB 持久化 1.1生成RDB文件的命令 1.2RDB 文件结构 1.3RDB 文件结构 - database 部分 2.AOF 持久化 2.主从复制 2.1重同步 - 完整重同步 2.2重同步 - 部分重同步 2.2.1重同步 - 部分重同步的实现 - PSYNC的实现原理 3.复制的具体过程 3.Sentinel 哨兵模式 …

MySQL Workbench使用入门

软件介绍 MySQL Workbench 是可视化数据库设计软件&#xff0c;为数据库管理员和开发人员提供了一整套可视化的数据库操作环境&#xff0c;主要功能有数据库设计与模型建立、SQL 开发&#xff08;取代 MySQL Query Browser&#xff09;、数据库管理&#xff08;取代 MySQL Adm…

【Vue框架】Vue2中element-ui/mint-ui组件库——element-ui引入组件以及使用案例、mint-ui引入组件及使用案例

文章目录一、element-ui/mint-ui组件库1.1 element-ui使用步骤1.1.1 引入组件1.1.2 修改 .babelrc文件1.2 mint-ui的使用1.2.1 安装引入组件1.2.2 Mint-ui相关组件一、element-ui/mint-ui组件库 element-ui 提供了大量的组件&#xff0c;如&#xff1a;布局组件、表单组件、JS…

运行时内存数据区之虚拟机栈——动态链接、方法返回地址与一些附加信息

动态链接&#xff08;Dynamic Linking&#xff09;——指向运行时常量池的方法引用 每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如&#xff1a;invokedynamic指令。…

算法 DAY24 回溯 || 第77题. 组合 216.组合总和III 17.电话号码的字母组合 39. 组合总和

前置知识 回溯算法模板框架如下&#xff1a;void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集合中元素&#xff08;树中节点孩子的数量就是集合的大小&#xff09;) {处理节点;backtracking(路径&#xff0c;选择列表); // 递归回溯&am…

rk3568点亮LCD(lvds)

rk3568 Android11/12 适配 lvds 屏 LVDS&#xff08;Low Voltage Differential Signal&#xff09;即低电压差分信号。1994年由美国国家半导体&#xff08;NS&#xff09;公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方…

堆的实现

思维导图 堆的概念 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储&#xff0c;需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事…