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

๐Ÿ’Ž DataBase/๐Ÿ’Ž SQL-PL,SQL

หšโ‚Šโœฉโ€งโ‚Š [SQL] ๋‹จ์ผํ–‰ ํ•จ์ˆ˜ หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2024. 6. 20. 02:39

 

[๋‹จ์ผํ–‰ ํ•จ์ˆ˜]

ํ•œ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜



[๋ฌธ์žํ•จ์ˆ˜]


INITCAP : ์ฒซ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
LOWER : ์ „๋ถ€ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
UPPER  : ์ „๋ถ€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
LENGTH  : ๋ฌธ์ž์—ด ๊ธธ์ด ์ถœ๋ ฅ
LENGTHB  :  ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ๋ฐ”์ดํŠธ๊ฐ’ ์ถœ๋ ฅ
CONCAT ('๋ฌธ์ž์—ด1','๋ฌธ์ž์—ด2') :  ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ์ถœ๋ ฅ (|| ์—ฐ์‚ฐ์ž์™€ ๋™์ผ)

 

โ˜†*SUBSTR ('๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…, ์‹œ์ž‘์œ„์น˜, ์ถ”์ถœํ• ์ž๋ฆฟ์ˆ˜) :  ํŠน์ • ๋ฌธ์ž๋งŒ ์ถ”์ถœ

๋งˆ์ด๋„ˆ์Šค ๋ถ™์ด๋ฉด ์˜ค๋ฅธ์ชฝ -> ์™ผ์ชฝ ๊ฒ€์ƒ‰ ํ›„ ์™ผ์ชฝ -> ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ธ€์ž ์ˆ˜ ์„ธ์–ด๋ƒ„

 

SUBSTRB ('๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…, ์‹œ์ž‘์œ„์น˜, ์ถ”์ถœํ• ๋ฐ”์ดํŠธ์ˆ˜)   :  ํŠน์ • ๋ฐ”์ดํŠธ๋งŒ ์ถ”์ถœ

 

INSTR( '๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…, ์ฐพ๋Š”๊ธ€์ž,์‹œ์ž‘์œ„์น˜,๋ช‡๋ฒˆ์งธ์ธ์ง€(๊ธฐ๋ณธ๊ฐ’1)) :  ํŠน์ • ๋ฌธ์ž์˜ ์œ„์น˜ ์ถ”์ถœ

์‹œ์ž‘์œ„์น˜, ์ฐพ์œผ๋ ค๋Š”์œ„์น˜๊ฐ’ ์ƒ๋žต ๊ฐ€๋Šฅ (์ž๋™ 1)


INSTRB  :  ํŠน์ • ๋ฌธ์ž ์œ„์น˜์˜ ๋ฐ”์ดํŠธ ๊ฐ’ ์ถ”์ถœ 
LPAD ( '๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…,์ž๋ฆฟ์ˆ˜, '์ฑ„์šธ๋ฌธ์ž')  : ์™ผ์ชฝ์œผ๋กœ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ฑ„์›€
RPAD  : ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ฑ„์›€
LTRIM  ('๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…,'์ œ๊ฑฐํ• ๋ฌธ์ž')  :  ์™ผ์ชฝ์˜ ํŠน์ • ๋ฌธ์ž ์‚ญ์ œ
RTRIM  :  ์˜ค๋ฅธ์ชฝ์˜ ํŠน์ • ๋ฌธ์ž ์‚ญ์ œ

 

โ˜†* REPLACE  ('๋ฌธ์ž์—ด' or ์ปฌ๋Ÿผ๋ช…,'๋ฌธ์ž1', '๋ฌธ์ž2')   : A ๋ฅผ B ๋กœ ์น˜ํ™˜


REGEXP_REPLACE  : ํŠน์ • ํŒจํ„ด์„ ์ฐพ์•„ ์น˜ํ™˜
REGEXP_INSTR  : ํŠน์ • ํŒจํ„ด์˜ ์‹œ์ž‘์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜
REGEXP_SUBSTR  : ํŠน์ • ํŒจํ„ด์„ ์ฐพ์•„ ๋ฐ˜ํ™˜
REGEXP_LIKE  : ํŠน์ • ํŒจํ„ด์„ ์ฐพ์•„ ๋ฐ˜ํ™˜
REGEXP_COUNT  : ํŠน์ • ํŒจํ„ด ํšŸ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜

 

 

[์ˆซ์ž ๊ด€๋ จ ํ•จ์ˆ˜]

ROUND(์ˆซ์ž,์ถœ๋ ฅ์„ ์›ํ•˜๋Š” ์ž๋ฆฟ์ˆ˜) :  ๋ฐ˜์˜ฌ๋ฆผ
TRUNC (์ˆซ์ž, ์›ํ•˜๋Š” ์ž๋ฆฟ์ˆ˜) : ์ˆซ์ž ๋ฒ„๋ฆผ
MOD   ๋‚˜๋จธ์ง€ ๊ฐ’
CEIL   ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํฐ ์ •์ˆ˜
FLOOR   ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ์ž‘์€ ์ •์ˆ˜
POWER(์ˆซ์ž1,์ˆซ์ž2) :  1์˜ ์ˆซ์ž 2์Šน


[๋‚ ์งœ ๊ด€๋ จ ํ•จ์ˆ˜]

 

๋‚ ์งœ + ์ˆซ์ž = ๋‚ ์งœ

๋‚ ์งœ - ์ˆซ์ž = ๋‚ ์งœ

๋‚ ์งœ - ๋‚ ์งœ = ์ˆซ์ž


SYSDATE : ์‹œ์Šคํ…œ์˜ ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„
MONTHS_BETWEEN  : ๋‘ ๋‚ ์งœ ์‚ฌ์ด์˜ ๊ฐœ์›”์ˆ˜ (๊ฒฐ๊ณผ ์ˆซ์ž)


ADD_MONTHS  : ์ฃผ์–ด์ง„ ๋‚ ์งœ์— ๊ฐœ์›”์„ ๋”ํ•จ
NEXT_DAY(sysdate,'์›”')  : ์ฃผ์–ด์ง„ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋Œ์•„์˜ค๋Š” ๋‚ ์งœ
LAST_DAY  : ์ฃผ์–ด์ง„ ๋‚ ์งœ๊ฐ€ ์†ํ•œ ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ
ROUND  : ๋‚ ์งœ ๋ฐ˜์˜ฌ๋ฆผ

๋‚ฎ 12:00 ๊ธฐ์ค€ , ์˜คํ›„ ์ธ ๊ฒฝ์šฐ ์˜ฌ๋ฆผ
TRUNC  :  ๋‚ ์งœ ๋ฒ„๋ฆผ

๋ฌด์กฐ๊ฑด ๋‹น์ผ ์ฒ˜๋ฆฌ


[ํ˜•๋ณ€ํ™˜ํ•จ์ˆ˜]

 

CHAR   : ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž
VARCHAR2   : ๋ณ€ํ•˜๋Š” ๊ธธ์ด ๋ฌธ์ž
NUMBER   : ์ˆซ์ž
DATE   : 7๋ฐ”์ดํŠธ 
LONG   : ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž 2GB
CLOB   : ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž 4GB
BLO   : ๊ฐ€๋ณ€๊ธธ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ 4GB
RAW : ์›์‹œ ์ด์ง„ ๋ฐ์ดํ„ฐ 2000๋ฐ”์ดํŠธ
LONG RAW : ์›์‹œ ์ด์ง„ ๋ฐ์ดํ„ฐ 2GB
BFILE : ์™ธ๋ถ€ ํŒŒ์ผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ 4GB

 

 


[์ž๋™ํ˜•๋ณ€ํ™˜ (๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜)]

์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ˜•๋ณ€ํ™˜

์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Œ!!

 

 

[์ˆ˜๋™ํ˜•๋ณ€ํ™˜ (๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜)]

 

[ ์ˆซ์ž <-> ๋ฌธ์ž <-> ๋‚ ์งœ ]

 

โ˜†*TO_CHAR(์›๋ž˜๋‚ ์งœ,'์›ํ•˜๋Š”๋ชจ์–‘')

์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ, ๋‚ ์งœ๋ฅผ ๋ฌธ์ž๋กœ

  • YYYY ์—ฐ๋„ 4์ž๋ฆฌ ํ‘œ๊ธฐ
  • RRRR ์—ฐ๋„ 4์ž๋ฆฌ ํ‘œ๊ธฐ (Y2K ๋ฒ„๊ทธ๋กœ ํŒŒ์ƒ๋œ)
  • YY ์—ฐ๋„ ๋์„ 2์ž๋ฆฌ๋งŒ
  • RR ์—ฐ๋„๋ฅผ ๋งˆ์ง€๋ง‰ 2์ž๋ฆฌ
  • YEAR ์—ฐ๋„์˜ ์˜๋ฌธ ์ด๋ฆ„ ์ „์ฒด
  • MM ์›”์„ ์ˆซ์ž 2์ž๋ฆฌ๋กœ
  • MON ์›”์„ ๋œปํ•˜๋Š” ์˜์–ด
  • MONTH ์›”์„ ๋œปํ•˜๋Š” ์ด๋ฆ„ ์ „์ฒด
  • DD ์ผ์„ ์ˆซ์ž 2์ž๋ฆฌ๋กœ
  • DAY ์š”์ผ
  • DDTH ๋ช‡๋ฒˆ์งธ ๋‚ 
  • HH24 ํ•˜๋ฃจ 24์‹œ๊ฐ„
  • HH ํ•˜๋ฃจ12์‹œ๊ฐ„
  • MI ๋ถ„
  • SS ์ดˆ

 

  • 9  : 9์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ž๋ฆฌ์ˆ˜
  • 0  : ๋นˆ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ์ฑ„์›€
  • $  : $ ํ‘œ์‹œ ๋ถ™์—ฌ์„œ ํ‘œ์‹œ
  • .  :  ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ํ‘œ์‹œ
  • ,  : ์ฒœ๋‹จ์œ„ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ ํ‘œ์‹œ

 

 

โ˜†*TO_NUMBER()

๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜

ASCII()  : ์ผ๋ฐ˜ ๋ฌธ์ž๋ฅผ ๋ณ€ํ™˜ํ• ๋•Œ

 

โ˜†*TO_DATE()

๋‚ ์งœ์ฒ˜๋Ÿผ ์ƒ๊ธด ๋ฌธ์ž๋ฅผ ๋‚ ์งœ๋กœ ๋ณ€ํ™˜

 


[์ผ๋ฐ˜ํ•จ์ˆ˜]

 

NVL (์ปฌ๋Ÿผ, ์น˜ํ™˜ํ•  ๊ฐ’)  : ๋„์„ ๋งŒ๋‚˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์น˜ํ™˜
NVL2 (COL1,COL2,COL3) : ๋„ ๊ฐ’์ธ ๊ฒฝ์šฐ, ์•„๋‹๊ฒฝ์šฐ ๊ตฌ๋ถ„ํ•ด์„œ ์น˜ํ™˜

 

โ˜†* DECODE () : IF ๋ฌธ์„ SQL ์•ˆ์œผ๋กœ ๊ฐ€์ ธ์˜จ ํ•จ์ˆ˜

DECODE (A,B,'1',NULL)  -- ๋งˆ์ง€๋ง‰ NULL ์ƒ๋žต ok

DECODE (A,B,'1','2')

DECODE (A,B,'1',C,'2','3')
A๊ฐ€ B๋ฉด 1 C๋ฉด 2 ๋‘˜๋‹ค ์•„๋‹ˆ๋ฉด 3

DECODE (A,B,DECODE(C,D,'1',NULL))
A ๊ฐ€ B์ผ๋•Œ, C ๋ฉด '1' , D๋ฉด NULL ์ถœ๋ ฅ

DECODE (A,B,DECODE(C,D,'1','2'))
A๊ฐ€ B์ผ๋•Œ, C๊ฐ€ D๋ฉด 1 ์•„๋‹ˆ๋ฉด 2

DECODE (A,B,DECODE(C,D,'1','2'),'3)
A๊ฐ€ B์ผ๋•Œ, C๊ฐ€ D๋ฉด 1, ์•„๋‹ˆ๋ฉด 2, B๊ฐ€ ์•„๋‹ˆ๋ฉด 3


โ˜†*  CASE (์กฐ๊ฑด) THEN WHEN ELSE END : = ๋ฌธ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ

ํ‘œํ˜„์‹ ๋‚ด๋ถ€์— ์ฝค๋งˆ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค

 

= ์กฐ๊ฑด ์ธ ๊ฒฝ์šฐ

CASE() WHEN '02' THEN 'SELOUL'
		WHEN	THEN
        		ELSE
                
		END "LOC"


!= ์กฐ๊ฑด ์ธ ๊ฒฝ์šฐ

--between ์„ ์ด์šฉํ•ด์„œ ๋ฒ”์œ„ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉ!
CASE() WHEN JIMIN BETWEEN '01' AND '03' THEN 'SELOUL'
		WHEN ~~~	THEN ~~~~
        		ELSE ~~~
                
		END ~~




โ˜†*   [ ์ •๊ทœ์‹ Regular Expression ]

ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์ •๊ทœ์‹ !

 

^ (์บ๋Ÿฟ) : ํ•ด๋‹น ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” line ์ถœ๋ ฅ
$ (๋‹ฌ๋Ÿฌ)  :  ํ•ด๋‹น ๋ฌธ์ž๋กœ ๋๋‚˜๋Š” line ์ถœ๋ ฅ
.  : (. -> 1 character) 'S....E'  S๋กœ ์‹œ์ž‘ํ•˜์—ฌ E ๋กœ ๋๋‚˜๋Š” line 
*  : ๋ชจ๋“  ์ด๋ผ๋Š” ๋œป, ๊ธ€์ž์ˆ˜๊ฐ€ 0[]  :  ํ•ด๋‹น ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ํ•œ ๋ฌธ์ž
[^]  : ํ•ด๋‹น ๋ฌธ์ž์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฌธ์ž 

[:๋ฌธ์žํด๋ž˜์Šค:] ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ! 

{} : ์•ž๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ํšŸ์ˆ˜,๋ฒ”์œ„

์บก์ฒ˜ ๊ทธ๋ฃน(capture groups):  ์ฆ‰, ์ •๊ทœ ํ‘œํ˜„์‹์—์„œ ๊ด„ํ˜ธ ()๋กœ ๋ฌถ์€ ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ๋งค์นญ๋œ ํ…์ŠคํŠธ (=์น˜ํ™˜)

?: ๋น„ํƒ์š•์ (Non-greedy) ์ˆ˜๋Ÿ‰์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ์ ๊ฒŒ ๋ฐ˜๋ณตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์นจํ‘œ(.)๊ฐ€ 0๋ฒˆ ๋˜๋Š” 1๋ฒˆ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธ

/ ... /: ์Šฌ๋ž˜์‹œ /๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์˜ ์‹œ์ž‘๊ณผ ๋์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 


REGEXP_LIKE ํ•จ์ˆ˜ : ํŠน์ • ํŒจํ„ด๊ณผ๋งค์นญ๋˜๋Š” ๊ฒฐ๊ณผ ๊ฒ€์ƒ‰ 

'[a-z]'

'[A-Z]'

'[a-zA-Z]'

'[a-z]  '

'[a-z] [0-9]'

'[[:space:]]'

'[A-Z]{2}'

'[A-Z]{3}' 
'[A-Z]{4}'

'[[:upper:]]' -- ๋Œ€๋ฌธ์ž ์ „๋ถ€

'^[A-Za-z]' -- ์ฒซ ์‹œ์ž‘ ๋ฌธ์ž ์ง€์ •

'^[a-z]^[0-9]' -- ์†Œ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”

'^M(a|o)' -- ์กฐ๊ฑด ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ |

'[a-z]$'
'^[[:alpha:]]$' -- ์†Œ๋ฌธ์ž๋กœ ๋๋‚˜๋Š” ํ–‰


'^[^a-z]' -- ๋Œ€๊ด„ํ˜ธ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ
'^[^09a-z]' -- ์‹œ์ž‘์ด ์†Œ๋ฌธ์ž๋„ ์ˆซ์ž๋„ ์•„๋‹Œ ํ–‰

WHERE NOT REGEXP_LIKE(,'[a-z]') -- ์†Œ๋ฌธ์ž๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ชจ๋“  ํ–‰ ์ œ๊ฑฐ NOT

'[0-9]{2}\)[0-9]{4}' --๊ตญ๋ฒˆ
'...r.' -- 4๋ฒˆ์งธ ์ž๋ฆฌ ์†Œ๋ฌธ์ž ์žˆ๋Š” ํ–‰
'^[10]{2}\.[10]{2}\.[10]{2}'   --[10] 1,0 ์ค‘ ํ•˜๋‚˜
'!' 
'\?'
'\*' --๋ฉ”ํƒ€๋ฌธ์ž escape ๋ฌธ์ž

 


REGEXP_REPLACE ํ•จ์ˆ˜ : ํŠน์ • ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ

'[[:digit:]]','*'  -- ์ˆซ์ž๋ถ€๋ถ„ ๋ณ€๊ฒฝ
'[0-9]','\1-*' -- ์ˆซ์ž๋’ค์— -*์ถ”๊ฐ€ 
'\.',''  -- . ์ง€์šฐ๊ธฐ
'\.','\',1,1 -- ์ฒซ๋ฒˆ์งธ๋งŒ \๋กœ ๋ณ€๊ฒฝ

'( ){1,}',''  -- ๊ณต๋ฐฑ ์ด 2์นธ ์ด์ƒ์ธ ๊ฒƒ ์ฐพ๊ธฐ
'&id',( ){1,}','' -- ๋ชจ๋“  ๊ณต๋ฐฑ์ฃผ์˜
LOWER(Regexp_replace('&id',( ){1,}','') -- ์†Œ๋ฌธ์ž๋กœ๋„ ๋ณ€๊ฒฝ

'([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{2})','\1-\2-\3'
--๋ฐ์ดํ„ฐ๋ฅผ 2012-03-23 ์œผ๋กœ ๋ณ€๊ฒฝ

 


REGEXP_SUBSTR ํ•จ์ˆ˜

'[^ ]+[DEF]' -- ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๊ณ  DEF์ธ ๋ถ€๋ถ„ ์ถ”์ถœ
'/([[:alnum:]]+\.?){3,4}?'),'/')  -- ํ™ˆํŽ˜์ด์ง€ http ์ œ๊ฑฐ
'[^:]+',1,3  -- : ๊ธฐ์ค€์œผ๋กœ 3๋ฒˆ์งธ ๋ฌธ์ž์—ด ์ถœ๋ ฅ

substr ํ™•์žฅํŒ 

 

 


REGEXP_COUNT ํ•จ์ˆ˜
regexp_count(์ปฌ๋Ÿผ,์ฐพ์„๋ฌธ์ž,(๊ฒ€์ƒ‰์œ„์น˜์ง€์ •))

regexp_count(text,'.') -- . : ๋ชจ๋“  ๊ฒƒ
regexp_count(text,'\.') -- . ์  ํ•˜๋‚˜