Skip to main content
Puri๋Š” TypeScript๋กœ ์•ˆ์ „ํ•˜๊ฒŒ SQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž… ์•ˆ์ „ํ•œ ์ฟผ๋ฆฌ ๋นŒ๋”์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” SELECT, INSERT, UPDATE, DELETE์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ์‹œ์ž‘ํ•˜๊ธฐ

SELECT

๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐ select, selectAll, first

INSERT

๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ insert, upsert, returning

UPDATE

๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ update, increment, decrement

DELETE

๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ delete

SELECT - ๋ฐ์ดํ„ฐ ์กฐํšŒ

๊ธฐ๋ณธ SELECT

select ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ปฌ๋Ÿผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” ๊ฒฐ๊ณผ ํ•„๋“œ๋ช…, ๊ฐ’์€ ์‹ค์ œ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋ช…์ž…๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ ๋ณ„์นญ(Alias)

appendSelect - ์ปฌ๋Ÿผ ์ถ”๊ฐ€

์ด๋ฏธ ์„ ํƒํ•œ ์ปฌ๋Ÿผ์— ์ถ”๊ฐ€๋กœ ์ปฌ๋Ÿผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WHERE - ์กฐ๊ฑด ํ•„ํ„ฐ๋ง

๊ธฐ๋ณธ WHERE

๋ณต์ˆ˜ ์กฐ๊ฑด (AND)

OR ์กฐ๊ฑด

orWhere๋Š” ๋‹จ์ˆœ OR ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์กฐ๊ฑด ๊ทธ๋ฃน์€ whereGroup์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Advanced Patterns ์ฐธ๊ณ 

IN / NOT IN

LIKE ๊ฒ€์ƒ‰

INSERT - ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

๋‹จ์ผ ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

RETURNING์œผ๋กœ ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ

์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

UPDATE - ๋ฐ์ดํ„ฐ ์ˆ˜์ •

๊ธฐ๋ณธ UPDATE

WHERE ์ ˆ ํ•„์ˆ˜: UPDATE๋Š” ๋ฐ˜๋“œ์‹œ WHERE ์กฐ๊ฑด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด ์—†์ด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

increment / decrement

์ˆซ์ž ์ปฌ๋Ÿผ์„ ์ฆ๊ฐ€/๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ๋™์‹œ ์ˆ˜์ •

DELETE - ๋ฐ์ดํ„ฐ ์‚ญ์ œ

๊ธฐ๋ณธ DELETE

WHERE ์ ˆ ํ•„์ˆ˜: DELETE๋„ ๋ฐ˜๋“œ์‹œ WHERE ์กฐ๊ฑด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ

LIMIT & OFFSET - ํŽ˜์ด์ง€๋„ค์ด์…˜

LIMIT - ๊ฒฐ๊ณผ ๊ฐœ์ˆ˜ ์ œํ•œ

OFFSET - ๊ฑด๋„ˆ๋›ฐ๊ธฐ

ํŽ˜์ด์ง€๋„ค์ด์…˜ ์˜ˆ์ œ

ORDER BY - ์ •๋ ฌ

๊ธฐ๋ณธ ์ •๋ ฌ

์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ์ •๋ ฌ

first() - ๋‹จ์ผ ๊ฒฐ๊ณผ ์กฐํšŒ

first()๋Š” ์ฒซ ๋ฒˆ์งธ ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
first()๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜์„ธ์š”.

pluck() - ๋‹จ์ผ ์ปฌ๋Ÿผ ์ถ”์ถœ

ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’๋“ค๋งŒ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

count - ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

๋ ˆ์ฝ”๋“œ ๊ฐœ์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋ ค๋ฉด Puri.count() ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ select ์•ˆ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Puri.count()๋Š” SELECT ์ ˆ ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ •์  ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ๋” ๋ณต์žกํ•œ ์ง‘๊ณ„๋Š” Aggregations ์ฐธ๊ณ 

์‹ค์ „ ์˜ˆ์ œ

์‚ฌ์šฉ์ž ๋ชฉ๋ก ์กฐํšŒ API

๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ API

์กฐํšŒ์ˆ˜ ์ฆ๊ฐ€

์ฟผ๋ฆฌ ๋””๋ฒ„๊น…

debug() - SQL ์ถœ๋ ฅ

rawQuery() - Knex QueryBuilder ์–ป๊ธฐ

๋‚ด๋ถ€ Knex ์ฟผ๋ฆฌ ๋นŒ๋”์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

Joins

ํ…Œ์ด๋ธ” ์กฐ์ธํ•˜๊ธฐ

Aggregations

์ง‘๊ณ„ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

Type Safety

ํƒ€์ž… ์•ˆ์ „์„ฑ ์ดํ•ดํ•˜๊ธฐ

Advanced Patterns

๊ณ ๊ธ‰ ํŒจํ„ด ๋ฐฐ์šฐ๊ธฐ