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

์ „์ฒด ๊ธ€193

[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(2๊ณผ๋ชฉ-1) [ 2๊ณผ๋ชฉ SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ ] 2-1 SQL ๊ธฐ๋ณธ DCL : ์ปจํŠธ๋กค = ๊ถŒํ•œ DDL : Definition ์ •์˜์–ด. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(ํ…Œ์ด๋ธ” ์ด๋ฆ„, ๊ตฌ์กฐ ์ƒ์„ฑ, ํ…Œ์ด๋ธ” ์‚ญ์ œ) ์ •์˜ DML : Manipulation ๋ฐ์ดํ„ฐ ์กฐ์ž‘(์ƒˆ๋กœ์šดํ–‰ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ) + ์กฐํšŒ TCL : Transaction ์ปจํŠธ๋กค(DML ์กฐ์ž‘๊ฒฐ๊ณผ ์ž‘์—…๋‹จ์œ„๋ณ„๋กœ ์ œ์–ด) PL/SQL, T-SQL : ์ ˆ์ฐจ์  ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด, ์ƒ์„ธํžˆ ๋ช…์„ธํ•˜๋Š” ์–ธ์–ด ๋ฐ์ดํ„ฐ ๋ถ€์†์–ด : ํ˜ธ์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ ์†์— ์‚ฝ์ž…๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” DML ๋ช…๋ น์–ด๋“ค ๋ฐ์ด๋ธ” ์ปฌ๋Ÿผ ์ •์˜ ๋ณ€๊ฒฝ : Oracle-ALTER TABLE + MODIFY ... SQL Server-ALTER TABLE + ALTER ... SQL Server : ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ๋™์‹œ ์ˆ˜์ • ์ง€์›X. ๊ด„ํ˜ธ์‚ฌ์šฉX, NOT .. 2023. 11. 17.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(1๊ณผ๋ชฉ) [ 1๊ณผ๋ชฉ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ] 1-1 ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์ค‘์š”์„ฑ๊ณผ ์œ ์˜์  : ์ค‘๋ณต, ๋น„์œ ์—ฐ์„ฑ(์—…๋ฌด๋ณ€ํ™”๋กœ ์˜ํ–ฅX), ๋น„์ผ๊ด€์„ฑ(a๊ฐฑ์‹ ์œผ๋กœ b์ž๋™๊ฐฑ์‹ X) '์‚ฌ์šฉ์ž์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค'์™€ 'ํ…Œ์ด๋ธ”' ์—ฐ๊ณ„์„ฑ์ด ๋†’์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์—…๋ฌด๋ณ€๊ฒฝ์ด ์ทจ๋žตํ•ด์ง€๋ฏ€๋กœ ์—ฐ๊ณ„์„ฑX ๋ถ„๋ฆฌO = ๋น„์œ ์—ฐ์„ฑ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์ˆœ์„œ : ๊ฐœ ๋…ผ ๋ฌผ (๊ฐœ๋…-์—…๋ฌด์ค‘์‹ฌ ์ „์‚ฌ์ , ๋…ผ๋ฆฌ-์—…๋ฌด ์ •ํ™•ํžˆ ํ‘œํ˜„, ๋ฌผ๋ฆฌ-์‹ค์ œ DB) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ์š”์†Œ : ์™ธ ๊ฐœ ๋‚ด (์™ธ๋ถ€์Šคํ‚ค๋งˆ-์‚ฌ์šฉ์ž, ๋‚ด๋ถ€์Šคํ‚ค๋งˆ-๋ชจ๋“ ์‚ฌ์šฉ์ž๊ด€์ , ๋ฌผ๋ฆฌ์Šคํ‚ค๋งˆ-๋ฌผ๋ฆฌ์žฅ์น˜) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ : ๋…ผ๋ฆฌ, ๋ฌผ๋ฆฌ (๋…ผ๋ฆฌ-๋ชจ๋“ ์‚ฌ์šฉ์ž๋ณ€๊ฒฝ์œผ๋กœ ๊ฐœ์ธ์‚ฌ์šฉ์ž ์˜ํ–ฅX, ๋ฌผ๋ฆฌ์žฅ์น˜ ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ์‚ฌ์šฉ์ž์Šคํ‚ค๋งˆ ์˜ํ–ฅX) ERD ์ž‘์„ฑ์ˆœ์„œ : ์—”ํ‹ฐํ‹ฐ ๊ทธ๋ฆฐ๋‹ค -> ๋ฐฐ์น˜ -> ๊ด€๊ณ„์„ค์ • -> ๊ด€๊ณ„๋ช… ๊ธฐ์ˆ  -> ์ฐธ์—ฌ๋„ ๊ธฐ์ˆ  -> ํ•„์ˆ˜์—ฌ๋ถ€.. 2023. 11. 17.
[ch.14] ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ข…์—ฐ์‚ฐ ์šฐ์™€ ์ด๊ฑฐ ์–ธ์ œ ๋ณต๋ถ™ํ•˜์ง€ ใ…‹ใ…‹.. ์ผ๋‹จ ์ด๋ฏธ์ง€๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค 2023. 11. 15.
[ch.14] ์ŠคํŠธ๋ฆผ์˜ ์ค‘๊ฐ„์—ฐ์‚ฐ ์ŠคํŠธ๋ฆผ ์ž๋ฅด๊ธฐ : skip, limit ์ŠคํŠธ๋ฆผ์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ๋‚ผ ๋•Œ ์‚ฌ์šฉํ•จ. skip( ): n๊ฐœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ limit( ): ์š”์†Œ๋ฅผ n๊ฐœ๋กœ ์ œํ•œํ•˜๊ธฐ ๊ธฐ๋ณธํ˜• ์ŠคํŠธ๋ฆผ์—๋„ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Œ. ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ : distinct, filter distinct( ): ์ค‘๋ณต ์ œ๊ฑฐ filter( ): ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ๋งŒ ๋‚จ๊น€. ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Predicate๊ฐ€ ํ•„์š”ํ•จ. ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ boolean์ธ ๋žŒ๋‹ค์‹๋„ ๊ฐ€๋Šฅํ•จ. ๋‹ค๋ฅธ ์กฐ๊ฑด์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ex) ์ŠคํŠธ๋ฆผ.filter(A).filter(B).filter(C) ์ •๋ ฌํ•˜๊ธฐ : sorted, Comparator์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฉ”์„œ๋“œ sorted( ): ์ง€์ •๋œ Comparator๋กœ ์ŠคํŠธ๋ฆผ์„ ์ •๋ ฌํ•จ. Comparator๋Œ€์‹  int๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋žŒ๋‹ค์‹์„ .. 2023. 11. 15.
[ch.14] ์ŠคํŠธ๋ฆผ์˜ ์ƒ์„ฑ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ์ŠคํŠธ๋ฆผ์ด ํ•„์š”ํ•จ. ๋‹ค์–‘ํ•œ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ. ์ปฌ๋ ‰์…˜ : stream Collection ์ธํ„ฐํŽ˜์ด์Šค์— stream( ) ์ •์˜๋˜์–ด์žˆ์Œ. List, Set์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ ์ด ๋ฉ”์„œ๋“œ๋กœ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ. stream( )๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ์ปฌ๋ ‰์…˜์„ ์†Œ์Šค๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์„ ๋ฐ˜ํ™˜ํ•จ. ๋ฐฐ์—ด : stream, of ๋ฐฐ์—ด์„ ์†Œ์Šค๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ ํŠน์ • ๋ฒ”์œ„์˜ ์ •์ˆ˜ : range, rangeClosed IntStream, Long Streamํด๋ž˜์Šค๋Š” ์ง€์ •๋œ ๋ฒ”์œ„์˜ ์—ฐ์†๋œ ์ •์ˆ˜๋ฅผ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. range( begin, end ), rangeClosed( begin, end ) ๋นˆ์ŠคํŠธ๋ฆผ : empty ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์—†.. 2023. 11. 15.
[ch.14] ์ŠคํŠธ๋ฆผ์˜ ํŠน์ง• ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ์†Œ์Šค ์ถ”์ƒํ™” + (์ž์ฃผ์‚ฌ์šฉํ•˜๋Š”)๋ฉ”์„œ๋“œ ์ •์˜ ๋ฐ์ดํ„ฐ์†Œ์Šค ์ถ”์ƒํ™”: ๋ฐ์ดํ„ฐ์†Œ์Šค๊ฐ€ ๋ฌด์—‡์ด๋“  ๊ฐ„์— ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ=์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ↑ (๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜, ํŒŒ์ผ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•จ) ์œ ํ•œ์ŠคํŠธ๋ฆผ/๋ฌดํ•œ์ŠคํŠธ๋ฆผ์ด ์žˆ์Œ. ์ŠคํŠธ๋ฆผ์˜ ํŠน์ง• โ—‡ ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ฝ๊ธฐ๋งŒ ํ•จ. ๋ณ€๊ฒฝ์€ X. ํ•„์š”์‹œ ๋ฐ˜ํ™˜์ด ๊ฐ€๋Šฅํ•จ(๊ฒฐ๊ณผ๋ฅผ ๋‹ด์€ ์ปฌ๋ ‰์…˜/๋ฐฐ์—ด) โ—‡ ์ŠคํŠธ๋ฆผ์€ ์ผํšŒ์šฉ์ด๋‹ค. ํ•œ ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด(์ตœ์ข…์—ฐ์‚ฐ์ˆ˜ํ–‰) ์ŠคํŠธ๋ฆผ ๋‹ซํ˜€์„œ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ. ํ•„์š”์‹œ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ฉด ๋จ. โ—‡ ์ŠคํŠธ๋ฆผ์€ ์ž‘์—…์„ ๋‚ด๋ถ€๋ฐ˜๋ณต์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋‚ด๋ถ€๋ฐ˜๋ณต=๋ฐ˜๋ณต๋ฌธ์„ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์— ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. โ—‡ ์ŠคํŠธ๋ฆผ์˜ ์—ฐ์‚ฐ์€ ์ค‘๊ฐ„์—ฐ์‚ฐ๊ณผ ์ตœ์ข…์—ฐ์‚ฐ์ด ์žˆ๋‹ค. ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•ด์„œ ๋ณต์žกํ•œ ์ž‘์—…๋“ค์„ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•จ. *์ค‘๊ฐ„์—ฐ์‚ฐ:.. 2023. 11. 15.
[ch.14] java.util.function ํŒจํ‚ค์ง€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž์ฃผ ์“ฐ์ด๋Š” ํ˜•์‹์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋‘ . java.util.function ํŒจํ‚ค์ง€์˜ ์ธํ„ฐํŽ˜์ด์Šค๋“ค์€ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’ ๋ชจ๋‘ ์ œ๋„ค๋ฆญ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋˜์–ด ์žˆ์Œ. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธํ˜• ๊ฐ’(primitive type)์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ํ•ด๋‹น ๊ธฐ๋ณธํ˜•์˜ ๋ž˜ํผ(wrapper) ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ. ์กฐ๊ฑด์‹ ํ‘œํ˜„์— ์‚ฌ์šฉ๋˜๋Š” Predicate predicate๋Š” Function์˜ ๋ณ€ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํƒ€์ž…์ด boolean์ž„. ์กฐ๊ฑด์‹์„ ๋žŒ๋‹ค์‹์œผ๋กœ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•จ. java.util.function ํŒจํ‚ค์ง€์˜ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋“ค ๊ธฐ๋ณธํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค ๋‹จ์ง€ ์„ฑ๋Šฅ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•จ. Function์˜ ํ•ฉ์„ฑ ๋‘ ๋žŒ๋‹ค์‹์„ ํ•ฉ์„ฑํ•ด์„œ ์ƒˆ๋กœ์šด ๋žŒ๋‹ค์‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. ์–ด๋Š ํ•จ์ˆ˜๋ฅผ ๋จผ์ € ์ ์šฉํ•˜๋Š๋ƒ์— .. 2023. 11. 15.