๐ DML(Data Manipulation Language(๋ฐ์ดํฐ ์กฐ์์ด))
- SELECT : ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช ๋ น๋ฌธ , ๋ค์ํ ์ํฉ์ด๋ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์
๐ ์ ๋ ฌ
- SELECT ๋ฌธ์ ํตํด ์ป์ด์จ ๊ฒฐ๊ณผ๋ฅผ ํน์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ํน์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์ ์๋ค.
- ์ซ์, ๋ฌธ์์ด, ๋ ์ง ๋ฑ ๋ชจ๋ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ์ ์๋ค.
- ASC : ์ค๋ฆ์ฐจ์ , ์๋ต๊ฐ๋ฅ
- DESC : ๋ด๋ฆผ์ฐจ์
SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
] WHERE (์กฐ๊ฑด์ ) ORDER BY [์ปฌ๋ผ๋ช
] (ASC|DESC)
--์ฌ์์ ์ด๋ฆ, ์ฌ์๋ฒํธ, ๊ธ์ฌ๋ฅผ ๊ธ์ฌ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
SELECT ENAME, EMPNO , SAL FROM EMP ORDER BY SAL ASC; SELECT ENAME, EMPNO , SAL FROM EMP ORDER BY SAL; --์ค๋ฆ์ฐจ์์ ASC ์๋ต๊ฐ๋ฅ
--์ฌ์์ ์ด๋ฆ, ์ฌ์๋ฒํธ, ๊ธ์ฌ๋ฅผ ๊ธ์ฌ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
SELECT ENAME, EMPNO , SAL FROM EMP ORDER BY SAL DESC;
--์ฌ์์ ์ด๋ฆ, ์ฌ์๋ฒํธ๋ฅผ ์ด๋ฆ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
SELECT ENAME, EMPNO FROM EMP ORDER BY ENAME ASC; SELECT ENAME, EMPNO FROM EMP ORDER BY ENAME; --์ค๋ฆ์ฐจ์์ ASC ์๋ต๊ฐ๋ฅ
--์ฌ์์ ์ด๋ฆ, ์ฌ์๋ฒํธ, ์ ์ฌ์ผ์ ์ ์ฌ์ผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
SELECT ENAME, EMPNO, HIREDATE FROM EMP ORDER BY HIREDATE DESC;
--2021๋ ์ ์ ์ฌํ ์ฌ์๋ค์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ ์ฌ์ผ์ ์ฌ์ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE HIREDATE BETWEEN '21/01/01' AND '21/12/31' ORDER BY EMPNO DESC;
-- ์ฌ์์ ์ด๋ฆ, ๊ธ์ฌ, ์ปค๋ฏธ์ ์ ์ปค๋ฏธ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
-- NULL๊ฐ์ ๋ค ๋ค๋ก๋ชฐ๋ฆผ, ๋ฌดํ๋์๋ฏธ๋ก ์ ์ผ ํฐ ๊ฐ์ด๊ธฐ ๋๋ฌธ์
SELECT ENAME, EMPNO , SAL, COMM FROM EMP ORDER BY COMM;
--์ฌ์์ ์ด๋ฆ, ์ฌ์๋ฒํธ, ๊ธ์ฌ๋ฅผ ๊ธ์ฌ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
-- ์ ์ฐ์ ์์ ์์ํฌ
SELECT ENAME, EMPNO , SAL FROM EMP ORDER BY SAL DESC, ENAME ASC;
๐ ์ซ์ํจ์
- ์ปฌ๋ผ์ ์ ์ฅ๋์ด ์๋ ์ซ์ ๊ฐ์ ๋ํด ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ ํจ์๋ค์ ์๋ฏธํ๋ค.
- DUAL ๊ฐ์ํ ์ด๋ธ
--๊ฐ์์ ํ ์ด๋ธ ( ์ด๋ค ํ ์ด๋ธ์ ์ ๊ธฐ ์ ๋งคํ ๋ ๋ฐ๋ ค๋ค ์ฐ๋ DUAL TABLE)
SELECT 10+10 FROM DUAL;
- ์ ๋๊ฐ ๊ตฌํ๊ธฐ
--์ ๋๊ฐ ๊ตฌํ๊ธฐ ABS
SELECT -10, ABS(-10) FROM DUAL;
- ๊ธฐํ
--์ ์ง์์ ๊ธ์ฌ๋ฅผ 300 ์ญ๊ฐํ๊ณ ์ญ๊ฐํ ๊ธ์ฌ์ก์ ์ ๋๊ฐ์ ๊ตฌํ๋ค.
SELECT SAL, SAL -300, ABS(SAL-300) FROM EMP;
--์์์ ์ดํ ๋ฒ๋ฆผ
SELECT 12.3456, FLOOR(12.3456) FROM DUAL; --12
--์์์ ์ดํ ๋ฒ๋ฆผ , ์๋ฆฌ์ ์ง์ SELECT 1223.3456, TRUNC(1223.3456),TRUNC(1223.3456, 2),TRUNC(1223.3456,-2) FROM DUAL;
--๊ธ์ฌ๊ฐ 300์ด์์ธ ์ฌ์์ ๊ธ์ฌ๋ฅผ 15% ์ญ๊ฐํ๋ค. ๋จ ์์์ ์ดํ๋ ๋ฒ๋ฆฐ๋ค.
SELECT ENAME ,SAL, SAL*0.85, FLOOR(SAL * 0.85) FROM EMP WHERE SAL >= 300;
-- ๋ฐ์ฌ๋ฆผ
SELECT 12.8888, ROUND (12.8888) FROM DUAL;
-- ๋ฐ์ฌ๋ฆผ ์๋ฆฌ์ ์ง์ (์์์ ์ดํ)
SELECT 12.8888, ROUND (12.8888), ROUND(12.8888, 3) FROM DUAL;
-- ๋ฐ์ฌ๋ฆผ ์๋ฆฌ์ ์ง์ (์์์ ์ด์)
SELECT 777.8888, ROUND (777.8888), ROUND(777.8888, -2) FROM DUAL;
--๊ธ์ฌ๊ฐ 400์ดํ์ธ ์ฌ์๋ค์ ๊ธ์ฌ๋ฅผ 20%์ฉ ์ธ์ํ๋ค. ๋จ 1์ ์๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ฌ๋ฆผํ๋ค.
SELECT ENAME, SAL, SAL*1.2, ROUND(SAL*1.2, -1) FROM EMP WHERE SAL <=400;
--๋๋จธ์ง ๊ตฌํ๊ธฐ
SELECT MOD(10,3), MOD(10,4) FROM DUAL;
๐ ๋ฌธ์์ดํจ์
- ์ปฌ๋ผ์ ์ ์ฅ๋์ด ์๋ ๋ฌธ์์ด์ ๋ํด ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ ํจ์๋ค์ ์๋ฏธํ๋ค.
-- ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก
SELECT 'ABcdEF', lower('ABcdEF') FROM DUAL;
--์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก
SELECT 'abcdef', UPPER ('abcdef') FROM DUAL;
--์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก, ๋๋จธ์ง๋ ์๋ฌธ์๋ก
SELECT 'aBCDEF', INITCAP('aBCDEF') FROM DUAL;
--๋ฌธ์์ด ์ฐ๊ฒฐ
SELECT CONCAT('ABC','DEF') FROM DUAL; SELECT CONCAT('KKK',CONCAT('ABC','DEF')) FROM DUAL; SELECT CONCAT(CONCAT('KKK',CONCAT('ABC','DEF')),'ZZZ') FROM DUAL;
--์๋์ ์ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ์ทจ์ฌ์ ํ SELECT '์ฌ์๋ค์ ์ด๋ฆ์' || '์ดํจ๋ฆฌ' || '์ด๋ค' FROM DUAL;
--๋ฌธ์์ด์ ๊ธธ์ด (LENGTHB- BYTE ์ , ํ๊ธ์ 2BYTE)
SELECT LENGTH('ABCD'), LENGTHB('ABCD'),LENGTH('์๋ ํ์ธ์ฉ'),LENGTHB('์๋ ํ์ธ์ฉ') FROM DUAL;
--๋ฌธ์์ด ์๋ผ๋ด๊ธฐ (SUBSTRB- BYTE ์ , ํ๊ธ์ 2BYTE)
SELECT SUBSTR('ABCD',3),SUBSTRB('ABCD',3), SUBSTR('์๋ ํ์ธ์ฉ',3),SUBSTRB('์๋ ํ์ธ์ฉ',3) FROM DUAL;
SELECT SUBSTR('ABCDEFGHI',3,4), SUBSTR('๋ํด๋ฌผ๊ณผ ๋ฐฑ๋์ฐ์ด',3,4) FROM DUAL;
--๋ฌธ์์ด ์ฐพ๊ธฐ (์ธ๋ฑ์ค๋ฒํธ๊ฐ ๋์ด)
SELECT INSTR('ABCDABCDABCD','CD') FROM DUAL;
SELECT INSTR('ABCDABCDABCD','BC'), INSTR('ABCDABCDABCD','BC',3) FROM DUAL; --3๋ฒ์งธ ๊ธ์ ์ดํ์ 'BC' ์ฐพ๊ธฐ SELECT INSTR('ABCDABCDABCD','BC',3), INSTR('ABCDABCDABCD','BC',3,2) FROM DUAL; --3๋ฒ์งธ ๊ธ์ ์ดํ์ 2๋ฒ์งธ 'BC'๋ฌถ์ ์ฐพ๊ธฐ
--์ฌ์์ ์ด๋ฆ ์ค์ 'E'๊ฐ ๋๋ฒ์งธ ์ดํ์ ๋ํ๋๋ ์ฌ์์ ์ด๋ฆ์ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, SAL FROM EMP WHERE INSTR(ENAME,'E') >1 ;
--ํน์ ๋ฌธ์์ด ์ฑ์ฐ๊ธฐ
SELECT '๋ฌธ์์ด', LPAD('LEFT PAD',15), RPAD('RIGHT PAD',20) FROM DUAL;
SELECT '๋ฌธ์์ด', LPAD('LEFT PAD',15,'_'), RPAD('RIGHT PAD',20) FROM DUAL;
--๊ณต๋ฐฑ์ ๊ฑฐ
SELECT ' ๋ฌธ์์ด ', LTRIM(' LEFT TRIM '), RTRIM(' RIGHT TRIM '), TRIM(' TRIM ') FROM DUAL;
--๋ฌธ์์ด ๋ณ๊ฒฝ
SELECT '๊น์คํฌ', REPLACE('๊น์คํฌ','์ค','์ํ๋ฌด๊ฑฐ๋ถ์ด์') FROM DUAL;
'์ด๋ก > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํ๊ธฐ] INSERT, UPDATE, DELECT (0) | 2021.05.26 |
---|---|
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ] DML ๊ทธ๋ฃนํจ์, HAVING, JOIN, SET, ์๋ธ์ฟผ๋ฆฌ (0) | 2021.05.25 |
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ] DML ๋ ์งํจ์ , DECODE, CASE (0) | 2021.05.25 |
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ]DML ๊ธฐ๋ณธ์ฟผ๋ฆฌ๋ฌธ, ์ฐ์ฐ์, ๋น๊ต ,NVL (0) | 2021.05.25 |
๋ฐ์ดํฐ ๋ฒ ์ด์ค DataBase ๊ฐ์ (0) | 2021.05.21 |