MySQL-練習(xí)

MySQL練習(xí)題

  • 讓emp表中所員工的工資 + 200产喉, 同時(shí)顯示之前的工資和加薪之后的工資
SELECT
    sal,
    (sal + 200)
FROM
    emp;

  • 員工試用期6個(gè)月,轉(zhuǎn)正后月薪上調(diào)20%,請(qǐng)查詢出所有員工工作第一年的所有收入苗胀,要求顯示列標(biāo)題為員工姓名狡刘,工資收入享潜,獎(jiǎng)金收入,總收入
SELECT
    ename AS 員工姓名,
    sal AS 工資收入,
    ifnull(comm, 0) AS 獎(jiǎng)金收入,
    (
        sal * 6 + sal * 1.2 * 6 + ifnull(comm, 0)
    ) AS 總收入
FROM
    emp;

  • 查詢員工表中一共有哪幾種崗位類型
SELECT DISTINCT
   job
FROM
   emp;

  • 查詢職位為SALESMAN的員工編號(hào)嗅蔬、職位剑按、入職日期。
SELECT
    empno,
    job,
    hiredate
FROM
    emp
WHERE
    job = 'SALESMAN';

  • 查詢1985年12月31日之前入職的員工姓名及入職日期澜术。
SELECT
    empno,
    hiredate
FROM
    emp
WHERE
    hiredate < '1985-12-31';

  • 查詢部門編號(hào)不在10部門的員工姓名艺蝴、部門編號(hào)
SELECT
    empno,
    deptno
FROM
    emp
WHERE
    deptno <> 10;

  • 查詢?nèi)肼毴掌谠?2年至85年的員工姓名,入職日期
SELECT
    ename,
    hiredate
FROM
    emp
WHERE
    hiredate BETWEEN '1982-01-01'
AND '1985-01-01';

  • 查詢?cè)滦皆?000到5000的員工姓名鸟废,月薪猜敢。
SELECT
    ename,
    sal
FROM
    emp
WHERE
    sal BETWEEN 3000
AND 5000;

  • 查詢經(jīng)理編號(hào)為7902, 7566, 7788的員工姓名,經(jīng)理編號(hào)
SELECT
    ename,
    mgr
FROM
    emp
WHERE
    mgr IN (7902, 7566, 7788);

  • 查詢員工姓名以W開(kāi)頭的員工姓名盒延。
SELECT
    ename
FROM
    emp
WHERE
    ename LIKE 'W%';

  • 查詢員工姓名倒數(shù)第2個(gè)字符為T的員工姓名锣枝。
SELECT
    ename
FROM
    emp
WHERE
    ename LIKE "%T_";

  • 查詢獎(jiǎng)金為空的員工姓名,獎(jiǎng)金
SELECT
    ename,
    comm
FROM
    emp
WHERE
    comm IS NULL;

  • 查詢工資超過(guò)2000并且職位是 MANAGER或SALESMAN的員工姓名兰英、職位撇叁、工資。
SELECT
    ename,
    job,
    sal
FROM
    emp
WHERE
    sal > 2000
AND job IN ('MANAGER', 'SALESMAN');

  • 查詢部門在10或者20畦贸,并且工資在3000到5000之間的員工姓名陨闹、部門、工資薄坏。
SELECT
    ename,
    deptno,
    sal
FROM
    emp
WHERE
    deptno IN (10, 20)
AND sal BETWEEN 3000
AND 5000;

  • 查詢?nèi)肼毴掌谠?1年趋厉,并且職位不是SALES開(kāi)頭的員工姓名、入職日期胶坠、職位君账。
SELECT
    ename,
    hiredate,
    job
FROM
    emp
WHERE
    hiredate BETWEEN '1981-01-01'
AND '1982-01-01'
AND job NOT LIKE 'SALES%';

  • 查詢職位為SALESMAN或MANAGER,部門編號(hào)為10或者20沈善,
    姓名包含A的員工姓名乡数、職位、部門編號(hào)闻牡。
SELECT
    ename,
    job,
    deptno
FROM
    emp
WHERE
    job IN ('SALESMAN', 'MANAGER')
AND deptno IN (10, 20)
AND ename LIKE 'A';

  • 查詢部門在20或30的員工姓名净赴,部門編號(hào),并按照工資升序排序罩润。
SELECT
    ename,
    deptno,
    sal
FROM
    emp
WHERE
    deptno IN (20, 30)
ORDER BY
    sal;

  • 查詢工資在2000-3000之間玖翅,部門不在10號(hào)的員工姓名,部門編號(hào),工資金度,并按照部門升序应媚,工資降序排序。
SELECT
    ename,
    deptno,
    sal
FROM
    emp
WHERE
    sal BETWEEN 2000
AND 3000
AND deptno NOT IN (10)
ORDER BY
    deptno ASC,
    sal DESC;

  • 查詢?nèi)肼毴掌谠?1年至82年之間猜极,職位以SALES或者M(jìn)AN開(kāi)頭的員工姓名珍特,入職日期,職位魔吐,并按照入職日期降序排序
 SELECT
    ename,
    hiredate,
    job
FROM
    emp
WHERE
    (
        hiredate BETWEEN '1981-01-01'
        AND '1983-01-01'
    )
AND (
    job LIKE 'SALES%'
    OR job LIKE 'MAN%'
)
ORDER BY
    hiredate DESC;

  • 查詢?nèi)肼毴掌谧钤绲那?名員工姓名扎筒,入職日期。
SELECT
    ename,
    hiredate
FROM
    emp
ORDER BY
    hiredate
LIMIT 5;

  • 查詢20號(hào)部門下入職日期最早的前2名員工姓名酬姆,入職日期嗜桌。
SELECT
    ename,
    hiredate
FROM
    emp
WHERE
    deptno = 20
ORDER BY
    hiredate
LIMIT 2;

  • 按照每頁(yè)顯示5條記錄,分別查詢第1頁(yè)辞色,第2頁(yè)骨宠,第3頁(yè)信息,
    要求顯示員工姓名相满、入職日期层亿、部門編號(hào)。
SELECT
    ename,
    hiredate,
    deptno
FROM
    emp
LIMIT 0,
 5;

SELECT
    ename,
    hiredate,
    deptno
FROM
    emp
LIMIT 5,
 5;

SELECT
    ename,
    hiredate,
    deptno
FROM
    emp
LIMIT 10,
 5;

  • 查詢?nèi)肼殨r(shí)間在1982-7-9之后立美,并且不從事SALESMAN工作的員工姓名匿又、入職時(shí)間、職位建蹄。
SELECT
    ename,
    hiredate,
    job
FROM
    emp
WHERE
    hiredate > '1982-07-09'
AND job <> 'SALESMAN';

  • 查詢員工姓名的第三個(gè)字母是a的員工姓名碌更。
SELECT
    ename
FROM
    emp
WHERE
    ename LIKE '__a%';

  • 查詢除了10、20號(hào)部門以外的員工姓名洞慎、部門編號(hào)痛单。
SELECT
    ename,
    deptno
FROM
    emp
WHERE
    deptno NOT IN (10, 20);

  • 查詢部門號(hào)為30號(hào)員工的信息,先按工資降序排序劲腿,再按姓名升序排序旭绒。
SELECT
    *
FROM
    emp
WHERE
    deptno = 30
ORDER BY
    sal DESC,
    ename;

  • 查詢工資大于等于4500并且部門為10或者20的員工的姓名\工資、部門編號(hào)焦人。
SELECT
    ename,
    sal,
    deptno
FROM
    emp
WHERE
    sal >= 4500
AND deptno IN (10, 20);

  • 寫(xiě)一個(gè)查詢挥吵,顯示所有員工姓名,部門編號(hào)垃瞧,部門名稱蔫劣。
SELECT
    e.ename,
    e.empno,
    e.job
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno;

  • 寫(xiě)一個(gè)查詢坪郭,顯示所有工作在CHICAGO并且獎(jiǎng)金不為空的員工姓名个从,工作地點(diǎn),獎(jiǎng)金
SELECT
    e.ename,
    d.loc,
    e.comm
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno
AND d.loc = 'CHICAGO'
AND comm IS NOT NULL;

  • 寫(xiě)一個(gè)查詢,顯示所有姓名中含有A字符的員工姓名嗦锐,工作地點(diǎn)嫌松。
SELECT
    e.ename,
    d.loc
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno
AND e.ename LIKE '%A%';

  • 查詢每個(gè)員工的姓名和直接上級(jí)姓名
SELECT
    w.ename 員工姓名,
    m.ename 領(lǐng)導(dǎo)姓名
FROM
    emp w,
    emp m
WHERE
    w.mgr = m.empno;

  • 查詢所有雇員姓名,部門編號(hào)奕污,部門名稱萎羔,包括沒(méi)有部門的員工也要顯示出來(lái)(左外連接)
SELECT
    e.ename,
    e.deptno,
    d.dname
FROM
    emp e
LEFT OUTER JOIN dept d ON (e.deptno = d.deptno);

  • 查詢所有雇員姓名,部門編號(hào)碳默,部門名稱贾陷,包括沒(méi)有員工的部門也要顯示出來(lái) (右外連接)
SELECT
    e.ename,
    e.deptno,
    d.dname
FROM
    emp e
RIGHT OUTER JOIN dept d ON (e.deptno = d.deptno);

  • 創(chuàng)建一個(gè)員工表和部門表的交叉連接。
SELECT
    e.ename,
    e.deptno,
    d.deptno
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
    hiredate > '1980-05-01';

  • 使用左連接该抒,查詢每個(gè)員工的姓名慌洪,經(jīng)理姓名,沒(méi)有經(jīng)理的King也要顯示出來(lái)凑保。
SELECT
    w.ename,
    m.ename
FROM
    emp w
LEFT JOIN emp m ON w.mgr = m.empno;

  • 使用右連接冈爹,查詢每個(gè)員工的姓名,經(jīng)理姓名欧引,沒(méi)有經(jīng)理的King也要顯示出來(lái)频伤。
SELECT
    w.ename,
    m.ename
FROM
    emp m
RIGHT JOIN emp w ON w.mgr = m.empno;

  • 顯示員工SMITH的姓名,部門名稱芝此,直接上級(jí)名稱
SELECT
    w.ename 員工姓名,
    m.ename 領(lǐng)導(dǎo)姓名,
    d.dname 部門名稱
FROM
    emp w,
    emp m,
    dept d
WHERE
    w.mgr = m.empno
AND w.deptno = d.deptno
AND w.ename = 'SMITH';

  • 顯示員工姓名剂买,部門名稱,工資癌蓖,工資級(jí)別瞬哼,要求工資級(jí)別大于4級(jí)。
SELECT
    e.ename,
    d.dname,
    e.sal,
    s.grade
FROM
    emp e,
    dept d,
    salgrade s
WHERE
    e.deptno = d.deptno
AND e.sal BETWEEN s.losal
AND s.hisal
AND s.grade > 4;

  • 顯示員工KING和FORD管理的員工姓名及其經(jīng)理姓名租副。
SELECT
    e.ename AS '管理的員工姓名',
    m.ename AS '員工姓名',
    p.ename AS '經(jīng)理姓名'
FROM
    emp e,
    emp m
LEFT OUTER JOIN emp p ON (m.mgr = p.empno)
WHERE
    m.ename IN ('KING', 'FORD')
AND e.mgr = m.empno;

  • 顯示員工姓名坐慰,參加工作時(shí)間,經(jīng)理名用僧,參加工作時(shí)間结胀,要求參加時(shí)間比經(jīng)理早。
SELECT
    w.ename 員工姓名,
    m.ename 經(jīng)理姓名,
    w.hiredate 員工入職時(shí)間,
    m.hiredate 經(jīng)理入職時(shí)間
FROM
    emp w,
    emp m
WHERE
    w.mgr = m.empno
AND w.hiredate > m.hiredate;

  • 查詢部門30有多少個(gè)員工領(lǐng)取獎(jiǎng)金
SELECT
    COUNT(comm)
FROM
    emp
WHERE
    deptno = 30;

  • 查詢?nèi)肼毴掌谧钤绾妥钔淼娜掌?/li>
SELECT
    MIN(hirdate),
    MAX(HIREDATE)
FROM
    emp

  • 查詢職位以SALES開(kāi)頭的所有員工平均工資责循、最低工資糟港、最高工資、工資和院仿。
SELECT
    AVG(SAL) 平均工資,
    MIN(SAL) 最低工資,
    MAX(SAL) 最高工資,
    SUM(SAL) 工資和
FROM
    emp
WHERE
    JOB LIKE 'SALES%'

  • IFNULL 函數(shù)可以使分組函數(shù)強(qiáng)制包含含有空值的記錄
SELECT
    COUNT(IFNULL(COMM,0))
FROM
    emp;

  • 所有員工的平均獎(jiǎng)金
SELECT
    AVG(IFNULL(COMM,0))
FROM
    emp;

  • 有獎(jiǎng)金的平均獎(jiǎng)金
SELECT
    AVG(COMM)
FROM
    emp;

  • 查詢部門20的員工秸抚,每個(gè)月的工資總和及平均工資速和。
SELECT
    AVG(sal) 平均工資,
    SUM(sal) 工資和
FROM
    emp
WHERE
    deptno = 20;

  • 查詢工作在CHICAGO的員工人數(shù),最高工資及最低工資剥汤。
SELECT
    COUNT(m.empno) 員工人數(shù),
    MAX(sal) 最高工資,
    MIN(sal) 最低工資
FROM
    emp m,
    dept d
WHERE
    m.deptno = d.DEPTNO
AND d.loc = 'CHICAGO';

  • 查詢員工表中一共有幾種崗位類型
SELECT
    COUNT(DISTINCT JOB)
FROM
    emp;
group by 語(yǔ)句

  • 查詢每個(gè)部門的部門編號(hào)颠放, 平均工資
SELECT
    deptno,
    avg(sal)
FROM
    emp
GROUP BY
    deptno;

  • 查詢每個(gè)部門的部門編號(hào), 每個(gè)部門的最低工資
SELECT
    deptno,
    min(sal)
FROM
    emp
GROUP BY
    deptno;

  • 查詢每個(gè)部門的部門編號(hào)吭敢, 每個(gè)部門的最高工資
SELECT
    deptno,
    max(sal)
FROM
    emp
GROUP BY
    deptno;

  • 查詢每個(gè)部門每個(gè)崗位的工資總和
SELECT
    deptno,
    job,
    sum(sal)
FROM
    emp
GROUP BY
    deptno,
    job;

  • 查詢每個(gè)部門的部門編號(hào)碰凶,部門名稱,部門人數(shù)鹿驼,最高工資欲低,最低工資,工資總和畜晰,平均工資伸头。
SELECT
    d.DEPTNO 部門編號(hào),
    d.DNAME 部門名稱,
    COUNT(*) 部門人數(shù),
    MAX(e.SAL) 最高工資,
    MIN(e.SAL) 最低工資,
    SUM(e.SAL) 工資總和,
    AVG(e.SAL) 平均工資
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.DEPTNO
GROUP BY
    e.DEPTNO, d.DNAME;

  • 查詢每個(gè)部門,每個(gè)崗位的部門編號(hào)舷蟀,部門名稱恤磷,崗位名稱,部門人數(shù)野宜,最高工資扫步,最低工資,工資總和匈子,平均工資河胎。
SELECT
    d.DEPTNO 部門編號(hào),
    d.DNAME 部門名稱,
    e.JOB 崗位名稱,
    COUNT(*) 部門人數(shù),
    MAX(e.SAL) 最高工資,
    MIN(e.SAL) 最低工資,
    SUM(e.SAL) 工資總和,
    AVG(e.SAL) 平均工資
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.DEPTNO
GROUP BY
    d.DEPTNO,d.DNAME, e.JOB;

  • 查詢每個(gè)經(jīng)理所管理的人數(shù),經(jīng)理編號(hào)虎敦,經(jīng)理姓名游岳,要求包括沒(méi)有經(jīng)理的人員信息。
SELECT
    COUNT(*) 管理人數(shù),
    m.EMPNO 經(jīng)理編號(hào),
    m.ENAME 經(jīng)理姓名
FROM
    emp w
LEFT OUTER JOIN emp m ON w.MGR = m.EMPNO
GROUP BY
    m.EMPNO,
    m.ENAME

  • 查詢每個(gè)部門最高薪水大于2900的部門編號(hào)其徙,最高工資
SELECT
    e.DEPTNO,
    MAX(e.sal)
FROM
    emp e
GROUP BY
    e.DEPTNO
HAVING
    MAX(e.SAL) > 2900

  • 查詢每個(gè)工種胚迫, 工資總和, 并且工作不是以 SALE開(kāi)頭的且每個(gè)工種的工資和大于5000時(shí)輸出唾那,并按照結(jié)果的工資總數(shù)進(jìn)行升序排序
SELECT
    job 工種, 
    SUM(sal) 工資總和 
FROM
    emp
WHERE
    job NOT LIKE 'SALES%'
GROUP BY
    job
HAVING
    SUM(sal) > 5000
ORDER BY
    SUM(sal);

  • 查詢部門人數(shù)大于2的部門編號(hào)访锻,部門名稱,部門人數(shù)闹获。
SELECT
    e.DEPTNO 部門編號(hào),
    d.DNAME 部門名稱,
    COUNT(*) 部門人數(shù)
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.DEPTNO
GROUP BY
    e.DEPTNO
HAVING
    COUNT(*) > 2

  • 查詢部門平均工資大于2000期犬,且人數(shù)大于2的部門編號(hào),部門名稱避诽,部門人數(shù)龟虎,部門平均工資,并按照部門人數(shù)升序排序沙庐。
SELECT
    e.DEPTNO 部門編號(hào),
    d.DNAME 部門名稱,
    COUNT(*) 部門人數(shù),
    AVG(e.SAL) 部門平均工資
FROM
    emp e,
    dept d
WHERE
    e.DEPTNO = d.DEPTNO
GROUP BY
    e.DEPTNO
HAVING
    (COUNT(*) > 2)
AND (AVG(e.SAL) > 2000)
ORDER BY
    3

  • 查詢工資比Jones工資高的員工信息
SELECT
    *
FROM
    emp e
WHERE
    e.SAL > ( SELECT e.SAL from emp e WHERE e.ENAME = 'JONES');

  • 查詢工資最低的員工姓名
SELECT
    e.ENAME
FROM
    emp e
WHERE
    e.SAL = (SELECT MIN(e.sal) from emp e);

  • 顯示和工號(hào)7369從事相同工作并且工資大于7876的員工姓名和工作
SELECT e.ENAME, e.JOB
from emp e
WHERE
    e.JOB = (SELECT JOB FROM emp WHERE EMPNO = 7369) and 
    e.sal > (SELECT SAL FROM emp WHERE EMPNO = 7876);

  • 查詢部門最低工資比20部門最低工資高的部門編號(hào)及最低工資
SELECT e.DEPTNO 部門編號(hào) ,MIN(e.SAL)
from emp e
GROUP BY e.DEPTNO
HAVING
MIN(e.SAL) > (SELECT MIN(sal) from emp WHERE DEPTNO = 20) 

  • 查詢?nèi)肼毴掌诒?0部門任意一個(gè)員工晚的員工姓名鲤妥、入職日期佳吞,不包括10部門員工
SELECT
    e.ename AS '員工姓名',
    e.hiredate AS '入職日期'
FROM
    emp e
WHERE
    e.deptno <> 10
AND e.hiredate > ANY (
    SELECT
        hiredate
    FROM
        emp
    WHERE
        deptno = 10
);

  • 查詢?nèi)肼毴掌诒?0部門所有員工晚的員工姓名、入職日期旭斥,不包括10部門員工
SELECT
    e.ename AS '員工姓名',
    e.hiredate AS '入職日期'
FROM
    emp e
WHERE
    e.empno <> 10
AND e.hiredate > ALL (
    SELECT
        hiredate
    FROM
        emp
    WHERE
        deptno = 10
);

  • 查詢職位和10部門任意一個(gè)員工職位相同的員工姓名容达,職位古涧,不包括10部門員工
SELECT
    e.ename AS '員工姓名',
    e.job AS '職位'
FROM
    emp e
WHERE
    e.deptno <> 10
AND e.job = ANY (
    SELECT
        job
    FROM
        emp
    WHERE
        deptno = 10
);

  • 查詢部門平均工資在2500元以上的部門名稱及平均工資垂券。
    
    
SELECT
    d.dname AS '部門名稱',
    avg(e.sal) AS '平均工資'
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno
GROUP BY
    e.deptno
HAVING
    avg(e.sal) > 2500;

  • 查詢員工崗位中不是以“SA”開(kāi)頭并且平均工資在2500元以上的崗位及平均工資,并按平均工資降序排序羡滑。
SELECT
    e.job AS '崗位',
    avg(e.sal) AS '平均工資'
FROM
    emp e
WHERE
    e.job NOT LIKE 'SA%'
GROUP BY
    e.job
HAVING
    avg(e.sal) > 2500
ORDER BY
    2 DESC;

  • 查詢部門人數(shù)在2人以上的部門名稱菇爪、最低工資、最高工資柒昏。
SELECT
    d.dname AS '部門名稱',
    min(e.sal) AS '最低工資',
    max(e.sal) AS '最高工資'
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno
GROUP BY
    d.deptno
HAVING
    count(e.empno) > 2;

  • 查詢崗位不為SALESMAN凳宙,工資和大于等于2500的崗位及每種崗位的工資和。
SELECT
    e.job AS '崗位',
    sum(e.sal) AS '工資和'
FROM
    emp e
WHERE
    e.job <> 'SALESMAN'
GROUP BY
    e.job
HAVING
    sum(e.sal) > 2500;

  • 顯示經(jīng)理號(hào)碼和經(jīng)理姓名职祷,這個(gè)經(jīng)理所管理員工的最低工資氏涩,沒(méi)有經(jīng)理的KING也要顯示,不包括最低工資小于3000的有梆,按最低工資由高到低排序
SELECT
    m.empno AS '經(jīng)理編號(hào)',
    m.ename AS '經(jīng)理姓名',
    min(w.sal) AS '管理員工的最低工資'
FROM
    emp w
LEFT OUTER JOIN emp m ON (w.mgr = m.empno)
GROUP BY
    m.empno
HAVING
    min(w.sal) > 3000
ORDER BY
    3 DESC;

  • 查詢工資高于編號(hào)為7782的員工工資是尖,并且和7369號(hào)員工從事相同工作的員工的編號(hào)、姓名及工資泥耀。
SELECT
    e.empno AS '員工編號(hào)',
    e.ename AS '員工姓名',
    e.sal AS '員工工資'
FROM
    emp e
WHERE
    e.sal > (
        SELECT
            sal
        FROM
            emp
        WHERE
            empno = 7782
    )
AND e.job = (
    SELECT
        job
    FROM
        emp
    WHERE
        empno = 7369
);

  • 查詢工資最高的員工姓名和工資饺汹。
SELECT
    e.ename AS '員工姓名',
    e.sal AS '員工工資'
FROM
    emp e
ORDER BY
    e.sal DESC
LIMIT 1;

SELECT
    e.ename AS '員工姓名',
    e.sal AS '員工工資'
FROM
    emp e
WHERE
    e.sal = (SELECT max(sal) FROM emp);

  • 查詢部門最低工資高于10號(hào)部門最低工資的部門的編號(hào)、名稱及部門最低工資痰催。
SELECT
    d.deptno AS '部門編號(hào)',
    d.dname AS '部門名稱',
    min(e.sal) AS '部門最低工資'
FROM
    emp e,
    dept d
WHERE
    e.deptno = d.deptno
GROUP BY
    d.deptno
HAVING
    min(e.sal) > (
        SELECT
            min(sal)
        FROM
            emp
        WHERE
            deptno = 10
    );

  • 查詢員工工資為其部門最低工資的員工的編號(hào)和姓名及工資兜辞。
SELECT
    e.empno AS '員工編號(hào)',
    e.ename AS '員工姓名',
    e.sal AS '員工工資'
FROM
    emp e
WHERE
    e.sal IN (
        SELECT
            min(e.sal)
        FROM
            emp e
        GROUP BY
            e.deptno
    );

  • 顯示經(jīng)理是KING的員工姓名,工資夸溶。
SELECT
    w.ename AS '員工姓名',
    w.sal AS '員工工資'
FROM
    emp w,
    emp m
WHERE
    w.mgr = m.empno
AND m.ename = 'KING';

SELECT
    w.ename AS '員工姓名',
    w.sal AS '員工工資'
FROM
    emp w
WHERE
    w.mgr = (
        SELECT
            empno
        FROM
            emp
        WHERE
            ename = 'KING'
    );

  • 顯示比員工SMITH參加工作時(shí)間晚的員工姓名逸吵,工資,參加工作時(shí)間缝裁。
SELECT
    w.ename AS '員工姓名',
    w.sal AS '員工工資',
    w.hiredate AS '參加工作時(shí)間'
FROM
    emp w
WHERE
    w.hiredate > (
        SELECT
            hiredate
        FROM
            emp
        WHERE
            ename = 'SIMTH'
    );

  • 主鍵約束(PRIMARY KEY)
CREATE TABLE classes (
    classes_id INT PRIMARY KEY,
    classes_name VARCHAR (10),
    classes_dept VARCHAR (10)
);

  • 外鍵約束(FOREIGN KEY)
CREATE TABLE teacher (
    teacher_id INT PRIMARY KEY,
    teacher_name VARCHAR (10),
    cid INT,
    FOREIGN KEY (cid) REFERENCES classes (classes_id)
);

學(xué)校想做一個(gè)選課系統(tǒng)胁塞,其中涉及到課程表,學(xué)生表压语,請(qǐng)分別創(chuàng)建這兩個(gè)表啸罢,自己思考表中應(yīng)有的列及數(shù)據(jù)類型。
學(xué)校有一個(gè)選課系統(tǒng)胎食,其中包括如下關(guān)系模式:
系(系編號(hào): 主鍵扰才,系名稱: 唯一鍵,系主任: 非空約束厕怜,系所在校去:默認(rèn)為渾南區(qū))
班級(jí)(班級(jí)編號(hào): 主鍵衩匣,班級(jí)名稱: 唯一鍵蕾总,所屬系: 外鍵)
創(chuàng)建學(xué)生表,包含如下屬性:
學(xué)號(hào) 定長(zhǎng)字符型 10位 主鍵
姓名 變長(zhǎng)字符型 20位 非空
性別 定長(zhǎng)字符型 2位
出生日期 日期型
所在班級(jí)

CREATE TABLE
IF NOT EXISTS xi (
    XINumber VARCHAR (20) NOT NULL PRIMARY KEY,
    XIName VARCHAR (20) NOT NULL UNIQUE,
    XIZhuren VARCHAR (20) NOT NULL,
    Xiaoqu enum ('渾南區(qū)')
);

CREATE TABLE
IF NOT EXISTS class (
    classid VARCHAR (20) NOT NULL PRIMARY KEY,
    cname VARCHAR (20) NOT NULL UNIQUE,
    xiname VARCHAR (10) NOT NULL,
    FOREIGN KEY (xiname) REFERENCES xi (xiname)
);

CREATE TABLE
IF NOT EXISTS student (
    xh VARCHAR (20) NOT NULL PRIMARY KEY,
    xm VARCHAR (20) NOT NULL,
    gender CHAR (2),
    birthday DATE,
    cname VARCHAR (20) NOT NULL UNIQUE,
    FOREIGN KEY (cname) REFERENCES class (cname)
);

  • 創(chuàng)建與dept表相同表結(jié)構(gòu)的表dtest琅捏,將dept表中部門編號(hào)在40之前的信息插入該表生百。
CREATE TABLE dtest SELECT
    *
FROM
    dept
WHERE
    DEPTNO < 40;

  • 創(chuàng)建與emp表結(jié)構(gòu)相同的表empl,并將其部門編號(hào)為前30號(hào)的員工信息復(fù)制到empl表柄延。
CREATE TABLE empl SELECT
    *
FROM
    emp
WHERE
    DEPTNO < 30;

  • 向部門表新增一個(gè)部門蚀浆,部門編號(hào)為50,部門名稱為HR搜吧,工作地點(diǎn)為SY市俊。
INSERT INTO dept
VALUES
    (50, "HR", "SY");

  • 向部門表新增一個(gè)部門,部門編號(hào)為60滤奈,部門名稱為MARKET摆昧。
INSERT INTO dept
VALUES
    (60, "MARKET", "");

  • 插入日期值
INSERT INTO emp
VALUES
    (
        8889,
        '李會(huì)長(zhǎng)',
        '小青年',
        NULL,
        '1888-01-01
',
        4000,
        12,
        50
    );

  • 向員工表中新增一個(gè)員工,員工編號(hào)為8888蜒程,姓名為BOB绅你,崗位為CLERK,經(jīng)理為號(hào)7788昭躺,入職日期為1985-03-03忌锯,薪資3000,獎(jiǎng)金和部門為空窍仰。
INSERT INTO emp
VALUES
    (
        8899,
        'BOB',
        'clerk',
        7788,
        '1985-03-03',
        3000,
        NULL,
        NULL
    );

  • 批量插入數(shù)據(jù)
INSERT INTO EMP(EMPNO, ENAME, JOB, SAL) 
VALUES 
('8881', '張三', '部門經(jīng)理', 6000),
('8882', '李四', '職員', 3000),
('8883', '王五', '職員', 3500),
('8884' ,'趙六', '部門經(jīng)理', 6500),
('8885', '高七', '職員', 2500),
('8886', '馬八', '職員', 3100),
('8887', '錢九', '部門經(jīng)理', 5000),
('8888', '孫十',  '職員', 2800);

創(chuàng)建一個(gè)manager表

CREATE TABLE manager AS SELECT
    *
FROM
    emp
WHERE
    1 = 0;

  • 插入數(shù)據(jù)汉规, 全部工作為salesman的數(shù)據(jù)
INSERT INTO manager SELECT
    *
FROM
    emp
WHERE
    job = 'SALESMAN';

  • 修改部門20的員工信息,把82年之后入職的員工入職日期向后調(diào)整10天
UPDATE emp
SET hiredate = DATE_ADD(hiredate, INTERVAL + 10 DAY)
WHERE
    deptno = 20
AND hiredate > '1981-12-31';

  • 修改獎(jiǎng)金為null的員工驹吮,獎(jiǎng)金設(shè)置為0
UPDATE emp
SET comm = 0
WHERE
    comm IS NULL;

  • 修改工作地點(diǎn)在NEW YORK或CHICAGO的員工工資针史,工資增加500
UPDATE emp
SET sal = sal + 500
WHERE
    deptno IN (
        SELECT
            deptno
        FROM
            dept
        WHERE
            loc IN ('NEW YORK', 'CHICAGO')
    );

  • 使用CREATE TABLE emp_back as SELECT - FROM EMP WHERE 1=0,創(chuàng)建emp_back表,拷貝下來(lái)即可碟狞。
CREATE TABLE emp_back as SELECT * FROM EMP WHERE 1=0

  • 把emp表中入職日期大于1982年1月1日之前的員工信息復(fù)制到emp_back表中
create table emp_back  SELECT * from emp WHERE hiredate > '1982-01-01';

  • 刪除經(jīng)理編號(hào)為7566的員工記錄
delete from emp_copy where mgr=7566;

  • 刪除工作在NEW YORK的員工記錄
DELETE
FROM
    emp_copy
WHERE
    deptno IN (
        SELECT
            DEPTNO
        FROM
            dept
        WHERE
            loc = 'NEW YORK'
    )

  • 刪除工資大于所在部門平均工資的員工記錄
DELETE FROM emp_copy WHERE empno in (select * from (SELECT
    a.empno
FROM
    emp_copy AS a,
    (
        SELECT
            deptno,
            AVG(sal) AS avgsal
        FROM
            emp_copy
        GROUP BY
            deptno
    ) as b
WHERE 
a.deptno = b.deptno
AND a.sal > b.avgsal) as query)
delete from emp22 where sal>(select avg(sal) from emp e where emp22.deptno=e.deptno);

  • 1啄枕、手動(dòng)開(kāi)啟事務(wù)
start transaction;

  • 2、執(zhí)行一些操作
    給張三賬戶轉(zhuǎn) 50塊錢

    image
    image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末族沃,一起剝皮案震驚了整個(gè)濱河市频祝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脆淹,老刑警劉巖常空,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異盖溺,居然都是意外死亡漓糙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門烘嘱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昆禽,“玉大人蝗蛙,你說(shuō)我怎么就攤上這事∽肀睿” “怎么了捡硅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)盗棵。 經(jīng)常有香客問(wèn)我壮韭,道長(zhǎng),這世上最難降的妖魔是什么漾根? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任泰涂,我火速辦了婚禮鲫竞,結(jié)果婚禮上辐怕,老公的妹妹穿的比我還像新娘。我一直安慰自己从绘,他們只是感情好寄疏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著僵井,像睡著了一般陕截。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上批什,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天农曲,我揣著相機(jī)與錄音,去河邊找鬼驻债。 笑死乳规,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的合呐。 我是一名探鬼主播暮的,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼淌实!你這毒婦竟也來(lái)了冻辩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拆祈,失蹤者是張志新(化名)和其女友劉穎恨闪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體放坏,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咙咽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轻姿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犁珠。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逻炊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出犁享,到底是詐尸還是另有隱情余素,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布炊昆,位于F島的核電站桨吊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凤巨。R本人自食惡果不足惜视乐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敢茁。 院中可真熱鬧佑淀,春花似錦、人聲如沸彰檬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)逢倍。三九已至捧颅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間较雕,已是汗流浹背碉哑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亮蒋,地道東北人扣典。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像宛蚓,于是被迫代替她去往敵國(guó)和親激捏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359