[C#] LINQ

[์›๋ณธ ๋งํฌ]

LINQ๋Š” ์–ธ์–ด์— ํ†ตํ•ฉ๋œ ์ฟผ๋ฆฌ(Language Integrated Query)์˜ ์ค€๋ง๋กœ,
์–ธ์–ด ๊ตฌ๋ฌธ ๋‚ด์—์„œ SQL ์Šคํƒ€์ผ์˜ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฝค ๋ฉ‹์ง€๊ณ  ํŽธํ•œ ๋…€์„์ด๋‹ค.

ํ•œ๋ฒˆ ์ฒœ์ฒœํžˆ ์‚ดํŽด๋ณด์ž

from ... in ... select ... ๊ตฌ๋ฌธ
linq์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ from ์ ˆ๊ณผ select ์ ˆ์ด๋‹ค.
from์€ ๋ฌด์Šจ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ฌ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  select๋Š” ํ˜„์žฌ ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ˜ํ™˜ํ•  ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

ํ•œ๋ฒˆ linq ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ, ๋ฐฐ์ถœํ•ด๋ณด๊ฒ ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค. image

image ๋ณ„๋กœ ๋ณต์žกํ• ๊ฑด ์—†๋‹ค.

๊ฐ ์š”์†Œ์— 2๋ฅผ ๊ณฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด select ๋ฐ˜ํ™˜ ์‹œ์— ๊ฑด๋“œ๋ ค์ฃผ๋ฉด ๋œ๋‹ค. image

image


๊ฑธ๋Ÿฌ๋‚ด๊ธฐ: where ์ ˆ
์œ„์—์„œ๋Š” from ์ ˆ์—์„œ ๊ฐ€์ ธ์˜จ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•„์š”ํ•œ ์š”์†Œ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ๋ฐ›์•„์•ผ ํ•  ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.
where์ ˆ์€ ๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

where ์ ˆ์˜ ํ‘œํ˜„์‹์—๋Š” ์กฐ๊ฑด์‹์ด ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์กฐ๊ฑด์‹์— ๋ถ€ํ•ฉํ•˜๋Š” ์š”์†Œ๋“ค๋งŒ ๋‚จ๊ธฐ๊ณ  ์ „๋ถ€ ๋ฒ„๋ฆฐ๋‹ค.

๋งŒ์•ฝ ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ ํ™€์ˆ˜๋งŒ ๋‚จ๊ธฐ๊ณ  ๋ฒ„๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค. image

image ๊ทธ๋ ‡๋‹ค.

์ด์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ‘œํ˜„ ์ ˆ์ด ์กด์žฌํ•˜๋Š”๋ฐ, ์ฒœ์ฒœํžˆ ๋” ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.