sql作业

一.

创建一个员工表和部门表的交叉连接。

select e.empno, e.ename, d.dname 
from emp e cross join dept d;

二.

使用自然连接,显示入职日期在80年5月1日之后的员工姓名,部门名称,入职日期

select e.ename, d.dname,e.hiredate 
from emp e natural join dept d 
where 
e.hiredate>'1980-05-21';

三.

使用左连接,查询每个员工的姓名,经理姓名,没有经理的King也要显示出来。

select e.ename,m.ename 
from emp e left outer join emp m on(e.mgr = m.empno);

四.

使用右连接,查询每个员工的姓名,经理姓名,没有经理的King也要显示出来

select e.ename,m.ename 
from emp e right outer join emp m on(e.mgr = m.empno);

五.

显示员工SMITH的姓名,部门名称,直接上级名称

select e.ename 员工姓名 ,d.dname 部门名称 ,m.ename 上级经理
from emp e,emp m,dept d 
where e.mgr = m.empno and e.deptno=d.deptno and e.ename='SMITH';

六.

显示员工姓名,部门名称,工资,工资级别,要求工资级别大于4级。

select e.ename 员工姓名, e.sal 工资 , s.grade 工资等级 ,d.dname  部门
from emp e, salgrade s,dept d 
where  e.deptno=d.deptno and e.sal between s.losal and s.hisal and s.grade>4;

七.

显示员工KING和FORD管理的员工姓名及其经理姓名。

mysql> select e.ename 员工,m.ename 领导
from emp e,emp m 
where m.empno=e.mgr and m.ename in('FORD','KING');

八.

显示员工姓名,参加工作时间,经理名,参加工作时间,要求参加时间比经理早。

select e.ename 员工,e.hiredate 参加工作时间 ,m.ename 经理,m.hiredate 参加工作时间
 from emp e,emp m 
where m.empno=e.mgr and e.hiredate>m.hiredate;

九.

查询入职日期比10部门任意一个员工晚的员工姓名、入职日期,不包括10部门员工

SELECT
    ename,
    HIREDATE
FROM
    emp
WHERE
    HIREDATE > ANY (
        SELECT
            HIREDATE
        FROM
            emp
        WHERE
            DEPTNO = 10
    )
AND DEPTNO <> 10;

十.

查询入职日期比10部门所有员工晚的员工姓名、入职日期,不包括10部门员工

SELECT
    ename,
    HIREDATE
FROM
    emp
WHERE
    HIREDATE > ALL (
        SELECT
            HIREDATE
        FROM
            emp
        WHERE
            DEPTNO = 10
    )
AND DEPTNO <> 10;

十一.

查询职位和10部门任意一个员工职位相同的员工姓名,职位,不包括10部门员

SELECT
    ename,
    JOB
FROM
    emp
WHERE
    JOB = ANY (
        SELECT
            JOB
        FROM
            emp
        WHERE
            DEPTNO = 10
    )
AND DEPTNO <> 10;

十二.

查询部门平均工资在2500元以上的部门名称及平均工资。

SELECT
    d.dname,
    avg(sal)
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.DEPTNO
GROUP BY
    e.DEPTNO
HAVING
    avg(sal) > 2500;

十三.

查询员工岗位中不是以“SA”开头并且平均工资在2500元以上的岗位及平均工资,并按平均工资降序排序。

SELECT
    job,
    avg(sal)
FROM
    emp
WHERE
    JOB NOT LIKE 'SA%'
GROUP BY
    JOB
HAVING
    avg(sal) > 2500
ORDER BY
    avg(sal);

十四.

查询部门人数在2人以上的部门名称、最低工资、最高工资。

SELECT
    d.dname,
    min(e.sal),
    max(e.sal),
    COUNT(*)
FROM
    emp e,
    dept d
WHERE
    d.deptno = e.deptno
GROUP BY
    d.dname
HAVING
    COUNT(*) > 2;

十五.

查询岗位不为SALESMAN,工资和大于等于2500的岗位及每种岗位的工资和。

SELECT
    job,
    sum(sal)
FROM
    emp
WHERE
    job <> 'SALESMAN'
GROUP BY
    job
HAVING
    sum(sal) >= 2500;

十六.

显示经理号码和经理姓名,这个经理所管理员工的最低工资,没有经理的KING也要显示,不包括最低工资小于3000的,按最低工资由高到低排序

SELECT
    e.mgr 经理号码,
    m.ename 经理姓名,
    MIN(e.sal) 管理员工最低工资
FROM
    emp e
LEFT JOIN emp m ON (e.mgr = m.empno)
GROUP BY
    e.mgr,
    m.ename
HAVING
    MIN(e.sal) >= 3000
ORDER BY
    MIN(m.sal) DESC;

SELECT
    mgr
FROM
    emp
GROUP BY
    mgr;

十七.

查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号、姓名及工资。

SELECT
    e.EMPNO,
    e.ENAME,
    e.SAL
FROM
    emp e
WHERE
    e.SAL > (
        SELECT
            SAL
        FROM
            emp
        WHERE
            EMPNO = 7782
    )
AND (
    SELECT
        JOB
    FROM
        emp
    WHERE
        EMPNO = 7369

十八.

查询工资最高的员工姓名和工资。

SELECT
    ename,
    SAL
FROM
    emp
WHERE
    SAL = (SELECT MAX(SAL) FROM emp);

十九.

查询部门最低工资高于10号部门最低工资的部门的编号、名称及部门最低工资。

SELECT
    e.DEPTNO,
    d.dname,
    MIN(e.SAL)
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.deptno
GROUP BY
    e.DEPTNO,
    d.dname
HAVING
    MIN(e.SAL) > (
        SELECT
            MIN(SAL)
        FROM
            emp
        WHERE
            DEPTNO = 10
        GROUP BY
            DEPTNO
    );

二十.

查询员工工资为其部门最低工资的员工的编号和姓名及工资。

SELECT
    EMPNO,
    ENAME,
    SAL
FROM
    emp
WHERE
    sal = ANY (
        SELECT
            MIN(SAL)
        FROM
            emp
        GROUP BY
            DEPTNO
    );

二十一.

显示经理是KING的员工姓名,工资。

SELECT
    ENAME,
    SAL
FROM
    emp
WHERE
    MGR = (
        SELECT
            EMPNO
        FROM
            emp
        WHERE
            ENAME = 'KING'
    );

二十二.

显示比员工SMITH参加工作时间晚的员工姓名,工资,参加工作时间。

SELECT
    ENAME,
    SAL,
    HIREDATE
FROM
    emp
WHERE
    HIREDATE > ANY (
        SELECT
            HIREDATE
        FROM
            emp
        WHERE
            ENAME = 'SMITH'
    );

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352