<meta charset="utf-8">
- 讓emp表中所員工的工資 + 200儡蔓, 同時(shí)顯示之前的工資和加薪之后的工資
SELECT
sal,
(sal + 200)
FROM
emp;
- 員工試用期6個(gè)月,轉(zhuǎn)正后月薪上調(diào)20%疼邀,請查詢出所有員工工作第一年的所有收入喂江,要求顯示列標(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的員工編號、職位规求、入職日期筐付。
SELECT
empno,
job,
hiredate
FROM
emp
WHERE
job = 'SALESMAN';
- 查詢1985年12月31日之前入職的員工姓名及入職日期。
SELECT
empno,
hiredate
FROM
emp
WHERE
hiredate < '1985-12-31';
- 查詢部門編號不在10部門的員工姓名阻肿、部門編號
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';
- 查詢月薪在3000到5000的員工姓名,月薪丛塌。
SELECT
ename,
sal
FROM
emp
WHERE
sal BETWEEN 3000
AND 5000;
- 查詢經(jīng)理編號為7902, 7566, 7788的員工姓名较解,經(jīng)理編號
SELECT
ename,
mgr
FROM
emp
WHERE
mgr IN (7902, 7566, 7788);
- 查詢員工姓名以W開頭的員工姓名。
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;
- 查詢工資超過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開頭的員工姓名玄糟、入職日期勿她、職位。
SELECT
ename,
hiredate,
job
FROM
emp
WHERE
hiredate BETWEEN '1981-01-01'
AND '1982-01-01'
AND job NOT LIKE 'SALES%';
- 查詢職位為SALESMAN或MANAGER阵翎,部門編號為10或者20逢并,
姓名包含A的員工姓名、職位郭卫、部門編號砍聊。
SELECT
ename,
job,
deptno
FROM
emp
WHERE
job IN ('SALESMAN', 'MANAGER')
AND deptno IN (10, 20)
AND ename LIKE 'A';
- 查詢部門在20或30的員工姓名,部門編號箱沦,并按照工資升序排序辩恼。
SELECT
ename,
deptno,
sal
FROM
emp
WHERE
deptno IN (20, 30)
ORDER BY
sal;
- 查詢工資在2000-3000之間,部門不在10號的員工姓名谓形,部門編號灶伊,工資,并按照部門升序寒跳,工資降序排序聘萨。
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開頭的員工姓名童太,入職日期米辐,職位,并按照入職日期降序排序
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號部門下入職日期最早的前2名員工姓名,入職日期爆惧。
SELECT
ename,
hiredate
FROM
emp
WHERE
deptno = 20
ORDER BY
hiredate
LIMIT 2;
- 按照每頁顯示5條記錄狸页,分別查詢第1頁,第2頁扯再,第3頁信息芍耘,
要求顯示員工姓名、入職日期熄阻、部門編號斋竞。
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號部門以外的員工姓名乒省、部門編號。
SELECT
ename,
deptno
FROM
emp
WHERE
deptno NOT IN (10, 20);
- 查詢部門號為30號員工的信息畦木,先按工資降序排序,再按姓名升序排序砸泛。
SELECT
*
FROM
emp
WHERE
deptno = 30
ORDER BY
sal DESC,
ename;
- 查詢工資大于等于4500并且部門為10或者20的員工的姓名\工資十籍、部門編號。
SELECT
ename,
sal,
deptno
FROM
emp
WHERE
sal >= 4500
AND deptno IN (10, 20);
- 寫一個(gè)查詢唇礁,顯示所有員工姓名勾栗,部門編號,部門名稱盏筐。
SELECT
e.ename,
e.empno,
e.job
FROM
emp e,
dept d
WHERE
e.deptno = d.deptno;
- 寫一個(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;
- 寫一個(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è)員工的姓名和直接上級姓名
SELECT
w.ename 員工姓名,
m.ename 領(lǐng)導(dǎo)姓名
FROM
emp w,
emp m
WHERE
w.mgr = m.empno;
- 查詢所有雇員姓名宿亡,部門編號,部門名稱纳令,包括沒有部門的員工也要顯示出來(左外連接)
SELECT
e.ename,
e.deptno,
d.dname
FROM
emp e
LEFT OUTER JOIN dept d ON (e.deptno = d.deptno);
- 查詢所有雇員姓名挽荠,部門編號,部門名稱平绩,包括沒有員工的部門也要顯示出來 (右外連接)
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)理姓名来累,沒有經(jīng)理的King也要顯示出來。
SELECT
w.ename,
m.ename
FROM
emp w
LEFT JOIN emp m ON w.mgr = m.empno;
- 使用右連接窘奏,查詢每個(gè)員工的姓名嘹锁,經(jīng)理姓名,沒有經(jīng)理的King也要顯示出來着裹。
SELECT
w.ename,
m.ename
FROM
emp m
RIGHT JOIN emp w ON w.mgr = m.empno;
- 顯示員工SMITH的姓名领猾,部門名稱,直接上級名稱
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';
- 顯示員工姓名,部門名稱摔竿,工資面粮,工資級別,要求工資級別大于4級继低。
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 員工名,m.ename 經(jīng)理名
from emp e
LEFT JOIN emp m
ON e.MGR=m.empno
WHERE m.ename in('KING','FORD');
- 顯示員工姓名,參加工作時(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開頭的所有員工平均工資柄驻、最低工資、最高工資焙压、工資和鸿脓。
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 語句
- 查詢每個(gè)部門的部門編號掀抹, 平均工資
SELECT
deptno,
avg(sal)
FROM
emp
GROUP BY
deptno;
- 查詢每個(gè)部門的部門編號虐拓, 每個(gè)部門的最低工資
SELECT
deptno,
min(sal)
FROM
emp
GROUP BY
deptno;
- 查詢每個(gè)部門的部門編號, 每個(gè)部門的最高工資
SELECT
deptno,
max(sal)
FROM
emp
GROUP BY
deptno;
- 查詢每個(gè)部門每個(gè)崗位的工資總和
SELECT
deptno,
job,
sum(sal)
FROM
emp
GROUP BY
deptno,
job;
- 查詢每個(gè)部門的部門編號傲武,部門名稱蓉驹,部門人數(shù),最高工資揪利,最低工資态兴,工資總和,平均工資疟位。
SELECT
d.DEPTNO 部門編號,
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è)崗位的部門編號,部門名稱甜刻,崗位名稱绍撞,部門人數(shù),最高工資得院,最低工資傻铣,工資總和,平均工資祥绞。
SELECT
d.DEPTNO 部門編號,
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)理編號鸭限,經(jīng)理姓名,要求包括沒有經(jīng)理的人員信息两踏。
SELECT
COUNT(*) 管理人數(shù),
m.EMPNO 經(jīng)理編號,
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的部門編號败京,最高工資
SELECT
e.DEPTNO,
MAX(e.sal)
FROM
emp e
GROUP BY
e.DEPTNO
HAVING
MAX(e.SAL) > 2900
- 查詢每個(gè)工種, 工資總和梦染, 并且工作不是以 SALE開頭的且每個(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的部門編號,部門名稱帕识,部門人數(shù)隧甚。
SELECT
e.DEPTNO 部門編號,
d.DNAME 部門名稱,
COUNT(*) 部門人數(shù)
FROM
emp e,
dept d
WHERE
e.DEPTNO = d.DEPTNO
GROUP BY
e.DEPTNO
HAVING
COUNT(*) > 2
- 查詢部門平均工資大于2000,且人數(shù)大于2的部門編號渡冻,部門名稱,部門人數(shù)忧便,部門平均工資族吻,并按照部門人數(shù)升序排序。
SELECT
e.DEPTNO 部門編號,
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);
- 顯示和工號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部門最低工資高的部門編號及最低工資
SELECT e.DEPTNO 部門編號 ,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”開頭并且平均工資在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)理號碼和經(jīng)理姓名,這個(gè)經(jīng)理所管理員工的最低工資让网,沒有經(jīng)理的KING也要顯示呀忧,不包括最低工資小于3000的,按最低工資由高到低排序
SELECT
m.empno AS '經(jīng)理編號',
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;
- 查詢工資高于編號為7782的員工工資溃睹,并且和7369號員工從事相同工作的員工的編號而账、姓名及工資。
SELECT
e.empno AS '員工編號',
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號部門最低工資的部門的編號福扬、名稱及部門最低工資腕铸。
SELECT
d.deptno AS '部門編號',
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
);
- 查詢員工工資為其部門最低工資的員工的編號和姓名及工資。
SELECT
e.empno AS '員工編號',
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'
);