๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Oracle/sql

[๐Ÿ“š sql ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•˜์ž ๐Ÿ“š] ์˜ค๋ผํด์˜ ์ž๋ฃŒํ˜•๊ณผ ํ•จ์ˆ˜

by ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๊ฐ์ž 2023. 4. 20.

์˜ค๋ผํด์˜ ์ž๋ฃŒํ˜•๊ณผ ํ•จ์ˆ˜

1. ์˜ค๋ผํด์˜ ์ž๋ฃŒํ˜•

  • VARCHAR2(๋ฐ”์ดํŠธ๋‹จ์œ„์˜ ๊ธธ์ด) : 4000byte๋งŒํผ์˜ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CHAR(๊ธธ์ด) : 1byte ๋ฌธ์ž๋กœ ์‚ฌ์šฉ์„ ์ฃผ๋กœ ํ•˜๋ฉฐ ํ”Œ๋ž˜๊ทธ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.(ํƒˆํ‡ด์—ฌ๋ถ€(Y/N), ์Šน์ธ์—ฌ๋ถ€(Y/N),...)
  • NUMBER(์ „์ฒด์ž๋ฆฌ์ˆ˜)- ์ •์ˆ˜, NUMBER(์ „์ฒด์ž๋ฆฌ์ˆ˜, ์†Œ์ˆ˜์ ๋’ค์ž๋ฆฌ์ˆ˜)-์†Œ์ˆ˜ : ์ตœ๋Œ€ 38์ž๋ฆฌ๊นŒ์ง€ ์ง€์ •๊ฐ€๋Šฅํ•œ ์ˆซ์žํƒ€์ž…, ์ „์ฒด์ž๋ฆฌ์ˆ˜๋กœ ์ˆซ์ž์˜ ์ „์ฒด์ž๋ฆฌ์ˆ˜๊ฐ€ ์ •ํ•ด์ง€๊ณ  ์†Œ์ˆ˜์  ๋’ค ์ž๋ฆฌ์ˆ˜์— ๋”ฐ๋ผ ์†Œ์ˆ˜์ ๋’ค์˜ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„๋‹ค.
  • DATE : ๋‚ ์งœ ํ˜•์‹์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒํ˜•, ์—ฐ,์›”,์ผ,์‹œ,๋ถ„,์ดˆ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. SYSDATE(ํ˜„์žฌ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ƒ์ˆ˜)
  • BLOB : ์ตœ๋Œ€ 4GB์˜ ๋Œ€์šฉ๋Ÿ‰ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CLOB : ์ตœ๋Œ€ 4GB์˜ ๋Œ€์šฉ๋Ÿ‰ ํ…์ŠคํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • - BLOB, CLOB์€ ์˜ˆ์ „์— ํŒŒ์ผ์—…๋กœ๋“œ ์‹œ ํŒŒ์ผ์ž์ฒด๋ฅผ ์ด์ง„๋ฐ์ดํ„ฐ๋‚˜ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅ์„ ํ–ˆ์—ˆ๋Š”๋ฐ DB ์„œ๋ฒ„๊ฐ€ ํ•ดํ‚น๋‹นํ•˜๊ฑฐ๋‚˜ ๋ถˆ์˜์˜์‚ฌ๊ณ ๋กœ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๋ฉด ํŒŒ์ผ๋“ค๋„ ๋‹ค ์‚ญ์ œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฆ˜์€ ํŒŒ์ผ์€ ํŒŒ์ผ์„œ๋ฒ„์— ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  DB์—๋Š” ๊ทธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ, ํŒŒ์ผ๋ช…์„ ์ €์žฅํ•ด์„œ ํ•จ๊ป˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • BFILE : ์ตœ๋Œ€ 4GB์˜ ๋Œ€์šฉ๋Ÿ‰ ์ด์ง„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ(.bin)์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.


2. ์˜ค๋ผํด์˜ ๊ฐ์ฒด

  • ํ…Œ์ด๋ธ”(table) : ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์žฅ์†Œ.
  • ์ธ๋ฑ์Šค(index) : ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด. ์ธ๋ฑ์Šค๋กœ ์ง€์ •๋œ ์ปฌ๋Ÿผ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€์ƒ‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋†’์•„์ง„๋‹ค.
  • ๋ทฐ(view) : ํ•˜๋‚˜๋‚˜ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ์ฒด. ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•ด์„œ ๋…ผ๋ฆฌ์ ์ธ ๊ฐ€์ƒํ…Œ์ด๋ธ”์„ DB์— ์ƒ์„ฑํ•ด์ค€๋‹ค.
  • ์‹œํ€€์Šค(sequence) : ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ์ฒด. ์ฃผ๋กœ ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋งŒ๋“ค์–ด์„œ PK(Primary Key)๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์‹œ๋…ธ๋‹˜(synonym) : ์˜ค๋ผํด ๊ฐ์ฒด ๋ณ„์นญ์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฐ์ฒด.
  • ํ”„๋กœ์‹œ์ €(procedure) : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์‚ฐ ๋ฐ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฐ˜ํ™˜ ๊ฐ’ ์—†์Œ)
  • ํ•จ์ˆ˜(function) : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์‚ฐ ๋ฐ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฐ˜ํ™˜ ๊ฐ’ ์žˆ์Œ)
  • ํŒจํ‚ค์ง€(package) : ๊ด€๋ จ์žˆ๋Š” ํ”„๋กœ์‹œ์ €์™€ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ
  • ํŠธ๋ฆฌ๊ฑฐ(trigger) : ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ž‘์—…์˜ ์—ฐ๊ฒฐ ๋ฐ ๋ฐฉ์ง€ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด


3. PL/SQL

1.DBMS์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ ๊ทธ๊ฒƒ์„ PL/SQL(Procdural Lanaguage extension to SQL)์ด๋ผ๊ณ  ํ•œ๋‹ค.

2.PL/SQL์„ ์‚ฌ์šฉํ•˜๋ฉด DBMS์—์„œ๋„ ๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ๋“ฑ ํ”„๋กœ๊ทธ๋žจ๋ฐ ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

(PL/SQL์— ๋Œ€ํ•ด์„œ๋Š” ๋’ค์— ์ž์„ธํ•˜๊ฒŒ ํฌ์ŠคํŒ… ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)


4. ํ•จ์ˆ˜

1.์˜ค๋ผํด์—์„œ๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์„ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

 

2.์˜ค๋ผํด์˜ ํ•จ์ˆ˜๋Š” ๋‹จ์ผํ–‰ํ•จ์ˆ˜, ๊ทธ๋ฃนํ•จ์ˆ˜๋กœ ๋ถ„๋ฅ˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3.๋‹จ์ผํ–‰ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ํ–‰ ์ž…๋ ฅ๋  ๋•Œ ํ•œ ํ–‰๋‹น ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋‚˜์˜ค๋Š” ํ•จ์ˆ˜. TO_DATE, LOWER, CONCAT, SUBSTR....

 

4.๊ทธ๋ฃนํ•จ์ˆ˜๋Š” ํŠน์ •์ปฌ๋Ÿผ์„ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ณ„์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ œ๊ณต๋˜๋Š” ํ•จ์ˆ˜. SUM, COUNT, AVG....


5. ๋‹จ์ผํ–‰ ํ•จ์ˆ˜

1.๋ฌธ์ž ํ•จ์ˆ˜, ์ˆซ์ž ํ•จ์ˆ˜, ๋‚ ์งœ ํ•จ์ˆ˜, ๋ณ€ํ™˜ ํ•จ์ˆ˜, ์ผ๋ฐ˜ ํ•จ์ˆ˜ ๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.

 

2.๋‹จ์ผํ–‰ ํ•จ์ˆ˜๋Š” SELECT์ ˆ, WHERE์ ˆ, HAVING์ ˆ ์–ด๋””์„œ๋“  ์‚ฌ์šฉ๊ฐ€๋Šฅ

 

3.๋‹จ์ผํ–‰ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ๊ฐ’ ํ•˜๋‚˜๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ด

  

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

  • LOWER(์ปฌ๋Ÿผ๋ช…์ด๋‚˜ ๋ฌธ์ž์—ด) : ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ›„ ๋ฐ˜ํ™˜
  • UPPER(์ปฌ๋Ÿผ๋ช…์ด๋‚˜ ๋ฌธ์ž์—ด) : ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ›„ ๋ฐ˜ํ™˜
  • INITCAP(์ปฌ๋Ÿผ๋ช…์ด๋‚˜ ๋ฌธ์ž์—ด) : ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋‚˜๋จธ์ง€ ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ›„ ๋ฐ˜ํ™˜

๋ฌธ์ž ์—ฐ์‚ฐ ํ•จ์ˆ˜

  • -CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2) : ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ํ•จ์ˆ˜. ์˜ค๋ผํด์—๋Š” || ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ์—ฐ์‚ฐ์ž๋•Œ๋ฌธ์— ํ™œ์šฉ๋„๊ฐ€ ๋–จ์–ด์ง„๋‹ค. ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • -SUBSTR(๋ฌธ์ž์—ด, ์‹œ์ž‘์œ„์น˜, ๊ฐœ์ˆ˜) : ๋ฌธ์ž์—ด์„ ์‹œ์ž‘์œ„์น˜๋ถ€ํ„ฐ ๊ฐœ์ˆ˜๋งŒํผ ์ž๋ฅธ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜
  • -LENGTH(๋ฌธ์ž์—ด) : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜
  • -LENGTHB(๋ฌธ์ž์—ด) : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ byte๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜
  • -INSTR(๋ฌธ์ž์—ด, ์ง€์ •๋ฌธ์ž) : ๋ฌธ์ž์—ด์—์„œ ์ง€์ •ํ•œ ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜
  • -TRIM(leading FROM ๋ฌธ์ž์—ด) : ์ ‘๋‘์–ด๋ฅผ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜
  • TRIM(trailing FROM ๋ฌธ์ž์—ด) : ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜
  • TRIM(both FROM ๋ฌธ์ž์—ด) : ์ ‘๋‘์–ด์™€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜
  • TRIM(๋ฌธ์ž์—ด) : ๊ณต๋ฐฑ์ด ์ œ๊ฑฐ๋œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
  • -LPAD(๋ฌธ์ž์—ด, ๊ธธ์ด, ์ฑ„์šธ๋ฌธ์ž) : ์ง€์ •๋œ ๊ธธ์ด๋งŒํผ ๋ฌธ์ž์—ด์—์„œ ๋นˆ๊ณต๊ฐ„์— ์ง€์ •ํ•œ ๋ฌธ์ž๋กœ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ์„œ ๋ฐ˜ํ™˜
  • -RPAD(๋ฌธ์ž์—ด, ๊ธธ์ด, ์ฑ„์šธ๋ฌธ์ž) : ์ง€์ •๋œ ๊ธธ์ด๋งŒํผ ๋ฌธ์ž์—ด์—์„œ ๋นˆ๊ณต๊ฐ„์— ์ง€์ •ํ•œ ๋ฌธ์ž๋กœ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ์„œ ๋ฐ˜ํ™˜

๋ฌธ์ž ์น˜ํ™˜ ํ•จ์ˆ˜

  • -TRANSLATE(๋ฌธ์ž์—ด, ์น˜ํ™˜๋  ๋ฌธ์ž, ์น˜ํ™˜ํ•  ๋ฌธ์ž) : ๋ฌธ์ž์—ด์— ์น˜ํ™˜๋  ๋ฌธ์ž๋ฅผ ์น˜ํ™˜ํ•  ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
  • -REPLACE(๋ฌธ์ž์—ด, ์น˜ํ™˜๋  ๋ฌธ์ž์—ด, ์น˜ํ™˜ํ•  ๋ฌธ์ž์—ด) : ๋ฌธ์ž์—ด์—์„œ ์น˜ํ™˜๋  ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ํ•  ๋ฌธ์ž์—ด๋กœ ์น˜ํ™˜ํ•œ ํ›„ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜

 

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

  • ROUND(์‹ค์ˆ˜, ํ‘œ์‹œํ•  ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜) : ํ‘œ์‹œํ•  ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•œ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • TRUNC(์‹ค์ˆ˜, ํ‘œ์‹œํ•  ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜) : ํ‘œ์‹œํ•  ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜ ์ดํ›„์˜ ์ˆซ์ž๋ฅผ ๋ฒ„๋ฆฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • MOD(m, n) : m์„ n์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’ ๋ฐ˜ํ™˜
  • POWER(m, n) : m์˜ n์Šน ๊ฐ’์„ ๋ฐ˜ํ™˜
  • CEIL(m) : m๋ณด๋‹ค ํฐ ์ œ์ผ ์ž‘์€ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • FLOOR(m) : m๋ณด๋‹ค ์ž‘์€ ์ œ์ผ ํฐ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • ABS(m) : m์˜ ์ ˆ๋Œ€ ๊ฐ’ ๋ฐ˜ํ™˜(๋ฌด์กฐ๊ฑด ์–‘์ˆ˜ ๋ฐ˜ํ™˜)
  • SQRT(m) : m์˜ ์ œ๊ณฑ๊ทผ ๊ฐ’ ๋ฐ˜ํ™˜
  • SIGN(m) : m์ด ์Œ์ˆ˜๋ฉด -1, ์–‘์ˆ˜๋ฉด 1, 0์ด๋ฉด 0์„ ๋ฐ˜ํ™˜. ๋ถ€ํ˜ธ ํŒ๋‹จ ํ•จ์ˆ˜

๋‚ ์งœ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ

- ์˜ค๋ผํด์—์„œ๋Š” ๋‚ ์งœ๋ฅผ 6byte๋กœ ์—ฐ์‚ฐ

- DATE ์ž๋ฃŒํ˜•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 'YYYY/MM/DD HH24:mi:ss'์˜ ํ˜•์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

- ์ถœ๋ ฅํ•  ๋‚ ์งœ์˜ ํ˜•์‹ ๋ณ€๊ฒฝ์€ ALTER SESSION SET NLS_DATE_FORMAT = '๋ณ€๊ฒฝํ•  ๋‚ ์งœํ˜•์‹'

- ALTER SESSION : ํ˜„์žฌ DB์— ์—ฐ๊ฒฐ๋œ ์„ธ์…˜์˜ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝ.

- NLS_DATE_FORMAT : ๋‚ ์งœ ์ถœ๋ ฅ ํ˜•์‹

 

๋‚ ์งœ ์—ฐ์‚ฐ

- ๋‚ ์งœ + ์ˆซ์ž : ์ˆซ์ž ์ผ๋งŒํผ์ด ๋‚ ์งœ์— ๋”ํ•ด์ง„ ์ƒˆ๋กœ์šด ๋‚ ์งœ ๋ฐ˜ํ™˜. ์ˆซ์ž ์ผ๋งŒํผ ์ดํ›„์˜ ๋‚ ์งœ.

- ๋‚ ์งœ - ์ˆซ์ž : ์ˆซ์ž ์ผ๋งŒํผ์ด ๋‚ ์งœ์—์„œ ๋บด์ง„ ์ƒˆ๋กœ์šด ๋‚ ์งœ ๋ฐ˜ํ™˜. ์ˆซ์ž ์ผ๋งŒํผ ์ด์ „์˜ ๋‚ ์งœ.

- ๋‚ ์งœ + ์ˆซ์ž / 24 : ์ˆซ์ž ์‹œ๊ฐ„๋งŒํผ์ด ๋‚ ์งœ์— ๋”ํ•ด์ง„ ์ƒˆ๋กœ์šด ๋‚ ์งœ ๋ฐ˜ํ™˜. ์ˆซ์ž ์‹œ๊ฐ„๋งŒํผ ์ดํ›„์˜ ๋‚ ์งœ.

- ๋‚ ์งœ - ์ˆซ์ž / 24 : ์ˆซ์ž ์‹œ๊ฐ„๋งŒํผ์ด ๋‚ ์งœ์— ๋นผ์ง„ ์ƒˆ๋กœ์šด ๋‚ ์งœ ๋ฐ˜ํ™˜. ์ˆซ์ž ์‹œ๊ฐ„๋งŒํผ ์ด์ „์˜ ๋‚ ์งœ.

- ๋‚ ์งœ - ๋‚ ์งœ : ๋‘ ๋‚ ์งœ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์ผ์ˆ˜๋กœ ๋ฐ˜ํ™˜

 

๋‚ ์งœ ํ•จ์ˆ˜

-ROUND(๋‚ ์งœ, ๋‚ ์งœ๋‹จ์œ„(๋…„๋„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ)) : ์ง€์ •ํ•œ ๋‹จ์œ„๊นŒ์ง€์˜ ๋‚ ์งœ๋ฅผ ๋นผ์„œ ๊ฐ€์ ธ์˜ค๊ณ  ๋‚˜๋จธ์ง€ ๋‹จ์œ„๋“ค์€ ์ดˆ๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์ถœ๋ ฅ. ๋‚ ์งœ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ๋ฐ˜์˜ฌ๋ฆผ(์‹œ๊ฐ„์ด ์ •์˜ค๊ฐ€ ์ง€๋‚ฌ์œผ๋ฉด ๋‹ค์Œ์ผ์˜ ๋‚ ์งœ, ์ผ์ด 15์ผ ์ด์ƒ ์ง€๋‚ฌ์„ ๋•Œ๋Š” ๋‹ค์Œ ์›”์ด ๋‚˜์˜จ๋‹ค.)

ex) ROUND(SYSDATE, 'yyyy') -> 20230101 00:00:00

ROUND(SYSDATE, 'mi') -> 20230413 16:00:00

-TRUNC(๋‚ ์งœ, ๋‚ ์งœ๋‹จ์œ„(๋…„๋„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ)) : ์ง€์ •ํ•œ ๋‹จ์œ„๊นŒ์ง€์˜ ๋‚ ์งœ๋ฅผ ๋นผ์„œ ๊ฐ€์ ธ์˜ค๊ณ  ๋‚˜๋จธ์ง€ ๋‹จ์œ„๋“ค์€ ์ดˆ๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์ถœ๋ ฅ. ๋‚ ์งœ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ๋ฒ„๋ฆผ.

ex) ROUND(SYSDATE, 'yyyy') -> 20230101 00:00:00

ROUND(SYSDATE, 'mi') -> 20230413 16:00:00
  • MONTHS_BETWEEN(๋‚ ์งœ1, ๋‚ ์งœ2) : ๋‚ ์งœ1์—์„œ ๋‚ ์งœ2๋ฅผ ๋บ€ ๋งŒํผ์˜ ์ผ์ˆ˜๋ฅผ ๊ฐœ์›”์ˆ˜๋กœ ์น˜ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜
  • ADD_MONTHS(๋‚ ์งœ, ์ˆซ์ž) : ๋‚ ์งœ์— ์ˆซ์ž ๊ฐœ์›”๋งŒํผ ๋”ํ•œ ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜. ์ˆซ์ž ๊ฐœ์›” ๋งŒํผ์˜ ํ›„์˜ ๋‚ ์งœ
  • NEXT_DAY(๋‚ ์งœ, ์š”์ผ) : ๋‚ ์งœ ์ดํ›„์˜ ์ง€์ •๋œ ์š”์ผ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜
  • LAST_DAY(๋‚ ์งœ) : ๋‚ ์งœ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ ๋ฐ˜ํ™˜

 

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

๋ณ€ํ™˜ ํ•จ์ˆ˜๋Š” ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋‚˜ ๋‚ ์งœ๋กœ, ์ˆซ์ž๋‚˜ ๋‚ ์งœ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜. 

-TO_CHAR, TO_DATE, TO_NUMBER๊ฐ€ ์กด์žฌํ•œ๋‹ค.

-TO_CHAR(์ˆซ์ž๋‚˜ ๋‚ ์งœ, ์ถœ๋ ฅํ˜•์‹) : ์ˆซ์ž๋‚˜ ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•œ ์ถœ๋ ฅํ˜•์‹์˜ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜.

-TO_CHAR์—์„œ ์ˆซ์ž๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋์„ ๋•Œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์ง€์ •์ž

-9 : ์ˆซ์ž์˜ ์ถœ๋ ฅ ํญ ์ง€์ •

-0 : ์„ ํ–‰ 0 ํ‘œ์‹œ

-$ : ํ™”ํ ํ‘œ์‹œ

-L : ์ง€์—ญ ํ™”ํ ํ‘œ์‹œ

-, : ์‰ผํ‘œ์˜ ์œ„์น˜ ์ง€์ •

-. : ๋งˆ์นจํ‘œ์˜ ์œ„์น˜ ์ง€์ •

-MI : ์Œ์ˆ˜ํ‘œ์‹œ

-EEEE : ์‹ค์ˆ˜ํ‘œ์‹œ(e์˜ ์ง€์ˆ˜ํ‘œ๊ธฐ๋ฒ•)

-TO_CHAR์—์„œ ๋‚ ์งœ๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋์„ ๋•Œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์ง€์ •์ž

-YYYY : ๋…„๋„๋ฅผ 4์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ

-YY : ๋…„๋„๋ฅผ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ, ๋…„๋„์˜ ๋’ท ๋‘์ž๋ฆฌ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  ์•ž ๋‘์ž๋ฆฌ๋Š” ํ˜„์žฌ ๋…„๋„์˜ ์•ž ๋‘์ž๋ฆฌ์™€ ๋™์ผํ•˜๊ฒŒ ์„ค์ •๋จ.

-RR : ๋…„๋„๋ฅผ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ, ์•ž ๋‘์ž๋ฆฌ๋Š” ๊ฐ€๊นŒ์šด ๋…„๋„์˜ ์•ž ๋‘์ž๋ฆฌ๋กœ ์„ค์ •๋จ. 99 -> RR -> 1999

-MM : ์›”์„ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ

-MONTH : ์›”์„ ํ•œ๊ธ€์ด๋‚˜ ์˜๋ฌธ์œผ๋กœ ํ‘œ๊ธฐ(APRILE, 4์›”...)

-MON : ์›”์„ ํ•œ๊ธ€์ด๋‚˜ ์˜๋ฌธ์˜ ์•ฝ์–ด๋กœ ํ‘œ๊ธฐ(APR, 4์›” ...)

-DD : ์ผ์„ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ

-DAY : ์š”์ผ์„ ํ•œ๊ธ€์ด๋‚˜ ์˜๋ฌธ์œผ๋กœ ํ‘œ๊ธฐ(SUNDAY, ์ผ์š”์ผ)

-DY : ์š”์ผ์„ ํ•œ๊ธ€์ด๋‚˜ ์˜๋ฌธ์˜ ์•ฝ์–ด๋กœ ํ‘œ๊ธฐ(SUN, ์ผ,....)

-HH24 : ์‹œ๊ฐ„์„ 1 ~ 24๊นŒ์ง€ ํ‘œ๊ธฐ

-HH : ์‹œ๊ฐ„์„ 1 ~ 12๊นŒ์ง€ ํ‘œ๊ธฐ, AM/PM ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ •ํ™•ํ•œ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒ์žฅ.

-MI : ๋ถ„์„ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ

-SS : ์ดˆ๋ฅผ 2์ž๋ฆฌ๋กœ ํ‘œ๊ธฐ

-AM/PM : ์˜ค์ „/์˜คํ›„ ํ‘œ๊ธฐ

-TO_DATE(๋ฌธ์ž์—ด, ์ถœ๋ ฅํ˜•์‹) : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ง€์ •ํ•œ ์ถœ๋ ฅํ˜•์‹์— ๋งž๋Š” DATEํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜, ์ถœ๋ ฅํ˜•์‹์€ TO_CHAR์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹๊ณผ ๋™์ผ.

-TO_NUMBER(๋ฌธ์ž์—ด, ์ถœ๋ ฅํ˜•์‹) : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ง€์ •ํ•œ ์ถœ๋ ฅํ˜•์‹์— ๋งž๋Š” NUMBERํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜, TO_CHAR์˜ ํ˜•์‹์ง€์ • ๋ฐฉ์‹๊ณผ ๋™์ผํ•œ ํ˜•์‹์ง€์ •๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

NULL ๊ฐ’ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” NVL

ํŠน์ •ํ•œ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ NULL์ผ ๋•Œ NULL ๋Œ€์‹ ์— ๋‹ค๋ฅธ ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„ ๋•Œ NVLํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ NULL์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.

- NVL(์ปฌ๋Ÿผ๋ช…, NULL๊ฐ’์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค„ ๋‚ด์šฉ) : NULL๊ฐ’์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค„ ๋‚ด์šฉ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์กฐํšŒ.

 

์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” DECODE, CASE ~ WHEN

DBMS์—์„œ๋Š” IF์กฐ๊ฑด์ ˆ์€ FUNCTION์ด๋‚˜ PROCEDURE๊ฐ™์€ PL/SQL์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ผ๋ฐ˜ ์ฟผ๋ฆฌ๋ฌธ์—์„œ๋Š” DECODE, CASE~WHEN์„ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค.

-DECODE

-DECODE(์ปฌ๋Ÿผ๋ช… or ์กฐํšŒ๋ฐ์ดํ„ฐ, ์กฐ๊ฑด1, ์กฐ๊ฑด1์ด true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ, ์กฐ๊ฑด1์ด false ์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ) : ์ปฌ๋Ÿผ์ด๋‚˜ ์กฐํšŒํ•ด์˜จ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์ด ์กฐ๊ฑด1๊ณผ ๋™์ผํ•  ๊ฒฝ์šฐ true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ์ด ์‹คํ–‰, ๋™์ผํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ๋Š” false์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ ์‹คํ–‰.

DECODE(์ปฌ๋Ÿผ๋ช… or ์กฐํšŒ๋ฐ์ดํ„ฐ,

์กฐ๊ฑด1, 

์กฐ๊ฑด1์ด true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ,

์กฐ๊ฑด2,

์กฐ๊ฑด2์ด true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ,

์กฐ๊ฑด3,

์กฐ๊ฑด3์ด true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ,

.....

์กฐ๊ฑดn,

์กฐ๊ฑดn์ด true์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ,

์กฐ๊ฑดn์ด false์ผ ๋•Œ ์‹คํ–‰๋  ๋‚ด์šฉ)
CASE ~ WHEN

CASE ์ปฌ๋Ÿผ๋ช… or ์กฐํšŒ๋ฐ์ดํ„ฐ

WHEN ์กฐ๊ฑด1 THEN ์กฐ๊ฑด1์ด true์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚ด์šฉ

WHEN ์กฐ๊ฑด2 THEN ์กฐ๊ฑด2๊ฐ€ true์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚ด์šฉ

.....

WHEN ์กฐ๊ฑดn THEN ์กฐ๊ฑดn์ด true์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚ด์šฉ

ELSE ์กฐ๊ฑด1~์กฐ๊ฑดn๊นŒ์ง€ ๋ชจ๋‘ false์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚ด์šฉ

END AS ๋ณ„์นญ

DECODE์™€ CASE์ ˆ์˜ ์ฐจ์ด์ 

DECODE๋Š” ์ปฌ๋Ÿผ์˜ ๊ฐ’์œผ๋กœ ๋น„๊ต๊ฐ€ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ๋น„๊ตํ•ด์ฃผ๋Š” ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฐ˜๋ฉด

 

CASE์ ˆ์€ WHEN์ ˆ์ด true, false๋ฅผ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— CASE ์˜†์€ ๋น„์–ด๋‘๊ณ  WHEN์ ˆ์— ์กฐ๊ฑด์‹์„ ๋„ฃ์–ด๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

WHEN์ ˆ์—์„œ๋Š” IS NULL๋กœ NULL ๊ฐ’์„ ๋น„๊ตํ•ด์ค˜์•ผ๋˜๊ณ  DECODE์—์„œ๋Š” NULL ๊ฐ’ ์ž์ฒด๋กœ ๋น„๊ต๊ฐ€๋Šฅํ•˜๋‹ค.


5. ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜(๊ทธ๋ฃน ํ•จ์ˆ˜)

๋‹จ์ผํ–‰ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๋˜๋Š” ํ–‰ ํ•˜๋‚˜์— ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜๊ฐ€ ๋‚˜์˜ค๋Š” ํ•จ์ˆ˜์˜€๋Š”๋ฐ ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ ํ–‰์˜ ์ž…๋ ฅ๋˜์–ด ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ํ•จ์ˆ˜.

 

๋งŒ์•ฝ ํ•™๋…„๋ณ„ ํ‰์ ์˜ ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํ•™๋…„๋ณ„๋กœ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์ค˜์•ผ ๋˜๊ณ  ๊ทธ ๊ทธ๋ฃน๋ณ„๋กœ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚˜์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃนํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

๊ทธ๋ฃนํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ํ–‰์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

์™ ๋งŒํ•œ ๊ทธ๋ฃนํ•จ์ˆ˜๋“ค์€ GROUP BY์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค. GROUP BY์˜ ์—ญํ• ์€ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์ค„ ์ปฌ๋Ÿผ์„ ์ง€์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

GROUP BY ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜์ ์€ SELECT์ ˆ์— ํฌํ•จ๋œ ์ปฌ๋Ÿผ(ํ†ต๊ณ„ํ•จ์ˆ˜ ์ œ์™ธ)๋“ค์€ ๋ชจ๋‘ GROUP BY์ ˆ์— ๋ช…์‹œ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

๊ทธ๋ฃนํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

  • -MAX : ๊ฐ’๋“ค ์ค‘ ์ตœ๋Œ€ ๊ฐ’์„ ๋ฐ˜ํ™˜
  • -MIN : ๊ฐ’๋“ค ์ค‘ ์ตœ์†Œ ๊ฐ’์„ ๋ฐ˜ํ™˜
  • -AVG : ์ง€์ •๋œ ๊ฐ’๋“ค์˜ ํ‰๊ท  ๊ฐ’์„ ๋ฐ˜ํ™˜
  • -COUNT : ์ง€์ •๋œ ์ปฌ๋Ÿผ์˜ ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • -SUM : ์ง€์ •๋œ ๊ฐ’๋“ค์˜ ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜

GROUP BY ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” HAVING

- GROUP BY๋กœ ๋ช…์‹œ๋œ ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์กฐ๊ฑด์€ HAVING์œผ๋กœ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

- ๊ตณ์ด HAVING์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  WHERE์ ˆ์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

 

 SELECT ๊ตฌ๋ฌธ์˜ ์ˆœ์„œ

-SELECT ์ปฌ๋Ÿผ1

, ์ปฌ๋Ÿผ2

, ์ปฌ๋Ÿผ3

, ...

, ์ปฌ๋Ÿผn

FROM ํ…Œ์ด๋ธ”๋ช…

JOIN ํ…Œ์ด๋ธ”๋ช…

ON ์กฐ์ธ์กฐ๊ฑด1

AND/OR ์กฐ์ธ์กฐ๊ฑด2

WHERE ์กฐํšŒ์กฐ๊ฑด1

AND/OR ์กฐํšŒ์กฐ๊ฑด2

GROUP BY ๊ทธ๋ฃนํ™”๋  ์ปฌ๋Ÿผ1, ๊ทธ๋ฃนํ™”๋  ์ปฌ๋Ÿผ2 ....

HAVING ๊ทธ๋ฃนํ™”๋œ ์ปฌ๋Ÿผ ์กฐ๊ฑด

ORDER BY ์ˆœ์„œ;
 

์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ ์˜ค๋ผํด์˜ ์ž๋ฃŒํ˜•๊ณผ ํ•จ์ˆ˜ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค! 

๋‹ค์Œ Sql ๋ฌธ๋ฒ• ๊ณต๋ถ€๋„ ์—ด์‹ฌํžˆ ํ•ด๋ด์š”! ๐Ÿง๐Ÿง