1> ์ง์ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT * FROM emp;
2> EMPํ
์ด๋ธ์์ ๊ฐ ์ฌ์์ ์ง์
, ์ฌ์๋ฒํธ, ์ด๋ฆ, ์
์ฌ์ผ์ ์ถ๋ ฅํ๋ผ.
SELECT job, empno, ename, hiredate
FROM emp;
3> EMPํ
์ด๋ธ์์ ์ง์
์ ์ถ๋ ฅํ๋, ๊ฐ ํญ๋ชฉ(ROW)๊ฐ ์ค๋ณต๋์ง ์๊ฒ ์ถ๋ ฅํ๋ผ.
SELECT DISTINCT job
FROM emp;
4> ๊ธ์ฌ๊ฐ 2850 ์ด์์ธ ์ฌ์์ ์ด๋ฆ ๋ฐ ๊ธ์ฌ๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT ename, sal
FROM emp
WHERE sal > 2850;
5> ์ฌ์๋ฒํธ๊ฐ 7566์ธ ์ฌ์์ ์ด๋ฆ ๋ฐ ๋ถ์๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT ename, deptno
FROM emp
WHERE empno = 7566;
6> ๊ธ์ฌ๊ฐ 1500์ด์ ~ 2850์ดํ์ ๋ฒ์์ ์ํ์ง ์๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ ๋ฐ ๊ธ์ฌ๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT ename, sal
FROM emp
WHERE sal NOT BETWEEN 1500 AND 2850;
7> 1981๋
2์ 20์ผ ~ 1981๋
5์ 1์ผ์ ์
์ฌํ ์ฌ์์ ์ด๋ฆ,์ง์
๋ฐ ์
์ฌ์ผ์ ์ถ๋ ฅํ๋ผ. (์
์ฌ์ผ์ ๊ธฐ์ค์ผ๋ก ํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ผ.)
SELECT ename, job, hiredate
FROM emp
WHERE hiredate BETWEEN '1981/02/20' AND '1981/05/01'
ORDER BY hiredate;
8> 10๋ฒ ๋ฐ 30๋ฒ ๋ถ์์ ์ํ๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ๊ณผ ๋ถ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋, ์ด๋ฆ์ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ผ.
SELECT ename, deptno
FROM emp
WHERE deptno IN (10, 30)
ORDER BY ename;
9> 10๋ฒ ๋ฐ 30๋ฒ ๋ถ์์ ์ํ๋ ๋ชจ๋ ์ฌ์ ์ค ๊ธ์ฌ๊ฐ 1500์ ๋๋ ์ฌ์์ ์ด๋ฆ ๋ฐ ๊ธ์ฌ๋ฅผ ์ถ๋ ฅํ๋ผ.
(๋จ ์ปฌ๋ผ๋ช
์ ๊ฐ๊ฐ employee ๋ฐ Monthly Salary๋ก ์ง์ ํ์์ค)
SELECT ename "employee", sal "Monthly Salary"
FROM emp
WHERE deptno IN(10,30)
AND sal > 1500;
10> ์์ฌ๊ฐ ์๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ ๋ฐ ์ง์๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT e.ename, e.job
FROM emp e
WHERE NOT EXISTS (SELECT 1 FROM emp m WHERE e.mgr = m.empno);
11> ์ปค๋ฏธ์
์ ๋ฐ๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ, ๊ธ์ฌ ๋ฐ ์ปค๋ฏธ์
์ ์ถ๋ ฅํ๋, ๊ธ์ฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ผ.
SELECT ename, sal, comm
FROM emp
WHERE comm IS NOT NULL
AND comm !=0
ORDER BY sal DESC;
12> ์ด๋ฆ์ ์ธ ๋ฒ์งธ ๋ฌธ์๊ฐ A์ธ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ผ.
SELECT ename
FROM emp
WHERE ename LIKE '__A%';
13> ์ด๋ฆ์ L์ด ๋ ๋ฒ ๋ค์ด๊ฐ๋ฉฐ ๋ถ์ 30์ ์ํด์๋ ์ฌ์์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ผ.
SELECT ename
FROM emp
WHERE deptno = 30
AND ename LIKE '%L%L%';
14> ์ง์
์ด Clerk ๋๋ Analyst ์ด๋ฉด์ ๊ธ์ฌ๊ฐ 1000,3000,5000 ์ด ์๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ, ์ง์
๋ฐ ๊ธ์ฌ๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT ename, job, sal
FROM emp
WHERE job IN ('CLERK', 'ANALYST')
AND sal NOT IN (1000, 3000, 5000);
15> ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ธ์ฌ ๊ทธ๋ฆฌ๊ณ 15%์ธ์๋ ๊ธ์ฌ๋ฅผ ์ ์๋ก ํ์ํ๋ ์ปฌ๋ผ๋ช
์ New Salary๋ก ์ง์ ํ์ฌ ์ถ๋ ฅํ๋ผ.
SELECT empno, ename, sal, sal*1.15 "New Salary"
FROM emp;
16> 15๋ฒ ๋ฌธ์ ์ ๋์ผํ ๋ฐ์ดํ์์ ๊ธ์ฌ ์ธ์๋ถ(์ ๊ธ์ฌ์์ ์ด์ ๊ธ์ฌ๋ฅผ ๋บ ๊ฐ)์ ์ถ๊ฐํด์ ์ถ๋ ฅํ๋ผ.(์ปฌ๋ผ๋ช
์ Increase๋ก ํ๋ผ).
SELECT empno, ename, sal, sal*1.15 "New Salary", (sal*1.15)-sal "Increas"
FROM emp;
18> ๋ชจ๋ ์ฌ์์ ์ด๋ฆ(์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก, ๋๋จธ์ง ๊ธ์๋ ์๋ฌธ์๋ก ํ์) ๋ฐ ์ด๋ฆ ๊ธธ์ด๋ฅผ ํ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์ปฌ๋ผ ๋ณ์นญ์ ์ ๋นํ ๋ฃ์ด์ ์ถ๋ ฅํ๋ผ.
SELECT INITCAP(ename) "์ฌ์๋ช
", LENGTH (ename)
FROM emp;
* UPPER : ๋๋ฌธ์ ์ํ๋ฒณ์ผ๋ก ๋ณ๊ฒฝํ๋ ํจ์ = UCASE
* LOWER : ์๋ฌธ์ ์ํ๋ฒณ์ผ๋ก ๋ณ๊ฒฝํ๋ ํจ์
* INITCAP : ๋งจ ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ณ๊ฒฝ (Oracle ํ์ )
* LENGTH : ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ ํจ์
19> ์ฌ์์ ์ด๋ฆ๊ณผ ์ปค๋ฏธ์
์ ์ถ๋ ฅํ๋, ์ปค๋ฏธ์
์ด ์ฑ
์ ๋์ง ์์ ์ฌ์์ ์ปค๋ฏธ์
์ 'no commission'์ผ๋ก ์ถ๋ ฅํ๋ผ.
SELECT ename, comm, NVL(TO_CHAR(comm), 'no commission')
FROM emp;
* NVL(๊ฐ, ์ง์ ๊ฐ) : NULL๊ฐ์ ํน์ ๊ฐ์ผ๋ก ์ถ๋ ฅ
* NVL2(๊ฐ, ์ง์ ๊ฐ) : NULL๊ฐ์ด ์๋ ๊ฒฝ์ฐ ํน์ ๊ฐ์ผ๋ก ์ถ๋ ฅ
20> ๋ชจ๋ ์ฌ์์ ์ด๋ฆ,๋ถ์๋ฒํธ,๋ถ์์ด๋ฆ์ ํ์ํ๋ ์ง์๋ฅผ ์์ฑํ๋ผ.(DECODE)
SELECT e.ename, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
[๋ค๋ฅธ๋ฐฉ๋ฒ] DECODE
SELECT ename, deptno , DECODE(deptno,10,'ACCOUNTING' ,
20,'RESEARCH',
30,'SALES',
40,'OPERATIONS') AS "dname"
FROM EMP;
*DECODE (์ปฌ๋ผ, ์กฐ๊ฑด1, ๊ฒฐ๊ณผ1, ์กฐ๊ฑด2, ๊ฒฐ๊ณผ2, ์กฐ๊ฑด3, ๊ฒฐ๊ณผ3..........)
ํ์ค SQLํจ์๊ฐ ์๋
21> 30๋ฒ ๋ถ์์ ์ํ ์ฌ์์ ์ด๋ฆ๊ณผ ๋ถ์๋ฒํธ ๊ทธ๋ฆฌ๊ณ ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ๋ผ.
SELECT e.ename, e.empno, d.dname
FROM emp e, dept d
WHERE d.deptno = 30;
22> 30๋ฒ ๋ถ์์ ์ํ ์ฌ์๋ค์ ๋ชจ๋ ์ง์
๊ณผ ๋ถ์์์น๋ฅผ ์ถ๋ ฅํ๋ผ. (๋จ, ์ง์
๋ชฉ๋ก์ด ์ค๋ณต๋์ง ์๊ฒ ํ๋ผ.)
SELECT e.job, d.loc
FROM emp e, dept d
WHERE d.deptno = 30;
23> ์ปค๋ฏธ์
์ด ์ฑ
์ ๋์ด ์๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ, ๋ถ์์ด๋ฆ ๋ฐ ์์น๋ฅผ ์ถ๋ ฅํ๋ผ.
SELECT e.ename, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno=d.deptno AND e.comm IS NOT NULL;
24> ์ด๋ฆ์ A๊ฐ ๋ค์ด๊ฐ๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ๊ณผ ๋ถ์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ผ.
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno=d.deptno AND e.ename LIKE '%A%';
25> Dallas์์ ๊ทผ๋ฌดํ๋ ๋ชจ๋ ์ฌ์์ ์ด๋ฆ, ์ง์
, ๋ถ์๋ฒํธ ๋ฐ ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ๋ผ.
SELECT e.ename, e.job, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno=d.deptno AND d.loc='DALLAS';
'๊ฐ์ธ๊ณต๋ถ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
17. ๋ถ์ํจ์, ์์ํจ์ (0) | 2021.10.01 |
---|---|
10. Oracle ์ค๊ฐ์ฐ์ต๋ฌธ์ (0) | 2021.09.23 |
08. Oracle ์ค๊ฐ์ฐ์ต๋ฌธ์ (0) | 2021.09.21 |
07. Oracle ์ค๊ฐ์ฐ์ต๋ฌธ์ (0) | 2021.09.19 |
06. GROUP BY (0) | 2021.09.18 |