๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์›/๐Ÿ“–DB ์ˆ˜์—…

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

    ** PreparedStatement - ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐ์ฒด. - ์ฟผ๋ฆฌ๋ฌธ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์„ bind๋ณ€์ˆ˜(?)๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฌธ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด. - ์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ˜๋ณต ์‹คํ–‰๋˜๋”๋ผ๋„ ํ•œ๋ฒˆ๋งŒ ์ƒ์„ฑํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ด ์ข‹๋‹ค. - SQLInjection ๊ณต๊ฒฉ์— ์•ˆ์ „ํ•˜๋‹ค. ์ž‘์—… ์ˆœ์„œ 1. ๋“œ๋ผ์ด๋ฒ„๋กœ๋”ฉ 2. ์ปค๋„ฅ์…˜ ์–ป๊ธฐ 3. ์ฟผ๋ฆฌ๋ฌธ์ƒ์„ฑ๊ฐ์ฒด ์–ป๊ธฐ String example=“insert into ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…,,) values(?,?,?,?)”; PreparedStatement pstmt=con.prepareStatement( example ); 4. ๋ฐ”์ธ๋“œ๋ณ€์ˆ˜์— ๊ฐ’ ์„ค์ • -์ •์ˆ˜ pstmt.setInt( ์ธ๋ฑ์Šค, ์ •์ˆ˜๊ฐ’); -์‹ค์ˆ˜ pstmt.se..

    [DB] ํ•™์› 230202(๋ชฉ) Statement

    * Statement - ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋กœ ์–ป์–ด์ง„๋‹ค. Statement stmt=con.createStatement(); - ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰(executeXxx(“์ฟผ๋ฆฌ๋ฌธ”))ํ•  ๋•Œ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰. - ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฌธ์ด๋”๋ผ๋„ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰. (์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ๋•Œ ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค.) - SQLInjection๊ณต๊ฒฉ์— ์ทจ์•ฝ.(์™ธ๋ถ€์—์„œ ์ฟผ๋ฆฌ๋ฌธ์„ ์˜ˆ์ƒํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ๋„ฃ๋Š” ๊ณต๊ฒฉ) * Statement ์‚ฌ์šฉ. - Statement ๊ฐ์ฒด ์–ป๊ธฐ Statement stmt=con.createStatement(); - ์ฟผ๋ฆฌ๋ฌธ์— ๋”ฐ๋ผ execute(), executeUpdate(), executeQuery() method๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌ. String sql=“create tabl..

    [DB] ํ•™์› 230201(์ˆ˜) JDBC, DBMS ์ž‘์—…์ˆœ์„œ, Execute, ExecuteQuery, ExecuteUpdate

    ** JDBC ( Java DataBase Connectivity ) - Java์—์„œ DBMS์™€ ์—ฐ๋™ํ•˜๊ธฐ์œ„ํ•œ ์ €์ˆ˜์ค€ API - java.sql ํŒจํ‚ค์ง€์—์„œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ํด๋ž˜์Šค๋ฅผ ์ œ๊ณต - Driver loading ๋ฐฉ์‹ ( Driver๋งŒ ์ œ๊ณต๋œ๋‹ค๋ฉด ๋ชจ๋“  DBMS์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค ) * ์‚ฌ์šฉ๊ฐ์ฒด - java.lang.Class : ๋ฐฐํฌ๋œ .jar๋ฅผ ๊ฐ์ฒดํ™”ํ•˜์—ฌ JVM์— ๋กœ๋”ฉ(instance)ํ•˜๋Š” ์ผ. - java.sql.DriverManager : ๋กœ๋”ฉ๋œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DB์—ฐ๊ฒฐ์„ ์–ป๋Š” ์ผ. - java.sql.Connection : DBMS์™€ ์—ฐ๊ฒฐ์„ ์œ ์ง€, transaction์ฒ˜๋ฆฌ, ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด ์–ป๋Š” ์ผ. - java.sql.Statement : ์ฟผ๋ฆฌ๋ฌธ์„ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ..

    [DB] ํ•™์› 230131(ํ™”) self join, ๋ฐฑ์—…, ๋ณต์›. ๊ณ„์ •์ƒ์„ฑ, ๊ณ„์ •์‚ญ์ œ, ๊ถŒํ•œ๋ถ€์—ฌ, ๊ถŒํ•œํšŒ์ˆ˜, synonym, view

    * self join - ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋ฅผ ์กฐ์ธ ํ•˜๋Š” ๊ฒƒ . - ๊ฒ€์ƒ‰์šฉ๋„์™€ ์กฐ๊ฑด์šฉ๋„๋ฅผ ์‹๋ณ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋ฌธ๋ฒ•) select alias.์ปฌ๋Ÿผ๋ช…,,,,, from ํ…Œ์ด๋ธ”๋ช… alias, ์กฐ์ธํ• ํ…Œ์ด๋ธ”๋ช… alias e2.sal and e2.ename='JONES'; -- ๊ณ„์ • ์กฐํšŒ select * from dba_users; -- ๊ถŒํ•œ ํ™•์ธ select * from dba_role_privs; ** ๋ฐฑ์—… - ๋ชจ๋“  ๊ณ„์ •์€ ๊ณ„์ •์ด ์ƒ์‚ฐํ•œ ๊ฐ์ฒด ( table, sequence, index, view, synonym, function, procedure, package) ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. - exp.exe ํˆด์„ ์‚ฌ์šฉํ•œ๋‹ค. - dos์ฐฝ์—์„œ ์ˆ˜ํ–‰. - ์ƒ์„ฑ๋œ ํŒŒ์ผ์€ ์ง€๋ฆฌ์ ์œผ๋กœ ๋–จ์–ด์ง„ ์•ˆ์ „ํ•œ์žฅ์†Œ์— ๋ณด๊ด€ ์‚ฌ์šฉ๋ฒ•) -..

    [DB] ํ•™์› 230130(์›”) sequence, currval, nextval, union, join(inner join, outer join)

    ** sequence - ์ˆœ์ฐจ์ ์ธ ๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด. - Orcacle 11g๊นŒ์ง€๋Š” DBMS๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์„ค์ •ํ•ด๋†“์€ ๋ฒˆํ˜ธ๋งŒํผ ์‚ฌ๋ผ์ง„๋‹ค. - ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํŒจ๋˜๋ฉด ํ•ด๋‹น ๋ฒˆํ˜ธ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค. - ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์ธ ๋ฒˆํ˜ธ๋กœ insert ํ•  ๋•Œ - user_sequences DD์—์„œ sequence๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. select * from user_sequences; ์ƒ์„ฑ) create sequence ์‹œํ€€์Šค๋ช… start with ์‹œ์ž‘๋ฒˆํ˜ธ maxvalue ๋ ๋ฒˆํ˜ธ increment by ์ฆ๊ฐ€๊ฐ’ cache ๋ฉ”๋ชจ๋ฆฌ์ €์žฅํ•ด๋†“์„ ์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋ฐ˜๋ณต์—ฌ๋ถ€; -- (nocycle, cycle) create sequence seq_test2 start with 10 maxvalue 1000000 increment by 10 cac..

    [DB] ํ•™์› 230127(๊ธˆ) unique, check, not null, default, alter

    ** ์ œ์•ฝ์‚ฌํ•ญ (Constraint) - ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. - primary key, foreign key, unique, check, not null 5๊ฐ€์ง€๋ฅผ ์ œ๊ณต - user_constraints DD( Data Dictionary ) ์—์„œ ํ…Œ์ด๋ธ”์— ์„ค์ •๋œ ์ œ์•ฝ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. - DD( Data Dictionary ) : DBMS์—์„œ ์šด์˜์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ ํ…Œ์ด๋ธ”. ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ insert, update, delete๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค. - ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•  ๋•Œ ์ปฌ๋Ÿผ๋‹จ์œ„ ์ œ์•ฝ์‚ฌํ•ญ, ํ…Œ์ด๋ธ”๋‹จ์œ„ ์ œ์•ฝ์‚ฌํ•ญ ๋ฌธ๋ฒ•์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. - alter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์•ฝ์‚ฌํ•ญ์„ ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€๊ฒฝ, ํ™œ์„ฑํ™”, ๋น„ํ™œ์„ฑํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. *on delete cascade - ๋ถ€..

    [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