queryBuilder

๋ผ๋ผ๋ฒจ์˜ DB ์ฟผ๋ฆฌ ๋นŒ๋”๋Š” DB์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์šด์˜ํ•˜๋Š”๋ฐ ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋ฉฐ, PDO ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ SQL ์ธ์ ์…˜์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

์ฟผ๋ฆฌ ์กฐํšŒ

get()

$users = DB::table('users')->get();

get() ๋ฉ”์†Œ๋“œ๋Š” ์•ž์— ์ฒด์ด๋‹ํ•œ ๋ฉ”์†Œ๋“œ๋“ค์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ๋กœ Collection์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Collection์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์— items[]๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด empty()๋กœ ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ์ด ์•ˆ๋œ๋‹ค. ์ด๋Š” ๋ฐ˜ํ™˜๋œ ์ปฌ๋ ‰์…˜์˜ all()์„ ํ†ตํ•ด ๋‚ด๋ถ€ items๋ฐฐ์—ด์„ ์ ‘๊ทผํ•˜์—ฌ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

foreach ($users as $user) {
    echo $user->name;
}

foreach๋ฅผ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ์ปฌ๋Ÿผ์— ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

first() / value() / find()

$user = DB::table('users')->where('name', 'John')->first();

$email = DB::table('users')->where('name', 'John')->value('email');

first()๋ฉ”์„œ๋“œ๋Š” ์•ž์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•˜๋‚˜์˜ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  value()๋Š” ์•ž์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰์ค‘ value์˜ ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

first()๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋ธ(๊ฐ์ฒด)๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  value()๋Š” ๋‹จ์ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

find()

id๋ฅผ ์ด์šฉํ•ด์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด find()๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. find()๋„ ๋ชจ๋ธ(๊ฐ์ฒด)๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

pluck()

ํ…Œ์ด๋ธ”์—์„œ ํ•œ๊ฐœ์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์˜ ์ปฌ๋ ‰์…˜์„ ์กฐํšŒํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

๊ฒฐ๊ณผ ๋ถ„ํ• 

๋งŽ์€ ํ–‰์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด chunk()๋ฅผ ์ด์šฉํ•ด ํด๋กœ์ €๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ clousre์˜ ๋ฐ˜ํ™˜๊ฐ’์„ false๋ฅผ ์ฃผ๋ฉด ์ค‘๊ฐ„์— ์ค‘๋‹จ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ์ฒญํ‚น(๋ฒŒํฌ)ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด update์‹œ์—๋Š” chunkById()๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

ํ•จ์ˆ˜

count / max / avg / min / sum

exists / doesntExist

๋ ˆ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.

select

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ปฌ๋Ÿผ๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„๋•Œ๋Š” select๋กœ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

raw query

์ „์ฒด๋‚˜ ์ผ๋ถ€๋ถ„์„ ์ง์ ‘ SQL๋ฌธ์„ ์ด์šฉํ•ด ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Join

inner join

join()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ inner join์ด ์ˆ˜ํ–‰๋˜๊ณ  ์ด๋•Œ ๋ฉ”์„œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” join์„ ์ˆ˜ํ–‰ํ•  ํ…Œ์ด๋ธ” ์ด๋ฆ„์ด๊ณ  ๊ทธ ์ดํ›„๋Š” join ์ œ์•ฝ์กฐ๊ฑด ์ด๋‹ค.

left / outer join

์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ” join

join์˜ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ํด๋กœ์ €๋ฅผ ์ด์šฉํ•ด์„œ ์—ฌ๋Ÿฌํ…Œ์ด๋ธ”์„ joinํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์„œ๋ธŒ ์ฟผ๋ฆฌ ์กฐ์ธ

joinSub, leftJoinSub, rightJoinSub๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ์„œ๋ธŒ์ฟผ๋ฆฌ์— ์กฐ์ธ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Union

๋ฏธ๋ฆฌ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด๋‘์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ union()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.

Where

where์˜ ๋ฉ”์„œ๋“œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ธ๊ฐœ๋ฅผ ๊ฐ€์ง€์ง€๋งŒ =์ธ ๊ฒฝ์šฐ์—๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋ฐฐ์—ด์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

whereBetween() | whereNotBetween()

whereIn()

whereNull()

์‚ฝ์ž…

auto incremet ID ๊ฐ’ ์–ป๊ธฐ

์ปฌ๋Ÿผ ๊ฐ’ ์ฆ๊ฐ€

์ด ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ชจ๋ธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

Last updated