select๋ ์กฐํํ ํ๋๋ฅผ ์ง์ ํ๋ ๋ฉ์๋์
๋๋ค. ํ์
์์ ํ๊ฒ ํ๋๋ฅผ ์ ํํ๊ณ , SQL ์ง๊ณ ํจ์ ๋ฐ ํํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
์ ์ฒด ํ๋ ์กฐํ
ํน์ ํ๋ ์ ํ
ํ๋ ๋ณ์นญ (Alias)
SQL ์ง๊ณ ํจ์
Puri๋ ํ์ ์์ ํ SQL ํจ์๋ค์ ์ ๊ณตํฉ๋๋ค.COUNT
SUM, AVG, MAX, MIN
๋ฌธ์์ด ํจ์
Raw SQL ํํ์
๋ณต์กํ SQL ํํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.ํ์ ๋ณ Raw ํจ์
์ค์ฒฉ ๊ฐ์ฒด ์ ํ
์ค์ฒฉ ๊ฐ์ฒด ๊ตฌ์กฐ๋ก SELECT๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.appendSelect
๊ธฐ์กด SELECT์ ํ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.Full-Text Search ํจ์
ts_highlight (PostgreSQL)
PostgreSQL์ tsvector๋ฅผ ์ฌ์ฉํ ํ์ด๋ผ์ดํ ์ ๋๋ค.parser: ์ฟผ๋ฆฌ ํ์ (๊ธฐ๋ณธ:"websearch_to_tsquery")config: ํ ์คํธ ๊ฒ์ ์ค์ (๊ธฐ๋ณธ:"simple")startSel: ์์ ํ๊ทธ (๊ธฐ๋ณธ:"<b>")stopSel: ์ข ๋ฃ ํ๊ทธ (๊ธฐ๋ณธ:"</b>")maxWords: ์ต๋ ๋จ์ด ์minWords: ์ต์ ๋จ์ด ์maxFragments: ์ต๋ ์กฐ๊ฐ ์
ts_rank (PostgreSQL)
๊ฒ์ ๊ด๋ จ๋ ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.parser: ์ฟผ๋ฆฌ ํ์ (๊ธฐ๋ณธ:"websearch_to_tsquery")config: ํ ์คํธ ๊ฒ์ ์ค์ (๊ธฐ๋ณธ:"simple")weights: [D, C, B, A] ๊ฐ์ค์น ๋ฐฐ์ดnormalization: ์ ๊ทํ ์ต์ (0-32)
PGroonga ํจ์
PGroonga ํ์ฅ์ ์ฌ์ฉํ ์ ๋ฌธ ๊ฒ์์ ๋๋ค.pg_trgm ์ ์ฌ๋ ํจ์
PostgreSQL์pg_trgm ํ์ฅ์ด ์ ๊ณตํ๋ ์ ์ฌ๋ ์ ์๋ฅผ SELECT์์ ๊ณ์ฐํฉ๋๋ค. whereFuzzy๋ก ํ๋ณด๋ฅผ ํํฐ๋งํ ๋ค, ์ด ํจ์๋ค๋ก ์ปฌ๋ผ๋ณ ๊ฐ์ค์น ์ ์๋ฅผ ๋งค๊ธธ ์ ์์ต๋๋ค.
SqlExpression<"number">)์ rawNumber์ ์กฐํฉํ์ฌ ์ปฌ๋ผ๋ณ ๊ฐ์ค์น ์ ์๋ฅผ ๊ณ์ฐํ ์ ์์ต๋๋ค.
์ด ํจ์๋ค์
SqlExpression<"number">๋ฅผ ๋ฐํํ๋ฏ๋ก select ๋ด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. pg_trgm ํ์ฅ์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.์ค์ ์์
- ์ฌ์ฉ์ ํต๊ณ
- ์ฃผ๋ฌธ ์์ฝ
- ์ฌ์ฉ์ + ๊ฒ์๋ฌผ
- ๊ฒ์ + ํ์ด๋ผ์ดํ
ํ์ ์์ ์ฑ
SELECT์ ๋ฐํ ํ์ ์ ์๋์ผ๋ก ์ถ๋ก ๋ฉ๋๋ค.์ฃผ์์ฌํญ
1. select vs appendSelect
2. ํ ์ด๋ธ ์ ๋์ฌ ํ์
3. Raw SQL ํ์ ์ง์
๋ค์ ๋จ๊ณ
where
์กฐ๊ฑด ํํฐ๋งํ๊ธฐ
join
ํ
์ด๋ธ ์กฐ์ธํ๊ธฐ
order-by
๊ฒฐ๊ณผ ์ ๋ ฌํ๊ธฐ
advanced-methods
๊ณ ๊ธ ์ฟผ๋ฆฌ ๋ฉ์๋