songining
article thumbnail

5์ ˆ. WHERE์ ˆ 

WHERE์ ˆ ์—ฐ์‚ฐ์ž

 

(SQL ์—ฐ์‚ฐ์ž) 

-BETWEEN A AND B  (<-> NOT BETWEEN A AND B)

-IN (list) (<-> NOT IN (list))

-LIKE '๋น„๊ต๋ฌธ์ž์—ด' 

-IS NULL (<-> IS NOT NULL)

 

WHERE ์กฐ๊ฑด 

- CHAR ๋ณ€์ˆ˜๋‚˜ VARCHAR2 ๊ฐ™์€ ๋ฌธ์žํ˜• ํƒ€์ž…์„ ๊ฐ€์ง„ ์นผ๋Ÿผ์€ ์ธ์šฉ๋ถ€ํ˜ธ(์ž‘์€ ๋”ฐ์˜ดํ‘œ, ํฐ ๋”ฐ์˜ดํ‘œ)๋กœ ๋ฌถ์–ด์„œ ๋น„๊ต

- LIKE 

EX) SELECT PLAYER_NAME ์„ ์ˆ˜์ด๋ฆ„ , POSITION ํฌ์ง€์…˜ , BACK_NO ๋ฐฑ๋„˜๋ฒ„ , HEIGHT ํ‚ค
     FROM PLAYER
     WHERE PLAYER_NAME LIKE '์žฅ%';

%  : 0๊ฐœ์ด์ƒ์˜ ๋ฌธ์ž

_ : 1๊ฐœ์ด์ƒ์˜ ๋‹จ์ผ ๋ฌธ์ž 

- NULL : ์•„์ง ์ •์˜๋˜์ง€ ์•Š์€ ๋ฏธ์ง€์˜ ๊ฐ’, '', 0 ๊ณผ๋Š” ๋‹ค๋ฅธ ๊ฐ’ 

  NULL๊ฐ’์˜ ๋น„๊ต ์—ฐ์‚ฐ์€ IS NULL ๋˜๋Š” IS NOT NULL์ด๋ผ๋Š” ์ •ํ•ด์ง„ ๋ฌธ๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

- ROWNUM (ORACLE) : ํ…Œ์ด๋ธ”์ด๋‚˜ ์ง‘ํ•ฉ์—์„œ ์›ํ•˜๋Š” ๋งŒํผ์˜ ํ–‰๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ WHERE์ ˆ์—์„œ ์‚ฌ์šฉ 

TOP(SQL server) : TOP์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์œผ๋กœ ์ถœ๋ ฅ๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

6์ ˆ. FUNCTION

- ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์ด ๋งŽ์•„๋„ ์ถœ๋ ฅ์€ ํ•˜๋‚˜๋งŒ ๋œ๋‹ค๋Š” M:1 ๊ด€๊ณ„

- ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฐ ํ–‰๋“ค์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž‘์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์„ ์กฐ์ž‘ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ํ–‰์— ๋Œ€ํ•œ ์กฐ์ž‘ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. 

- ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ SELECT, WHERE, ORDER BY์ ˆ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

- ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ค‘์ฒฉ์ด ๊ฐ€๋Šฅ 

 

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

- ๋ฌธ์žํ˜• (LOWER, UPPER, CONCAT, SUBSTR,SUBSTRING LENTH,LEN..)

- ์ˆซ์žํ˜• (ABS, MOD, ROUND, TRUNC, ..)

- ๋‚ ์งœํ˜• (SYSDATE,GETDATE,EXTRACT,TO_NUMBER..)

- ๋ณ€ํ™˜ํ˜• (TO_CHAR, TO_NUMBER, TO_DATE..)

  * ๋ช…์‹œ์  ๋ณ€ํ™˜/ ์•”์‹œ์  ๋ณ€ํ™˜ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ ์•”์‹œ์  ์œ ํ˜• ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค ๋ฏธ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ๊ฐ€๋Šฅ

- NULL ๊ด€๋ จ ํ•จ์ˆ˜ (NVL, IS NULL, NULL IF, COALESCE)

 

+) ๋‚ ์งœํ˜• ํ•จ์ˆ˜ ์—ฐ์‚ฐ

๋‚ ์งœ + ๋‚ ์งœ = error

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

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

 

1์ผ->1
1์‹œ๊ฐ„->1/24
1๋ถ„->1/24/60
1์ดˆ->1/24/60/60

 

CASE ํ‘œํ˜„

- ํ•จ์ˆ˜์˜ ์„ฑ์งˆ ๊ฐ€์ง

- CASE ํ‘œํ˜„์€ IF-THEN-ELSE ๋…ผ๋ฆฌ์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹

1) SIMPLE_CASE_EXPRESSION

- CASE ๋‹ค์Œ์— ๋ฐ”๋กœ ์กฐ๊ฑด์— ์‚ฌ์šฉ๋˜๋Š” ์นผ๋Ÿผ์ด๋‚˜ ํ‘œํ˜„์‹ ํ‘œ์‹œ 

- ์˜ˆ์‹œ)

2) SEARCHED_CASE_EXPRESSION 

- CASE ๋‹ค์Œ์—๋Š” ์นผ๋Ÿผ์ด๋‚˜ ํ‘œํ˜„์‹์„ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ , WHEN์ ˆ์—๋Š” >,>=,=,<,<=์„ ์ด์šฉํ•œ ์กฐ๊ฑด์ ˆ์„ 

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— SIMPLE CASE EXPRESSION๋ณด๋‹ค ํ›จ์”ฌ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด ์ ์šฉ ๊ฐ€๋Šฅ

3) CASE ์ค‘์ฒฉ 

- ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์ฒ˜๋Ÿผ ์ค‘์ฒฉ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 

NULL

NULL ๊ฐ’์€ ์•„์ง ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์œผ๋กœ 0๋˜๋Š” ๊ณต๋ฐฑ๊ณผ ๋‹ค๋ฅด๋‹ค. 

- NULL๊ฐ’๊ณผ์˜ ์—ฐ์‚ฐ์€ NULL๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. 

- ORACLE์€ NULL๊ฐ’๊ณผ ๊ณต๋ฐฑ๊ฐ’''์„ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•˜์ง€๋งŒ SQL server๋Š” ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰ 

- NVL/ ISNULL (ํ‘œํ˜„์‹1,ํ‘œํ˜„์‹2) 

  ํ‘œํ˜„์‹1์˜ ๊ฒฐ๊ณผ๊ฐ’์ด NULL์ด๋ฉด ํ‘œํ˜„์‹2์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 

  ํ‘œํ˜„์‹1๊ณผ ํ‘œํ˜„์‹2์˜ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๊ฐ™์•„์•ผ ํ•จ 

  ์กฐ๊ฑด์ ˆ์—์„œ NULL๊ฐ’์ธ์ง€ ๋น„๊ตํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์œ„์™€ ๊ฐ™์€ ์ •ํ•ด์ง„ ํ˜•์‹ ๋”ฐ๋ฅด๊ธฐ. 

   ( != NULL๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๋Š” ์•ˆ๋‚˜์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์˜ด) 

- NULLIF (ํ‘œํ˜„์‹1,ํ‘œํ˜„์‹2)

  ํ‘œํ˜„์‹ 2๊ฐœ๊ฐ€ ๊ฐ™์œผ๋ฉด NULL , ์•„๋‹ˆ๋ฉด ํ‘œํ˜„์‹1 ๋ฆฌํ„ด 

- COALESCE (ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2)

๋ชจ๋“  ํ‘œํ˜„์‹์ด NULL์ด๋ฉด NULL ๋ฆฌํ„ด , ์•„๋‹ˆ๋ฉด NULL์ด ์•„๋‹Œ ๊ฐ’(ํ‘œํ˜„์‹1,2์ˆœ์„œ๋กœ) ๋ฆฌํ„ด 

 

 

- NULL๊ณผ ๊ณต์ง‘ํ•ฉ 

 ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ๊ฑด๋„ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณต์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ NULL์ธ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ค. 

 ๊ณต์ง‘ํ•ฉ ์ถœ๋ ฅ์„ ์œ„ํ•ด์„œ๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜์™€ NVL์„ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

 ex) NVL(MAX(์ธ์ˆ˜))

 

์ถœ์ฒ˜ : SQL ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ