๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ด๋ก /DB

[๋ฌด์กฐ๊ฑด ๋”ฐ๋ผํ•ด๋ณด๊ธฐ] DML ์ •๋ ฌ, ์ˆซ์žํ•จ์ˆ˜, ๋ฌธ์ž์—ดํ•จ์ˆ˜

by 6161990 2021. 5. 25.

๐Ÿ“Œ DML(Data Manipulation Language(๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด))

  • SELECT : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น๋ฌธ , ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์ด๋‚˜ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ


๐Ÿ“ ์ •๋ ฌ

  • SELECT ๋ฌธ์„ ํ†ตํ•ด ์–ป์–ด์˜จ ๊ฒฐ๊ณผ๋ฅผ ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ํ˜น์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋‚ ์งœ ๋“ฑ ๋ชจ๋“  ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • SELECT [์ปฌ๋Ÿผ๋ช…] FROM [ํ…Œ์ด๋ธ”๋ช…] WHERE (์กฐ๊ฑด์ ˆ) ORDER BY [์ปฌ๋Ÿผ๋ช…] (ASC|DESC)
    • 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;