๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์›

    [DB] ํ•™์› 230126(๋ชฉ) rownum, ์ œ์•ฝ์‚ฌํ•ญ(Constraint), primary key(๊ธฐ๋ณธํ‚ค), foreign key(์™ธ๋ž˜ํ‚ค), on delete cascade, ERD(Entity Relationship Diagram)

    **select subquery - ๋‹จ์ˆ˜ํ–‰, ๋ณต์ˆ˜ํ–‰, scalar subquery 3๊ฐ€์ง€๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ. * ๋‹จ์ˆ˜ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋‹ค๋ฅธํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํšŒํ•˜๋Š” ๊ฒƒ. select ์ปฌ๋Ÿผ๋ช…,,,, from ํ…Œ์ด๋ธ”๋ช… where ์ปฌ๋Ÿผ๋ช… = ( select ,,, ) * scalar subquery - ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ๊ฐ’์œผ๋กœ ์กฐํšŒํ•  ๋•Œ - ์„œ๋ธŒ์ฟผ๋ฆฌ๋งŒ ๋ณ„๋„์˜ ์‹คํ–‰์„ ํ•  ์ˆ˜ ์—†๋‹ค. (ctrl + F7) - ๋‹จ์ˆ˜ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ๋งŒ ๊ฐ€๋Šฅ - ํ…Œ์ด๋ธ”์€ ๋‹ค๋ฅด๊ณ  ์ปฌ๋Ÿผ๋ช… ๊ฐ™์„ ๋•Œ ์‹๋ณ„ํ•ด์•ผ ํ•œ๋‹ค.(ํ…Œ์ด๋ธ”๋ช…, ์ปฌ๋Ÿผ๋ช…) -- ๋‹ค๋ฅธํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํ•จ๊ป˜ ์กฐํšŒ -- empํ…Œ์ด๋ธ” deptํ…Œ์ด๋ธ” -- dept.deptno=emp.deptno select empno, ename, deptno, (select dname from dept whe..

    [DB] ํ•™์› 230127(๊ธˆ)

    eXERD์—์„œ student๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ์ง€์›Œ๋„ ๋ชจ๋ธ์ฐฝ์—์„œ student๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ์ง€์›Œ์ฃผ์ง€ ์•Š์œผ๋ฉด ์™„์ „ํžˆ ์‚ญ์ œ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋งŒ๋“  ํ…Œ์ด๋ธ”์„ ์˜ค๋ผํด์— ์ €์žฅํ•˜๊ธฐ 1. P(๋ฌผ๋ฆฌ ๋ชจ๋“œ)๋กœ ํ…Œ์ด๋ธ” ์ƒ์„ฑ 2. ํฌ์›Œ๋“œ ์—”์ง€๋‹ˆ์–ด๋ง -> ์„ค์ •๊ด€๋ฆฌ -> ์ƒˆ์—ฐ๊ฒฐ -> Oracle 9i ~ 12c๋ˆ„๋ฅด๊ณ  -> ์ด๋ฆ„ ์•„๋ฌด๊ฑฐ๋‚˜ ์ ๊ณ  E:\oracle\jdbc\lib\ojdbc8.jar

    [DB] ํ•™์› 230125(์ˆ˜) ์ง‘๊ณ„ํ•จ์ˆ˜, ์ง‘๊ณ„์— ๋Œ€ํ•œ ์ดํ•ฉ[rollup, cube], ์ˆœ์œ„ํ•จ์ˆ˜[rank() over(), row_number() over()], ๋‚ ์งœํ•จ์ˆ˜[add_months(), months_between()], subquery

    **์ง‘๊ณ„ํ•จ์ˆ˜ ( count, max, min, sum, avg ) - group by์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉด ๊ทธ๋ฃน๋ณ„ ์ง‘๊ณ„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. - group by์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ํ•˜๋‚˜๋กœ ์ง‘๊ณ„ํ•œ๋‹ค. - group by์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ์ด ์‚ฌ์šฉ๋˜๋ฉด error - where์ ˆ์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ (having์€ ๊ฐ€๋Šฅ) select ์ปฌ๋Ÿผ๋ช…, ์ง‘๊ณ„ํ•จ์ˆ˜(์ผ๋ฐ˜์ปฌ๋Ÿผ) from group by ์ปฌ๋Ÿผ๋ช… *์ง‘๊ณ„์— ๋Œ€ํ•œ ์ดํ•ฉ - rollup, cube ์‚ฌ์šฉ ์‚ฌ์šฉ๋ฒ•) group by rollup(์ปฌ๋Ÿผ๋ช…) rollup : ์†Œ๊ณ„ ํ›„ ์ „์ฒด ํ•ฉ๊ณ„๊ฐ€ ์ถœ๋ ฅ selectdeptno, job, sum(sal), count(*) from emp group byrollup(deptno,job); cube : ์ „์ฒด ํ•ฉ๊ณ„๊ฐ€ ์ถœ๋ ฅ๋œ ํ›„ ์†Œ..

    [DB] ํ•™์› 230120(๊ธˆ) concat, trim, lpad, rpad, nvl1, nvl2, decode, case, to_char, to_date, to_number, substr, count, max, min, sum, avg

    **๋ฌธ์ž์—ดํ•จ์ˆ˜ - concat : ๋ฌธ์ž์—ด์„ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ๋ฒ•) concat(๋ฌธ์ž์—ด, ํ•ฉ์น ๋ฌธ์ž์—ด) select '์•ˆ๋…•'||'ํ•˜์„ธ์š”', concat('์•ˆ๋…•','ํ•˜์„ธ์š”') from dual; ์•ˆ๋…•ํ•˜์„ธ์š” // ์•ˆ๋…•ํ•˜์„ธ์š” - trim : ๋ฌธ์ž์—ด์˜ ์•ž,๋’ค ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•  ๋•Œ. ์‚ฌ์šฉ๋ฒ•) trim(๋ฌธ์ž์—ด) trim์€ ๋ฌธ์ž์—ด ์•ž๋’ค์— ํŠน์ •๋ฌธ์ž๊ฐ€ ๋‚˜์˜ค๋ฉด ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค. select trim('a' from 'aaaaaaaaOracleaaaaaaaaaa') from dual; Oracle - ltrim : ๋ฌธ์ž์—ด์˜ ์•ž ๊ณต๋ฐฑ(์™ผ์ชฝ ๊ณต๋ฐฑ)๋งŒ ์ œ๊ฑฐ. ์‚ฌ์šฉ๋ฒ•) ltrim(๋ฌธ์ž์—ด) - rtrim : ๋ฌธ์ž์—ด์˜ ๋’ท ๊ณต๋ฐฑ(์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ)๋งŒ ์ œ๊ฑฐ. ์‚ฌ์šฉ๋ฒ•) rtrim(๋ฌธ์ž์—ด) - replace : ์น˜ํ™˜ ์‚ฌ์šฉ๋ฒ•) replace(๋ฌธ์ž์—ด, ์ฐพ์„๋ฌธ์ž์—ด,..

    [DB] ํ•™์› 230119(๋ชฉ) group by, distinct, order by, ์ˆ˜์น˜ํ•จ์ˆ˜(abs, round, ceil, floor, trunc), ๋ฌธ์ž์—ดํ•จ์ˆ˜(length, upper, lower, initcap)

    **group by์ ˆ - ๊ฐ™์€ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ฒ€์ƒ‰ํ•˜๋Š” ์ผ (์ค‘๋ณต๋œ ๊ฐ’์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.) - ์ง‘๊ณ„(๊ทธ๋ฃน)ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋ฃน๋ณ„ ์ง‘๊ณ„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. - having์ ˆ์„ ๋ถ™์—ฌ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ด๋Š” ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. - ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กฐํšŒ๋˜๋Š” ์ปฌ๋Ÿผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉด error๊ฐ€ ๋ฐœ์ƒ - group by๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด select์˜ ์ปฌ๋Ÿผ์—๋Š” group by๋กœ ๋ฌถ์ธ ์ปฌ๋Ÿผ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ๋˜๋Š” ๋‹ค๋ฅธ ์ปฌ๋Ÿผ์ด๋ผ๋ฉด ์ง‘๊ณ„ํ•จ์ˆ˜์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋ฌธ๋ฒ•) group by ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ผ ์ปฌ๋Ÿผ๋ช…,,, having ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ผ ์กฐ๊ฑด

    [DB] ํ•™์› 230118(์ˆ˜) update, delete, truncate, drop, alias, in, like

    **DESC ํ…Œ์ด๋ธ”๋ช…; - ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” SQL **update - ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” DML. - transaction ๋Œ€์ƒ์ฟผ๋ฆฌ๋ฌธ ๋ฌธ๋ฒ•) update ํ…Œ์ด๋ธ”๋ช… set ์ปฌ๋Ÿผ๋ช… =(๋Œ€์ž…) ๋ณ€๊ฒฝํ• ๊ฐ’,,,, where ์ปฌ๋Ÿผ๋ช… =(๊ด€๊ณ„) ๊ธฐ์ค€๊ฐ’ --where์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. update student set name='ํ™๊ธธ๋™', phone='010-1234-5678'; --where์ ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด where์ ˆ์— ๋ถ€ํ•ฉ๋˜๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ ๋ณ€๊ฒฝํ•œ๋‹ค. update student set name='ํ™๊ธธ๋™', phone='010-1234-5678'; where num = 2; -where์ ˆ์— ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐพ์•„์„œ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ. 0~n๊ฑด ๋ณ€๊ฒฝ ==========..

    [DB] ํ•™์› 230117(ํ™”) insert, null, select, transaction, ์—ฐ์‚ฐ์ž

    **insert (์‚ฝ์ž…) - DML (์กฐ์ž‘์–ด insert, update, delete, select) - ํ…Œ์ด๋ธ”์— record๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” SQL๋ฌธ - add, append(์ˆœ์„œ๊ฐ€ ์žˆ์Œ) ์™€ ๊ฐ™์€๊ฐœ๋… ์•„๋‹˜ - ์ถ”๊ฐ€๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค. - transaction ๋Œ€์ƒ ์ฟผ๋ฆฌ๋ฌธ - ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ์˜ ์ˆœ์„œ์™€ ์ƒ๊ด€ ์—†์ด ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ๋ฒ•) - ์ปฌ๋Ÿผ์„ ์ƒ๋žตํ•˜๊ณ  ์ถ”๊ฐ€ (insert ํ•  ๋•Œ ์ปฌ๋Ÿผ์˜ ์ˆœ์„œ๋Œ€๋กœ๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ, ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค) ๊ฐ’์ด ์–ด๋–ค ์ปฌ๋Ÿผ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š”์ง€ ์•Œ๊ธฐ ์–ด๋ ต๋‹ค. insert into ํ…Œ์ด๋ธ”๋ช… values(๊ฐ’,,,,); - ์ปฌ๋Ÿผ์„ ๋ช…์‹œํ•˜๊ณ  ์ถ”๊ฐ€ (insert ํ•  ๋•Œ ์ปฌ๋Ÿผ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์„œ ์ž…๋ ฅ ๊ฐ€๋Šฅ, ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค) ๊ฐ’์ด ..

    [Java] ํ•™์› 230112(๋ชฉ) Thread, ์ปดํ“จํ„ฐ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ  ๋ฐ›๊ธฐ

    packet : ํŒจํ‚ท ๋ฐฉ์‹์˜ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹ํ™”๋œ ๋ธ”๋ก ================================== **์ปดํ“จํ„ฐ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ - ์—ฐ๊ฒฐ : Socket - ๋ฐ์ดํ„ฐ ์†ก.์ˆ˜์‹  : Stream 1. ํฌํŠธ์—ด๊ธฐ ServerSocket server = new ServerSocket(50000); 2. ์„œ๋ฒ„๋กœ ์ ‘์†์„ ์‹œ๋„ Socket client = new Socket("์„œ๋ฒ„ip", 50000); 3. ์ ‘์†์ž ์†Œ์ผ“์ด ๋“ค์–ด์˜ค๋ฉด ์ ‘์†์ž ์†Œ์ผ“์„ ๋ฐ›๋Š”๋‹ค. Socket socket = server.accept( ); 4. (Server๋ณด๋‚ด๋Š” ์ชฝ)์†Œ์ผ“์—์„œ ์ถœ๋ ฅ์ŠคํŠธ๋ฆผ ์–ป๊ธฐ OutputStream os = socket.getOutputStream( ); OutputStream์€ Str..