๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[SQL] ๋Œ€์ฒด๋ณ€์ˆ˜ (&) ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋„ฃ๊ธฐ

๐Ÿ›ข DB
    ๋ฐ˜์‘ํ˜•

    ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๋•Œ์— ์ฝ”๋ฉ˜ํŠธ(์ฃผ์„)์ด๋‚˜ ๋ฐ์ดํ„ฐ ์•ˆ์— "&"๊ฐ€ ๋ฌธ์ž์—ด๋กœ ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ DBMS ํˆด์—์„œ๋Š” ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋Œ€์ฒด๋ณ€์ˆ˜๋กœ ์ธ์‹ํ•˜๊ณ ๋Š” ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๊ท€์ฐฎ์€๋ฐ,, ๋Œ€์ฒด๋ณ€์ˆ˜๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋งž๋Š” ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์‹ค์ œ๋กœ ๋งŽ์ด๋“ค ๊ทธ๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ๋” ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. (์ด๊ฑฐ๋Š” ์ง„์งœ ์ด๋ ‡๊ฒŒํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฑด์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Œ.. ์•ฝ๊ฐ„ ๊ผผ์ˆ˜๊ฐ™์€ ๋Š๋‚Œ)

     

    ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด INSERT๋ฌธ์„ ์ž…๋ ฅํ•˜๊ฒ ์ง€์š”?

     

    insert into table(a, b, c) values ('testA', 'testB', 'testC&D');

     

    ์ €๋Š” sqlGate ํˆด์„ ์ด์šฉํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€๊ฐ™์ด ๋Œ€์ฒด๋ณ€์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํŒ์—…์ด ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

     

    ๊ทธ๋ฆฌ๊ณ ๋Š” ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€์งˆ ์•Š์ฃ  .. ๋”ฐ๋ผ์„œ ์ €๋Š” ์•„๋ž˜์™€๊ฐ™์ด ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

     

    insert into table(a, b, c) values ('testA', 'testB', 'testC&\D');

     

    ์ด๋ ‡๊ฒŒํ•˜๋ฉด "&"์˜ˆ์•ฝ์–ด ๋’ค์— ๋ฐ”๋กœ ๋Œ€์ฒด๋ณ€์ˆ˜๋ช…์ด ์˜ค์ง€์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋Œ€์ฒด๋ณ€์ˆ˜๋กœ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์ฐธ๊ณ ๋กœ ์—ญ์Šฌ๋ž˜์‹œ("\") ๋Š” ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š” ESCAPE ๋ฌธ์ž์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ESCAPE๋ฌธ์ž๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜์˜€๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ESCAPE ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ESCAPE ๋ฌธ์ž๋กœ ๋Œ€์ฒดํ•ด์ฃผ์…”์•ผ ์ฟผ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

     

     

    ๋ฐ˜์‘ํ˜•