MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿ’Ž DataBase/๐Ÿ“š ์˜ค๋ผํด SQL๊ณผ PL,SQ

หšโ‚Šโœฉโ€งโ‚Š DB Oracle ์ •๋ฆฌ 1ํƒ„ (์˜ค๋ผํด SQL๊ณผ PL/SQL Ch1-3) หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2021. 10. 11. 21:59

 

โ–ถ DBMS (Database Management System) : ํ…Œ์ดํ„ฐ๊ด€๋ฆฌ์ „๋ฌธํ”„๋กœ๊ทธ๋žจ

โ–ถ SQL (Structured Query Language) : ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด (๊ทœ์น™์žˆ๋Š” ๋ง)

 

โ–ถ ์‹คํ–‰ : CTRL + ENTER 

โ–ถ ๋งˆ์ง€๋ง‰์€ ์„ธ๋ฏธ์ฝœ๋ก  (;)

โ–ถ ํ‚ค์›Œ๋“œ = ๋Œ€๋ฌธ์ž /  ์ปฌ๋Ÿผ, ์กฐ๊ฑด = ์†Œ๋ฌธ์ž => ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜๊ธฐ

โ–ถ ํ•œ์ค„์ฃผ์„ = --

โ–ถ ์—ฌ๋Ÿฌ์ค„์ฃผ์„ = /* */

โ–ถ ์œ ์ €๋ช….ํ…Œ์ด๋ธ”๋ช… /๋‹ค๋ฅธ์‚ฌ์šฉ์žํ…Œ์ด๋ธ”์ ‘๊ทผ


โ–ถSELECT = ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์–ด

โ–ถSELECT * = ๋ชจ๋“  ์ปฌ๋Ÿผ ์กฐํšŒ

โ–ถSELECT * FROM ํ…Œ์ด๋ธ”๋ช… = ํŠน์ • ์ปฌ๋Ÿผ ์กฐํšŒ

โ–ถSELECT ์ปฌ๋Ÿผ๋ช…, ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช… = ์›ํ•˜๋Š” ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒ

โ–ถDESC ํ…Œ์ด๋ธ”๋ช… = ํ…Œ์ด๋ธ”์— ์–ด๋–ค ์ปฌ๋Ÿผ์ด ์žˆ๋Š”์ง€ ์กฐํšŒ


โ–ถํ‘œํ˜„์‹(๋ฆฌํ„ฐ๋Ÿด์ƒ์ˆ˜(๋ฌธ์ž), ๋ฆฌํ„ฐ๋Ÿด): ์ปฌ๋Ÿผ ์ด๋ฆ„ ์ด์™ธ์— ์ถœ๋ ฅํ•˜๊ธฐ ์›ํ•˜๋Š” ๋‚ด์šฉ 

โ–ถSELECT ์ปฌ๋Ÿผ๋ช… 'good' ~ 


โ–ถ์ปฌ๋Ÿผ ๋ณ„์นญ ์‚ฌ์šฉํ•˜๊ธฐ (๋ณ„๋ช…์— " " ํ•„์ˆ˜)

1) ์ปฌ๋Ÿผ์ด๋ฆ„ ๋’ค์— ๊ณต๋ฐฑ ์ฃผ๊ณ  ๋ณ„๋ช…

2) ์ปฌ๋Ÿผ์ด๋ฆ„ ๋’ค์— As ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

 

โ–ถ์—ฐ๊ฒฐ(ํ•ฉ์„ฑ)์—ฐ์‚ฐ์ž , || (๋ฐ”๊ธฐํ˜ธ) : ์—ฐ๊ฒฐํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ์‹ํ•œ๋‹ค

=๋ฌธ์ž๋ผ๋ฆฌ ๋”ํ• ๋•Œ || ์‚ฌ์šฉํ•ด์•ผ๋จ

 

โ–ถWITH

= ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ, ๊ฐ™์€ ์ผ ๋ฐ˜๋ณต

= ์ฟผ๋ฆฌ์–‘ (์ฝ”๋“œ์–‘)์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

WITH V_DATA AS (
SELECT NATION, VRANCH, NAME, TO_CHAR(REG_DATE, 'YYYY-MM-DD') REG_DATE
FROM ATE ~~~
)

 

WITH V_DATA AS {
SELECT 'SWCHOI' NM FROM DUAL
}

LPAD(NM,9,'0')
FROM V_DATA;

โ–ถDISTINCT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช…; 

= ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ / 1๊ฐœ์˜ ์ปฌ๋Ÿผ์—๋งŒ ์ ์–ด๋„ ๋ชจ๋“  ์ปฌ๋Ÿผ์— ์ ์šฉ๋œ๋‹ค.

SELECT DISTINCT BBS_NM
FROM FW_BBS;

 

โ–ถNULL = ์‚ฌ์น™์—ฐ์‚ฐ ๋‹ค ์•ˆ๋œ๋‹ค.

 

 

 


 

โ–ถWHERE ์ ˆ = ์กฐ๊ฑด์ ˆ / ์›ํ•˜๋Š” ์กฐ๊ฑด๋งŒ ๊ณจ๋ผ๋‚ด๊ธฐ

= SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์›ํ•˜๋Š” ์กฐ๊ฑด;

= ์ˆซ์ž ์ด์™ธ์—๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ ํ•„์ˆ˜  (๋ฌธ์ž,๋‚ ์ž ์กฐํšŒ๋Š” '' ๋”ฐ์˜ดํ‘œ ์ฃผ์˜ํ•˜๊ธฐ)

= ์กฐ๊ฑด ์ž…๋ ฅ์‹œ ๋ฌธ์ž๋Š” ๋Œ€์†Œ๋ฌธ์ž๊ตฌ๋ถ„ 

= ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ๋น„๊ต์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ ๋ชปํ•จ

WHERE COLUMN_NAME = '์ œ๋ชฉ'; //์กฐ๊ฑด์„ ์ฃผ๋ฉด ์ œ๋ชฉ์ธ ์•„์ด๋“ค์„ ์ถœ๋ ฅ (์ œ๋ชฉ ์ปฌ๋Ÿผ์€ ์ถœ๋ ฅ์•ˆํ•จ)
WHERE COLUMN_NAME != '์ œ๋ชฉ';  // ๋ฐ˜๋Œ€
WHERE COLUMN_NAME <> '์ œ๋ชฉ';  // ์กฐ๊ฑด์˜ ๋ฐ˜๋Œ€

 

โ–ถWHERE ์ปฌ๋Ÿผ๋ช… IS NULL  = ๋„ ๊ฐ’ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ

โ–ถWHERE ์ปฌ๋Ÿผ๋ช… IS NOT NULL = ๋„ ๊ฐ’ ์•„๋‹Œ ๋ชจ๋“  ๊ฐ’ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ

โ–ถWHERE ์ปฌ๋Ÿผ๋ช… = &์ปฌ๋Ÿผ๋ช…;

=์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ธฐ

 

 


โ–ถ ==  : ๋ฌธ์ž ํฌ๊ธฐ ๋น„๊ต (์•„์Šคํ‚ค ๊ฐ’ ๋น„๊ต)

 

โ–ถBETWEEN = ํŠน์ •๊ตฌ๊ฐ„ ๋ชจ๋“  ๊ฐ’ ์ถœ๋ ฅ / ๊ตฌ๊ฐ„ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐ

= ์ž‘์€ ๊ฐ’์˜ ์•ž, ํฐ ๊ฐ’์˜ ๋’ค  (๋‘ ๊ฐ’ ํฌํ•จ ๊ฒฐ๊ณผ ์ถœ๋ ฅํ•จ)

= (์†๋„ ๋Š๋ฆผ)

WHERE sal BETWEEN 200 AND 3000;

โ–ถAND /์กฐ๊ฑด์ถ”๊ฐ€

- BETWEEN ๋ณด๋‹ค ์†๋„ ๋น ๋ฆ„

= ์กฐ๊ฑด ๋ฐ˜๋Œ€๋กœ ์ž‘์„ฑํ•˜๋ฉด ์‹คํ–‰์ด ์•ˆ๋œ๋‹ค 

WHERE sal >= 2000 AND sal <= 3000;

 

โ–ถOR  = ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ์กฐ๊ฑด๋งŒ ๋งŒ์กฑ

=AND๊ฐ€ ์šฐ์„ ์ˆœ์œ„ ๋†’์Œ, AND๋Š” ๊ด„ํ˜ธํ•ด์ค˜์•ผ๋จ

 

 

โ–ถIN = ์—ฌ๋Ÿฌ์กฐ๊ฑด ๊ฐ„ํŽธ๊ฒ€์ƒ‰

= ์ˆซ์ž, ๊ธ€์ž, ๋‚ ์งœ ๊ฐ€๋Šฅ / ์†๋„ ๋น ๋ฆ„

 

โ–ถLIKE = ๋น„์Šทํ•œ ๊ฒƒ๋“ค ๋ชจ๋‘ ์ฐพ๊ธฐ

= ์ˆซ์ž, ๊ธ€์ž, ๋‚ ์งœ ๊ฐ€๋Šฅ / ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ๊ธฐ

= '%' ์ œํ•œ์—†์ด 0๊ฐœ~  /' _' ํ•œ๊ธ€์ž~์ œํ•œ์—†์ด

= ์ด๊ฑด ์กฐ๊ฑด์—์„œ ๋จผ์ € ์‚ฌ์šฉ๋˜๋ฉด ์„ฑ๋Šฅ์ด ์ตœ์•…

WHERE sal LIKE '1%';

 

 


โ–ถ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

โ–ถ๋‚ ์งœ = ํด์ˆ˜๋ก ์ตœ์‹  ๋‚ ์งœ

 

โ–ถINSERT INTO ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2) 

โ–ถVALUES ('๊ฐ’1','๊ฐ’2');


 

โ–ถORDER BY = ์ •๋ ฌ

= SQL ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ ๋Š”๋‹ค !!

= ๊ธฐ๋ณธ๊ฐ’์€ ASC(์˜ค๋ฆ„์ฐจ) , DESC(๋‚ด๋ฆผ์ฐจ)

= ์ˆ˜ํ–‰์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค, ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ธฐ (์ธ๋ฑ์Šค๋กœ ๋Œ€์ฒด)

= WHERE ๋กœ ์กฐ๊ฑด ์ •๋ฆฌํ•˜๊ณ  ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ๋‹ค

= ๋ฌธ์ž๋Š” ํ•œ๊ธ€, ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž (์•„์Šคํ‚ค์ฝ”๋“œ ๊ธฐ์ค€) ๊ตฌ๋ถ„๋œ๋‹ค.

ORDER BY ename;
ORDER BY 1,2;
--2๋ฅผ ์ •๋ ฌํ•˜๊ณ  ๋™์ผํ•œ 2๋Š” 1๋กœ ์žฌ์ •๋ ฌ
ORDER BY deptno ASC, sal DESC

order by 1 ; 1๋ฒˆ๊บผ๋กœ ์ •๋ ฌ
order by 1 desc ; ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ

โ–ถDUAL

= ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”

select 'a' as aa;  // ์—๋Ÿฌ๊ฐ€ ์ƒ๊น€  
์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ ์‹ถ์€๋ฐ...

select 'a'  as aa
from dual;

 

 

โ–ถ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž 4๊ฐ€์ง€

= ์ปฌ๋Ÿผ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•ด์•ผํ•œ๋‹ค

= ๋ฐ์ดํ„ฐํ˜•์ด ๋™์ผํ•ด์•ผํ•œ๋‹ค

= ์ด๋ฆ„์€ ๋‹ฌ๋ผ๋„ ๋œ๋‹ค

= ์—ฐ๊ฒฐ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค

 

โ–ถUNION /๋‘ ์ง‘ํ•ฉ์„ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ

= ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ O , ์ •๋ ฌ O

= ๋จผ์ € ๋ถ™์ธ๊ฒŒ ํƒ€์ดํ‹€์ด ๋จ ( order by ๋’ค์—๋ถ™์ธ๊ฑฐ ; ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š”๊ฑฐ์ž„)

select 'a' from dual
union
select 'b' from dual;

โ–ถUNION ALL  /๋‘ ์ง‘ํ•ฉ์„ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ

= ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ X , ์ •๋ ฌ X 

= ๋จผ์ € ๋ถ™์ธ๊ฒŒ ํƒ€์ดํ‹€์ด ๋จ ( order by ๋’ค์—๋ถ™์ธ๊ฑฐ ; ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š”๊ฑฐ์ž„)

 

โ–ถINTERSECT / ๊ต์ง‘ํ•ฉ

= ์ •๋ ฌ์„ ๋™๋ฐ˜ํ•ด์„œ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค

 

 

 

โ–ถMINUS /์ฐจ์ง‘ํ•ฉ

= ํฐ ์ง‘ํ•ฉ์—์„œ ์ž‘์€ ์ง‘ํ•ฉ์„ ๋บ€๋‹ค

= ์ˆœ์„œ์— ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค. (SELECT(ํฐ๊ฐ’) -> MINUS -> SELECT(์ž‘์€๊ฐ’))

= ์ •๋ ฌ์„ ๋™๋ฐ˜ํ•ด์„œ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค

 


โ–ถํ•จ์ˆ˜

1) ๋‹จ์ผํ–‰ํ•จ์ˆ˜ = ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•œ๋‹ค

2) ๋ณต์ˆ˜ํ–‰ํ•จ์ˆ˜(๊ทธ๋ฃนํ•จ์ˆ˜)  = ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ž…๋ ฅ๋ฐ›์•„ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ ๋‹ค

 

 

โ–ถ๋‹จ์ผํ–‰ํ•จ์ˆ˜

1) ๋ฌธ์žํ•จ์ˆ˜

โ–ถINITCAP() /๋Œ€๋ฌธ์ž๋ณ€ํ™˜

= ๋งจ์ฒ˜์Œ ๋ฌธ์ž๊ฐ€ ๊ณต๋ฐฑ์ด๋ฉด ๊ณต๋ฐฑ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ ๋‹ค.

SELECT  INITCAP(' ' || GRORP_CD) AS GROUP_CD

 

โ–ถLOWER /all ์†Œ๋ฌธ์ž

โ–ถUPPER /all ๋Œ€๋ฌธ์ž

WHERE LOWER(GROUP_CD) = LOWER('SUPER');
--๋Œ€์†Œ๋ฌธ์ž ๋‹ฌ๋ผ๋„ ๊ฒ€์ƒ‰๋˜๋„๋ก
--๋“ค์–ด์˜ค๋Š”๊ฐ’ ๋ฌด์กฐ๊ฑด ์†Œ๋ฌธ์žOR ๋Œ€๋ฌธ์ž DB์— ๋“ค์–ด๊ฐ„๊ฒƒ๋„ ๋ฌด์กฐ๊ฑด ์†Œ๋ฌธ์žOR๋Œ€๋ฌธ์ž

 

โ–ถLENGTH() /๋ฌธ์ž์—ด๊ธธ์ด๊ฐ’

โ–ถLENGTHB() /๋ฌธ์ž์—ด๋ฐ”์ดํŠธ๊ฐ’

= utf-8 ํ•œ๊ธ€ํ•œ๊ธ€์ž๋‹น 3๋ฐ”์ดํŠธ

 

โ–ถCONCAT()/ ๋ฌธ์ž์—ด๊ฒฐํ•ฉ 

= || ์—ฐ์‚ฐ์ž์™€ ๋™์ผํ•จ

 

โ˜…โ–ถSUBSTR() /ํŠน์ •๋ฌธ์ž ์ถ”์ถœ

=์˜ค->์™ผ , (-) ์™ผ->์˜ค ๊ฒ€์ƒ‰ ํ›„ ์˜ค->์™ผ 

= 0=1์€ ์ธ๋ฑ์Šค ์‹œ์ž‘์œ„์น˜ , 2~๋๊นŒ์ง€ (์ด๋™๋ฒ”์œ„?)

SUbstr ( '', -3); //์ •์ 
substr(  , instr (,) ์œ„์น˜ ๋ฐ˜ํ™˜)+1) //๋™์ 
7→  / 8→
-- ํ™•์žฅ์ž๊ณจ๋ผ๋‚ด๊ธฐ

โ–ถSUBSTRB() / ํŠน์ • ๋ฐ”์ดํŠธ๋งŒํผ ์ถ”์ถœ

โ–ถINSTR() /ํŠน์ • ๊ธ€์ž ์œ„์น˜ ์ถ”์ถœ

= ํŠน์ • ๊ธ€์ž๋ฅผ N1์—์„œ ์‹œ์ž‘ํ•ด์„œ N2๋ฒˆ์งธ์ธ์ง€ ์ฐพ๊ธฐ (๋‘˜๋‹ค ์ƒ๋žต๊ฐ€๋Šฅ, ์ž๋™ 1)

=์‹œ์ž‘์œ„์น˜๋ฅผ -๋กœ ์ฃผ๋ฉด ์˜ค->์™ผ ์œผ๋กœ ๊ฒฐ๊ด๊ฐ’ ๊ฒ€์ƒ‰ํ•จ

SELECT 'A-B-C-D', INSTR('A-B-C-D','-',N1,N2)

select 'a-b-c-d', instr('a-b-c-d','-',-3,1) 
from dual; --4
select name, tel, substr(tel,0,instr(tel,')')-1) ์ง€์—ญ๋ฒˆํ˜ธ
from student
where deptno1 = 201;

 

โ–ถLPAD() /์™ผ์ชฝ์— ์ฑ„์šด๋‹ค

= 10์ž๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๋˜ ๋นˆ์ž๋ฆฌ๋Š” ๊ธฐํ˜ธ๋กœ ์ฑ„์šด๋‹ค.

SELECT name, id, LPAD(id,10,'*')

select LPAD(ename,9,12345)
from emp
where deptno = 10;

โ–ถRPAD() /์˜ค๋ฅธ์ชฝ์— ์ฑ„์šด๋‹ค

select RPAD(ename,9,substrb('123456789',lengthb(ename)+1)) 
from emp
where deptno = 10;

โ–ถTRIM() / ์™ผ์˜ค ๋‘˜๋‹ค ์ œ๊ฑฐํ•˜๊ธฐ

โ–ถLTRIM() /์‹œ์ž‘๊ธ€์ž ์ œ๊ฑฐํ•˜๊ธฐ

SELECT ename, RTRIM(ename,'R') "RTRIM"

โ–ถRTRIM() /๋งˆ์ง€๋ง‰๊ธ€์ž ์ œ๊ฑฐํ•˜๊ธฐ

โ˜…โ–ถREPLACE() /๋ฌธ์ž1์„ ๋ฌธ์ž2๋กœ ๋ฐ”๊พธ์–ด์„œ ์ถœ๋ ฅ

REPLACE(ename, SUBSTR(ename, 1, 2), '*')
-- PLACE (์ปฌ๋Ÿผ,์ฐพ์„,๋ฐ”๊ฟ€)
-- ์•ž 3๋ถ€ํ„ฐ ๋’ค๋กœ ๋งˆ์Šคํ‚น


select ename , replace(ename, substr(ename,2,1),'--')
from emp
where deptno = 20;


select jumin ,replace(jumin, substr(jumin,7),'*******')
from student
where deptno1 = 101;

 

2) ์ˆซ์žํ•จ์ˆ˜

โ–ถROUND() /๋ฐ˜์˜ฌ๋ฆผ

=์ถœ๋ ฅ ์ž๋ฆฟ์ˆ˜์— ๋”ฐ๋ผ ๊ฐ’์ด ๋‹ฌ๋ผ์ง (์ฃผ์˜!!)

โ–ถTRUNC() /๋ฒ„๋ฆผ

โ–ถMOD() /๋‚˜๋จธ์ง€

โ–ถCEIL() /๊ทผ์ ‘ ํฐ ์ •์ˆ˜ 

โ–ถFLOOR() /๊ทผ์ ‘ ์ž‘์€ ์ •์ˆ˜ 

โ–ถPOWER() /์Šน์ˆ˜

 

 

 

 

3) ๋‚ ์งœ๊ด€๋ จํ•จ์ˆ˜

โ–ถSYSDATE /ํ˜„์žฌ ์‹œ์Šคํ…œ ์‹œ๊ฐ„ ์ถœ๋ ฅ

โ–ถMONTHS_BETWEEN / ๋‘๋‚ ์งœ ๊ฐœ์›” ์ˆ˜ ์ถœ๋ ฅ

= ํฐ ๋‚ ์งœ๋ฅผ ์จ์•ผ ์–‘์ˆ˜๊ฐ€ ๋‚˜์˜ด

 

โ–ถADD_MONTHS() /์ˆซ์ž๋งŒํผ ๋‹ฌ ์ถ”๊ฐ€

โ–ถNEXT_DAY() / ๋Œ์•„์˜ค๋Š” ์ตœ๊ทผ ์š”์ผ๋‚ ์งœ ๋ฐ˜ํ™˜

โ–ถLAST_DAY() / ๋‚ ์งœ๊ฐ€ ์†ํ•œ ๋งˆ์ง€๋ง‰๋‚  ์ถœ๋ ฅ

โ–ถROUND() / ์ •์˜ค๋ฅผ ๋„˜์–ด์„œ๋ฉด ๋‹ค์Œ๋‚ ์งœ, ์•„๋‹ˆ๋ฉด ๋‹น์ผ์ถœ๋ ฅ

โ–ถTRUNC() /์ •์˜ค๋ฅผ ๋„˜์–ด์„œ๋ฉด ๋ฌด์กฐ๊ฑด ๋‹น์ผ์ถœ๋ ฅ

 

4) ํ˜•๋ณ€ํ™˜ํ•จ์ˆ˜

= ๋ฌต์‹œ์  : ์ˆซ์ž์ฒ˜๋Ÿผ ์ƒ๊ธด ๋ฌธ์ž (์ˆซ์žํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ์–ด์•ผํ•œ๋‹ค) ex) 'A' ์•ˆ๋จ

= ๋ช…์‹œ์  :

SELECT 2+ TO_NUMBER('2') FROM dual

 

 

โ–ถTO_CHAR

= ์ž๋ฆฟ์ˆ˜๋ฅผ ์•Œ์•„์•ผํ•จ ?

= '' ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ๊ธฐ

= ๋‚ ์งœ-> ๋ฌธ์ž

YYYY RRRR
YY RR YEAR
MM MON MOTH
DD DAY DOTH
HH24 HH MI SS

= ์ˆซ์ž -> ๋ฌธ์ž

9 0 $ . ,

 

โ–ถTO_NUMBER()

= ์ˆซ์ž์ฒ˜๋Ÿผ ์ƒ๊ธด ๋ฌธ์ž -> ์ˆซ์ž

 

โ–ถASCII()

= ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ณ€ํ™˜

 

โ–ถTO_DATE

= ๋‚ ์งœ์ฒ˜๋Ÿผ ์ƒ๊ธด ๋ฌธ์ž -> ๋‚ ์งœ

 

5) ์ผ๋ฐ˜ํ•จ์ˆ˜

โ–ถNVL() /NULL๋งŒ๋‚˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์น˜ํ™˜

SELECT NVL COLUMN_LENGTH
SELECT NVL(COLUMN_LENGTH, 0) //NULL ๊ฐ’์ด๋ฉด 0์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

 

โ–ถNVL2(COL1,COL2,COL3) /NULL์•„๋‹ˆ๋ฉด CO2, ๋งž์œผ๋ฉด COL3 ์น˜ํ™˜

=๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€์•Š์Œ

=ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์ด๋˜๋Š”๋ฐ ๋ฐ์ดํ„ฐํ˜•์ด ๊ฐ™์•„์•ผ๋œ๋‹ค !

=์‚ผํ•ญ์—ฐ์‚ฐ

 

 

โ˜…โ–ถDECODE() /IF๋ฌธ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์กฐ๊ฑด๋ฌธ ์ฒ˜๋ฆฌ (6๊ฐ€์ง€) /๋น„๊ต์กฐ๊ฑด =(๊ฐ™๋‹ค) ์ฒ˜๋ฆฌ

DECODE(A,B,'1',null)
DECODE(A,B,'1','2')
DECODE(A,B,'1',C,'2','3')
DECODE(A,B,DECODE(C,D,',null))
DECODE(A,B,DECODE(C,D,'1','2'))
DECODE(A,B,DECODE(C,D,'1','2')'3')
SELECT deptno, name,DECODE(deptno, 101, 'computer~~') 
from professor;

 

A๊ฐ€ B๋ฉด 1
A๊ฐ€ B๋ฉด 1, ์•„๋‹ˆ๋ฉด 2
A๊ฐ€ B๋ฉด 1, A๊ฐ€ C๋ฉด 2, ๋‘˜๋‹ค ์•„๋‹ˆ๋ฉด 2
A๊ฐ€ B์ด๊ณ , C๊ฐ€ D์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด NULL
A๊ฐ€ B์ด๊ณ , C๊ฐ€ D์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 2
A๊ฐ€ B์ด๊ณ , (C๊ฐ€ D์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด2) A๊ฐ€ B๊ฐ€ ์•„๋‹ˆ๋ฉด 3

 

โ–ถCASE / ๋น„๊ต์กฐ๊ฑด ๋‹ค์–‘ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ• ๋•Œ

= ๊ฐ’ ์ฒ˜๋ฆฌ

= ๋‚ด๋ถ€์‹ ์ฝค๋งˆ ์‚ฌ์šฉ ์•ˆํ•จ XX (!!!)

CASE SUBSTR(TEL,1,INSTR(TEL,')')-1)

WHEN '02' THEN '์„œ์šธ' --CASE ๊ฐ€ WHEN ์ด๋ฉด ์„œ์šธ๋กœ ์ถœ๋ ฅํ•œ๋‹ค
WHEN '031' THEN
ELSE '๊ธฐํƒ€' END
-- CASE์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ์• ๋“ค์ด๋ฉด ELSE


3 AND 3 TEHN '1/4'  --≤3 THEN '1/4' ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
4 AND 6 TEHN '2/4'
7 AND 9 TEHN '3/4'
10 AND 12 TEHN '4/4' --ELSE '4/4' ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
END QUA

 

6) ์ •๊ทœ์‹

=๋‹ค์–‘ํ•œ ์กฐ๊ฑด ์กฐํšŒํ•˜๊ธฐ

 

^ $ . * [] [^]

 

โ–ถREGEXP_LIKE /ํŠน์ •ํŒจํ„ด ๋งค์นญ๊ฒฐ๊ณผ

โ–ถREGEXP_REPLACE /ํŠน์ •ํŒจํ„ด ์น˜ํ™˜

โ–ถREGEXP_COUNT /๋ฌธ์ž๊ฐœ์ˆ˜ ์ฐพ๊ธฐ

โ–ถREGEXP_SUBSTR /ํŠน์ •๋ฌธ์ž ์ถ”์ถœ

 

 

โ–ถ๊ทธ๋ฃนํ–‰ํ•จ์ˆ˜

 

1) GROUP ํ•จ์ˆ˜ ์ข…๋ฅ˜

SELECT LOG_CODE ~~~~
FROM
WHERE LOG_CODE = 'BAV';

/*๊ทธ๋ฃนํ•จ์ˆ˜์‚ฌ์šฉํ• ๋•Œ ๋‹ค๋ฅธ ์…€๋ ‰ํŠธ๋„ ํ‘œํ˜„( ๋„ฃ์„๋ ค๋ฉด (์ง‘๊ณ„ํ•ด์„œ ๋„ฃ๊ธฐ์œ„ํ•ด์„œ)
GROUP BY LOG_CODE; ๋ผ๊ณ  ์ ์–ด์ค˜์•ผ๋จ
๊ทธ๋ฃน ๋ฐ”์ด๋Š” ์—ฌ๋Ÿฌ๊ฐœ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ์Œ*/
์„ฑ๋ณ„๋กœ ์นด์šดํŠธํ•˜๊ธฐ ์œ„ํ•ด?  ์  ๋” ๊ทธ๋ฃนํ•‘
์—ฐ๋ น๋„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ?   ์  ๋” , ๋‚˜์ด ๊ทธ๋ฃนํ•‘

SELECT LOG_CODE, COUNT(LOG_DAY) , SUM(LOG_DAY)
FROM ATBMS2017.AUDIT_ADMIN
WHERE LOG_CODE = 'BAL'
GROUP BY LOG_CODE, LOGMONTH;

 

WITH V_DATA AS (    
SELECT NULL NM, 100 A FROM DUAL UNION ALL
SELECT 'A' NM, NULL A FROM DUAL UNION ALL    
SELECT 'A' NM, 100 A FROM DUAL UNION ALL    
SELECT 'A' NM, 100 A FROM DUAL)
SELECT NVL(NM, 'B') NAME, COUNT(A), SUM(A), AVG(A), AVG(NVL(A, 0))
FROM V_DATAGROUP
BY NVL(NM, 'B')

/* NVL(NM,'B') NAME 
GROUP BY NAME
๊ทธ๋ฃน๋ฐ”์ด์— ๋„ฃ์œผ๋ฉด ์•ˆ๋จ ( ์‹ค์ œ ์ปฌ๋Ÿผ๋ช…๋งŒ ๋„ฃ์–ด์ฃผ์„ธ์š”)*/

 

โ–ถCOUNT(*) /๋ฐ์ดํ„ฐ ์ด ๊ฑด์ˆ˜  NULL O

โ–ถCOUNT(COMM) /  ๋ฐ์ดํ„ฐ ์ด ๊ฑด์ˆ˜ NULL X 

โ–ถSUM() / ๋ฐ์ดํ„ฐ ํ•ฉ๊ณ„

โ–ถAVG() / ๋ฐ์ดํ„ฐ ํ‰๊ท ๊ฐ’

= ์—ฐ์‚ฐ ๋„์ค‘ null ๊ฐ’์ด ๋‚˜์˜ค๋ฉด ์ œ์™ธ์‹œํ‚จ๋‹ค.

AVG(NVL(A,0))

โ–ถMAX() /๋ฐ์ดํ„ฐ ๊ฐ€์žฅ ํฐ ๊ฐ’

โ–ถMIN() /๋ฐ์ดํ„ฐ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’

โ–ถSTDDEV() /ํ‘œ์ค€ํŽธ์ฐจ

โ–ถVARIANCE() /๋ถ„์‚ฐ

 

โ–ถGROUP BY / ํŠน์ • ์กฐ๊ฑด์œผ๋กœ ์„ธ๋ถ€์ ์ธ ๊ทธ๋ฃนํ™”

= GROUP BY ์— ์˜ค๋Š” ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ SELECT ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

= ๋ฐ˜๋“œ์‹œ SELECT ์ ˆ์˜ ์ปฌ๋Ÿผ, ํ‘œํ˜„์‹์€ GROUP BY ์ ˆ์— ์‚ฌ์šฉ๋˜์–ด์•ผํ•œ๋‹ค. (์˜ค๋ฅ˜)

= GROUP BY ์ ˆ์— ์‚ฌ์šฉ๋œ ์ปฌ๋Ÿผ์€ SELECT ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

= GROUP BY ์ ˆ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ปฌ๋Ÿผ๋ช…๋งŒ ์‚ฌ์šฉ, Alias ๋Š” ์‚ฌ์šฉ ๊ธˆ์ง€

 

โ–ถHAVING / ๊ทธ๋ฃนํ•‘ํ•œ ์กฐ๊ฑด ๊ฒ€์ƒ‰ํ•˜๊ธฐ

= ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” WHERE ์ ˆ๋กœ ๋น„๊ต ์กฐ๊ฑด ์“ธ ์ˆ˜๊ฐ€ ์—†์Œ

= ์œ„์น˜๋Š” GROUP BY ์œ„ ์•„๋ž˜ ์ƒ๊ด€์—†์Œ

 

โ–ถ๋‹ค์–‘ํ•œ ๋ถ„์„ ํ•จ์ˆ˜๋“ค

 

โ–ถROLLUP() /์†Œ๊ณ„๊ฐ’ ์ž๋™ ๊ณ„์‚ฐ

= GROUP BY ํ™•์žฅํ˜•ํƒœ

= ์†Œ๊ณ„์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ์ปฌ๋Ÿผ๋“ค ์ˆ˜๊ฐ€  N = N+1Level ์†Œ๊ณ„๊ฐ€ ์ƒ์„ฑ

= ์ง€์ •๋œ ์ปฌ๋Ÿผ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ฒฐ๊ณผ๋„ ๋ฐ”๋€Œ๋ฏ€๋กœ ์ฃผ์˜

ROLLUP ๊ทธ๋ฃน (DEPTNO, JOB) 
๊ธฐ๋ณธ์˜ DEPNO ๋’ค์—์„œ๋ถ€ํ„ฐ ์žก์—๋Œ€ํ•œ ์„œ๋ธŒํ† ํƒˆ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค

 

 

โ–ถCUBE() /์†Œ๊ณ„, ์ „์ฒด์ด๊ณ„ ์ž๋™ ๊ณ„์‚ฐ

= ์ง€์ •๋œ ์ปฌ๋Ÿผ์ˆ˜๊ฐ€ N , 2*N์Šน ์†Œ๊ณ„๊ฐ€ ์ƒ์„ฑ๋จ

 

โ–ถGROUPING SETS() / ๊ทธ๋ฃนํ•‘ ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ

= ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ทธ๋ฃนํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋ ๋•Œ

 

 

โ–ถLISTAGG() / ๊ทธ๋ฃนํ•‘ ํ•จ์ˆ˜ 

= ????

 

โ–ถPIVOT() / ๋‹จ์œ„ ๋ณ€๊ฒฝ

= row ๋‹จ์œ„๋ฅผ column ๋‹จ์œ„๋กœ

 

โ–ถUNPIVOT() / ๋‹จ์œ„ ์—ญ๋ณ€๊ฒฝ 

= column ๋‹จ์œ„๋ฅผ row ๋‹จ์œ„๋กœ

 

โ–ถLAG() /์ด์ „ํ–‰ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ

 

โ–ถLEAD() / ์ดํ›„์˜ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ

 

โ–ถRANK() / ์ˆœ์œ„ ์ถœ๋ ฅ

 

โ–ถDENSE_RANK /์ˆœ์œ„ํ•จ์ˆ˜

= ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ํ•˜๋‚˜์˜ ๊ฑด์ˆ˜๋กœ ์ทจ๊ธ‰ํ•จ

= ์—ฐ์†๋œ ์ˆœ์œ„๋ฅผ ๋ณด์—ฌ์คŒ

 

โ–ถROW_NUMBER() /์ˆœ์œ„ํ•จ์ˆ˜

= ๋™์ผํ•œ ๊ฐ’์ด๋ผ๋„ ๊ณ ์œ ์˜ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•จ

 

โ–ถSUM() OVER / ๋ˆ„๊ณ„ ๊ตฌํ•˜๊ธฐ

 

โ–ถRATIO_TO_REPORT() / ํŒ๋งค ๋น„์œจ ๊ตฌํ•˜๊ธฐ

 

โ–ถLAG() / ํ™œ์šฉํ•˜์—ฌ ์ฐจ์ด ๊ตฌํ•˜๊ธฐ