[ ํ ์ด๋ธ ์กฐํ (SELECT) ]
SELECT * FROM emp;
๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ์ํ๋์ง๋ง
๋ด๋ถ์ ์ผ๋ก ๋,์๋ฌธ์๋ ์๋ก ๋ค๋ฅธ SQL ๋ก ๊ตฌ๋ถ์ด ๋๋ค
ํค์๋ ๋๋ฌธ์, ์ปฌ๋ผ-์กฐ๊ฑด์ ์๋ฌธ์๋ก ์
๋ ฅ
๋ง๋ฌด๋ฆฌ ์ธ๋ฏธ์ฝ๋ก ;
SELECT empno, ename FROM emp;
์ํ๋ ์ปฌ๋ผ์ด๋ฆ๋ง ๋ฃ๊ณ ์กฐํ๊ฐ๋ฅ
,(์ฝค๋ง) ๋ก ๊ตฌ๋ถ
[ ํํ์ Expression ]
SELECT dname, ' IT ''s deptno : ' FROM dept;
--ํํ์ ์ฌ์ฉ Expression
ํํ์ or ๋ฆฌํฐ๋ด์ด๋ผ๊ณ ๋ถ๋ฆ
์ปฌ๋ผ ์ด๋ฆ ์ด์ธ๋ก ์ถ๋ ฅํ๊ณ ์ถ์ ๋ด์ฉ
' ' ๋ก ๋ฌถ์ด์ ์ฌ์ฉ
๋์ ' ์ '' ๋ก ํํํด์ ์ฌ์ฉํด์ค์ผํ๋ค.
[ ์ปฌ๋ผ ๋ณ์นญ ]
SELECT profno "Prof'NO" , name AS "Prof's Name", pay Prof_pay FROM professor;
-- ์ปฌ๋ผ ๋ณ์นญ ์ฌ์ฉ
1) ๊ณต๋ฐฑ ์ฃผ๊ณ "" ์ฌ์ฉ
2) AS ์ฌ์ฉ
3) ๊ณต๋ฐฑ,ํน์๋ฌธ์,๋์๋ฌธ์ ๊ตฌ๋ถ ํ์์์๋ "" ํ์
DESC DESCRIBE
--ํ
์ด๋ธ์ ์ด๋ค ์ปฌ๋ผ์ด ์๋์ง ํ์ธ
COL empno FOR 9999
-- ์ปฌ๋ผ ๊ธธ์ด๋ฅผ ์ซ์ 4์๋ฆฌ๊น์ง ๋ค์ด๊ฐ๊ฒ ์ค์ COL ename FOR a8
-- ename ์ปฌ๋ผ๊ธธ์ด๋ฅผ 8๋ฐ์ดํธ๊น์ง ๋ค์ด๊ฐ๊ฒ ์ค์ SET LINE 200
-- ํ ํ๋ฉด์ ๊ฐ๋ก๋ก 200๋ฐ์ดํธ๊น์ง ์ถ๋ ฅSET PAGES 50
--ํํ์ด์ง์ 50์ค๊น์ง ์ถ๋ ฅ
[ ์ค๋ณต ์ ๊ฑฐ DISTINCT ]
SELECT DISTINCT deptno FROM emp;
-- ์ค๋ณต๋ ๊ฐ ์ ๊ฑฐ, ์ถ๋ ฅ
์์ ์๋ ์ ๋ ฌ๋ ๊ฐ์ด ์ํํด์ ์๋ ์ ํ๊ฐ ์์์ผ๋
์ต๊ทผ์๋ ์ ๋ ฌ์ด ์์ด์ ธ์ (ํด์ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณ๊ฒฝ) ์ฑ๋ฅ์ด ํฅ์๋์๋ค.
(์ฃผ์)
1๊ฐ ์ปฌ๋ผ์ ์ ์ด์ค๋ ๋ชจ๋ ์ปฌ๋ผ์ ์ ์ฉ๋จ !!
SELECT ํค์๋ ๋ค์์ ์์ผํจ !!
[ ์ฐ๊ฒฐ ์ฐ์ฐ์ Concatenation]
SELECT ename || job FROM emp;
SELECT ename || ' ''s job is '|| job "NAME AND JOB" FROM emp;
์ปฌ๋ผ์ ์ฐ๊ฒฐํด์ ์ถ๋ ฅ ๊ฐ๋ฅ
์ฐ๊ฒฐ ์ฐ์ฐ์ || (๋ฐ ๊ธฐํธ ๋๋ฒ)
[ ์กฐ๊ฑด์ WHERE]
SELECT ์ปฌ๋ผorํํ์ FROM ํ
์ด๋ธor๋ทฐ WHERE ์ํ๋ ์กฐ๊ฑด;
SELECT empno, ename FROM emp WHERE empno = 7900;
-- ์กฐ๊ฑด์
where ์ ์ from ์๋์ ์์ผํ๋ค.
๋ฌธ์,๋ ์ง ์กฐํ๋ '' ๋ฐ์ดํ ํ์
๋ฌธ์ ๋์๋ฌธ์ ๊ตฌ๋ถ ํ์
์๋์ฉ์ค๋ผํด - ์ ๋์ค(๋ฆฌ๋ ์ค)๊ณ์ด ์ค๋ผํด ์ ๋ ์ง ํ์ ํํ๊ฐ ๋ฌ๋ผ์ ์๋ฌ๋๋ ๊ฒฝ์ฐ ๋ง๋ค
[ ์ฐ์ ์ฐ์ฐ์ ]
SELECT ename, sal , sal+100 FROM emp WEHRE deptno = 10;
-- ์ฐ์ ์ฐ์ฐ์
[ ๊ตฌ๊ฐ๋ฐ์ดํฐ ์กฐํ BETWEEN ]
SELECT sal FROM emp WHERE sal BETWEEN 2000 AND 3000;
-- ๊ตฌ๊ฐ๋ฐ์ดํฐ ์กฐํ BETWEEN
1) ์์ ๊ฐ์ ์์, ํฐ๊ฐ์๋ค์
2) ๋ ๊ฐ์ ๋ชจ๋ ํฌํจํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค
SELECT sal FROM emp WHERE sal >= 2000 AND sal <= 3000;
-- ๋น๊ต์ฐ์ฐ์๋ฅผ ์ฐ๋ ๊ฒ์ ๊ถ์ฅ
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ๊ฐ์๋ ์๋๊ฐ ๋ ๋น ๋ฆ!!
โ* [ IN ์ฐ์ฐ์ ]
SELECT empno, ename, deptno FROM emp WEHRE deptno IN (10,20);
-- IN ์ฐ์ฐ์ ์ฌ๋ฌ์กฐ๊ฑด ๊ฐํธํ๊ฒ ๊ฒ์
์๋๊ฐ ๋งค์ฐ ๋นจ๋ผ์ ์์ฃผ ์ฌ์ฉ๋จ
โ* [ LIKE ์ฐ์ฐ์ ]
SELECT sal FROM emp WEHRE sal LIKE '1%'
-- ๋น์ทํ ๊ฒ๋ค ์ฐพ๊ธฐ
1) % : ๊ธ์์ ์ ํ์๊ณ ์ด๋ค ๊ธ์ ์๊ด ์์
2) _ : ๊ธ์์๋ ํ๊ธ์๋ง ์ฌ ์ ์๊ณ ์ด๋ค ๊ธ์ ์๊ด์์
%, _ ๊ฐ์ฅ ๋จผ์ ์ฐ์ง ์๊ธฐ !
%,_ ์์น๊ฐ ์ค์ํจ ์กฐ๊ฑด์ ๋จผ์ ๋์ฌ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ต์
-> ์ธ๋ฑ์ค์ ์ฐ๊ด ( โ*)
[ IS NULL / IS NOT NULL ]
SELECT empno, ename, comm FROM emp WHERE comm IS NULL;
SELECT empno, ename, comm FROM emp WHERE comm IS NOT NULL;
NULL ์ ๊ฐ์ ๋ชจ๋ฅธ๋ค๋ ์๋ฏธ = ์ฐ์ฐ์ ๋ถ๊ฐ๋ฅ
NULL ๊ฐ์ผ๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ผ์ด ๋ง์ผ๋ฏ๋ก ์กฐ์ฌ
[ AND , OR ]
--๊ฒ์ ์กฐ๊ฑด์ด ๋๊ฐ์ง ์ด์์ผ ๊ฒฝ์ฐ
SELECT empno, ename, sal ,comm FROM emp WHERE sal > 1000 AND (comm < 1000 OR comm IS NULL);
AND *๊ฐ ๋จผ์ ์ํ๋๊ณ OR+ ์ด ์ํ๋จ
๊ดํธ ์ฌ์ฉํด์ ์ฐ์ ์ํ ์ํฌ ์ ์์
[ ์ฌ์ฉ์๋ก๋ถํฐ ์กฐ๊ฑด ์ ๋ ฅ ๋ฐ๊ธฐ ]
SELECT empn, ename, sal FROM emp WHERE empno = &empno;
-- & ๊ธฐํธ
-- ๋ชจ๋ ์ ์ ์ฌ์ฉ๊ฐ๋ฅ !
SET verify OFF
-- old new ์ถ๋ ฅ ์๋ณด์ด๊ฒ ํ๊ธฐ
[ ORDER BY -- ์ ๋ ฌ ]
SELECT ename, sal, hiredate FROM emp ORDER BY ename;
์ค๋ฆ์ฐจ์ (๊ธฐ๋ณธ๊ฐ) : ASC
๋ด๋ฆผ์ฐจ์ : DESC
SQL ๊ฐ์ฅ ๋ง์ง๋ง์ ์์นํด์ผํ๋ค.
order by ๋ง์ด ์ธ ์๋ก ์ํ์๋๊ฐ ๋ฆ์ด์ง๋ค.
์ต๋ํ ์ฌ์ฉํ์ง ์๋๋ค !!! --> ๋์ฒด ์ธ๋ฑ์ค ( โ*)
ORDER BY 2,1 ;
-- select ์ ์ ์ค๋ ์ปฌ๋ผ์ ์์
์ปฌ๋ผ ๋ณ์นญ, ์ปฌ๋ผ ์์ ๋ฑ์ผ๋ก ์ ๋ ฌ๊ฐ๋ฅํ๋ค.
[ ์งํฉ์ฐ์ฐ์ SET OPERATOR ]
์ฌ๋ฌ๊ฑด์ ๋ฐ์ดํฐ๋ค์ ์งํฉ ์ฐ์ฐํ๋ ๊ฒ
UNION
-- ํฉ์ณ์ ์ค๋ณต๊ฐ, ์ ๊ฑฐ, ์ ๋ ฌ
UNION ALL
-- ํฉ์ณ์ ์ค๋ณต๊ฐ, ์ ๊ฑฐ ์์ด, ์ ๋ ฌ ์ํจ
โ* UNION ์ฑ๋ฅ์ด ๋งค์ฐ ๋จ์ด์ง๋ฏ๋ก -- DECODE , CASE ์ฌ์ฉํ์ฌ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๋ ์ต๊ด!
INTERSECT
-- ๊ต์งํฉ ๊ฒฐ๊ณผ , ์ ๋ ฌ
์ ๋ ฌ์ ๋๋ฐํ๋ค? ์ฑ๋ฅ ์์ข์.
MINUS
-- ์ฐจ์งํฉ ๊ฒฐ๊ณผ, ์ ๋ ฌ, (์ฟผ๋ฆฌ ์์ ์ค์)
ํฐ ์งํฉ์์ ์์ ์งํฉ์ ๋นผ๋ ์ฐ์ฐ์
์ ๋ ฌํ๋ฏ๋ก ์ฑ๋ฅ ์์ข์.
1) ๋ ์งํฉ์ select ์ ์ปฌ๋ผ ๊ฐ์๊ฐ ๋์ผํด์ผํจ
2) ๋ ์งํฉ์ select ์ ์ ์ค๋ ์ปฌ๋ผ ๋ฐ์ดํฐ ํ์ด ๋์ผ
3) ์ปฌ๋ผ๋ช
์ ๋ฌ๋ผ๋ ์๊ด ์์