1. ์ด๋ฆ์ด ALLEN์ธ ์ฌ์๊ณผ ๊ฐ์ ์ ๋ฌด๋ฅผ ํ๋ ์ฌ๋์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ ๋ฌด, ๊ธ์ฌ ์ถ์ถ
SELECT empno, ename, job, sal
FROM emp
WHERE job = (SELECT job FROM emp WHERE ename='ALLEN');
2. EMP ํ
์ด๋ธ์ ์ฌ์๋ฒํธ๊ฐ 7521์ธ ์ฌ์๊ณผ ์
๋ฌด๊ฐ ๊ฐ๊ณ , ๊ธ์ฌ๊ฐ 7934๋ฒ ์ฌ์๋ณด๋ค ๋ง์ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๋ด๋น์
๋ฌด, ์
์ฌ์ผ, ๊ธ์ฌ ์ถ์ถ
SELECT ename, job, hiredate, sal
FROM emp
WHERE job = (SELECT job FROM emp WHERE empno=7521) AND
sal > (SELECT sal FROM emp WHERE empno=7934);
3. EMP ํ ์ด๋ธ์์ ๊ธ์ฌ์ ํ๊ท ๋ณด๋ค ์ ์ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ ๋ฌด, ๊ธ์ฌ, ๋ถ์๋ฒํธ ์ถ์ถ
SELECT empno, ename, job, sal, deptno
FROM emp
WHERE sal < (SELECT avg(sal) From emp);
4. 20๋ฒ ๋ถ์์ ์ต์๊ธ์ฌ๋ณด๋ค ๋ถ์๋ณ ์ต์๊ธ์ฌ๊ฐ ์์ ๋ถ์์ ๋ถ์๋ฒํธ, ์ต์ ๊ธ์ฌ ์ถ์ถ
SELECT MIN(sal)
FROM emp
GROUP BY deptno
HAVING MIN(sal) < (SELECT MIN(sal) FROM emp WHERE deptno=20);
5. ์
๋ฌด๋ณ ๊ธ์ฌ ํ๊ท ์ค, ๊ฐ์ฅ ์์ ๊ธ์ฌํ๊ท ์ ์
๋ฌด์ ๊ธ์ฌํ๊ท ์ถ์ถ
SELECT MIN(sal), job
FROM emp
GROUP BY job
HAVING AVG(sal) = (SELECT MIN(AVG(sal)) FROM emp GROUP BY job);
6. ์
๋ฌด๋ณ ์ต๋ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์
๋ฌด, ์
์ฌ์ผ, ๊ธ์ฌ, ๋ถ์๋ฒํธ ์ถ์ถ
SELECT *FROM EMP;
SELECT empno, ename, job, hiredate, sal, deptno
FROM emp
WHERE sal IN (SELECT MAX(sal) FROM emp GROUP BY job);
7. 30๋ฒ ๋ถ์์ ์ต์๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์๋ณด๋ค ๋ง์ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์
๋ฌด, ์
์ฌ์ผ, ๊ธ์ฌ, ๋ถ์๋ฒํธ, ๋จ 30๋ฒ ๋ถ์๋ ์ ์ธํ๊ณ ์ถ์ถ
SELECT empno, ename, hiredate, deptno
FROM emp
WHERE sal > (SELECT MIN(sal) FROM emp WHERE deptno=30)
AND deptno!=30;
8. ๊ธ์ฌ์ ๋ณด๋์ค๊ฐ 30๋ฒ ๋ถ์์ ์๋ ์ฌ์์ ๊ธ์ฌ์ ๋ณด๋์ค๊ฐ ๊ฐ์ ์ฌ์์ 30๋ฒ ๋ถ์์ ์ฌ์์ ์ ์ธํ๊ณ ์ถ์ถ
SELECT *
FROM emp
WHERE (sal, NVL(comm,0)) IN (SELECT sal, NVL(comm,0) FROM emp WHERE deptno=30)
AND deptno != 30;
9. BLAKE์ ๊ฐ์ ๋ถ์์ ์๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ๊ณผ ์
์ฌ์ผ์๋ฅผ ์ถ์ถ
SELECT ename, hiredate
FROM emp
WHERE deptno = (SELECT deptno FROM emp WHERE ename='BLAKE');
10. ํ๊ท ๊ธ์ฌ ์ด์์ ๋ฐ๋ ๋ชจ๋ ์ฌ์์ ๋ํด ์ฌ์์ ๋ฒํธ์ ์ด๋ฆ์ ๊ธ์ฌ๊ฐ ๋ง์ ์์๋ก ์ถ์ถ
SELECT empno, ename
FROM emp
WHERE sal > (SELECT AVG(sal) FROM emp)
ORDER BY sal DESC;
11. ์ด๋ฆ์ T๊ฐ ์๋ ์ฌ์์ด ๊ทผ๋ฌดํ๋ ๋ถ์์์ ๊ทผ๋ฌดํ๋ ๋ชจ๋ ์ฌ์์ ๋ํด ์ฌ์๋ฒํธ,์ด๋ฆ,๊ธ์ฌ๋ฅผ ์ถ๋ ฅ, ์ฌ์๋ฒํธ ์์๋ก ์ถ์ถ
SELECT empno, ename, sal
FROM emp
WHERE deptno IN (SELECT deptno FROM emp WHERE ename LIKE '%T%')
ORDER BY empno;
*๋ค๋ฅธ ๋ฐฉ๋ฒ (INSTR ํจ์)
INSTR(string, substring, position, occurrence)
INSTR('๋ฌธ์์ด ๋๋ ์นผ๋ผ๋ช
', '์ฐพ๊ณ ์ถ์ ๋ฌธ์์ด', ์์ ์์น, ์ฐพ์ ๋ฌธ์์ด์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ ๋ช ๋ฒ์งธ ๋ํ๋๋ ๋ฌธ์์ด์ธ์ง
* ๋ฐ๊ฒฌ ์ธ๋ฑ์ค๋ ์๋ต ๊ฐ๋ฅ, ์๋ตํ๋ฉด ๋ชจ๋ 1๋ก ๊ฐ์ฃผ
select deptno, empno, ename, sal from emp
where deptno in (select deptno from emp where instr(ename, 'T', 1, 1)!=0)
order by empno;
12. ๋ถ์์์น๊ฐ CHICAGO์ธ ๋ชจ๋ ์ฌ์์ ๋ํด ์ด๋ฆ,์
๋ฌด,๊ธ์ฌ ์ถ์ถ
SELECT ename, job, sal
FROM emp
WHERE deptno = (SELECT deptno FROM dept WHERE loc = 'CHICAGO');
13. KING์๊ฒ ๋ณด๊ณ ํ๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ๊ณผ ๊ธ์ฌ๋ฅผ ์ถ์ถ
SELECT ename, sal
FROM emp
WHERE mgr IN (SELECT empno FROM emp WHERE ename='KING');
14. FORD์ ์
๋ฌด์ ์๊ธ์ด ๊ฐ์ ์ฌ์์ ๋ชจ๋ ์ ๋ณด ์ถ์ถ
SELECT *
FROM emp
WHERE (job, sal) = (SELECT job, sal FROM emp WHERE ename = 'FORD');
15. ์
๋ฌด๊ฐ JONES์ ๊ฐ๊ฑฐ๋ ์๊ธ์ด FORD ์ด์์ธ ์ฌ์์ ์ด๋ฆ,์
๋ฌด,๋ถ์๋ฒํธ,๊ธ์ฌ ์ถ์ถ
SELECT ename, job, deptno, sal
FROM emp
WHERE job = (SELECT job FROM emp WHERE ename = 'JONES')
OR sal > (SELECT sal FROM emp WHERE ename = 'FROD');
16. SCOTT ๋๋ WARD์ ์๊ธ์ด ๊ฐ์ ์ฌ์์ ์ด๋ฆ,์
๋ฌด,๊ธ์ฌ๋ฅผ ์ถ์ถ
SELECT ename, job, sal
FROM emp
WHERE sal = (SELECT sal FROM emp WHERE ename = 'SCOTT')
OR sal = (SELECT sal FROM emp WHERE ename = 'WARD');
'๊ฐ์ธ๊ณต๋ถ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
09. Oracle ์ค๊ฐ์ฐ์ต๋ฌธ์ (0) | 2021.09.22 |
---|---|
08. Oracle ์ค๊ฐ์ฐ์ต๋ฌธ์ (0) | 2021.09.21 |
06. GROUP BY (0) | 2021.09.18 |
05. Function : ํจ์ (0) | 2021.09.17 |
04. Sequence : ์ํ์ค (0) | 2021.09.16 |