studies/Back-end

[SQLite/SQLite3] ์ดํด๋ฆฝ์Šค ์ž๋ฐ” ์—ฐ๋™ & ์ฝ”๋“œ์— ์‚ฌ์šฉํ•˜๊ธฐ

Vada Kim 2020. 1. 12. 12:21
728x90
๋ฐ˜์‘ํ˜•

[์ดํด๋ฆฝ์Šค๋กœ ์ž๋ฐ” ์ฝ”๋”ฉ์„ ํ•  ์ค„ ์•Œ๊ณ  MySQL์„ ๋Œ€์ถฉ์ด๋ผ๋„ ์•„๋Š” ์ดˆ๋ณด์šฉ]

ํ•„์ž : ํ˜„์ง๊ฐœ๋ฐœ์žX, ์ „๋ฌธ๊ฐ€X, sqlite๋ฅผ ๋Œ€์ถฉ ๋…ํ•™ํ•œ 1๋…„์งœ๋ฆฌ ์ดˆ๋ณดO, ์ •ํ™•ํ•˜์ง€ ์•Š๊ณ  ํ‹€๋ฆฐ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ. ๋งค์šฐ ์•ผ๋งค์ž„. 

 

์„œ๋ก 

MySQL์— ๋น„ํ•ด SQlite๋Š” ๊ตฌ๊ธ€๋ง ์ž๋ฃŒ๊ฐ€ ์ ๋‹ค. ๊ทธ๋ž˜์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

 

์šฐ์„  SQLite๋Š” ํŒŒ์ผ ํ˜•ํƒœ์˜ DB(Database)๋‹ค. 

  • MySQL : ๋กœ์ปฌ DB๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ip๋ฅผ ๋งŒ์ง€์ž‘ํ•ด์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋ฉด ๋‹ค๋ฅธ PC๋“ค๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.
  • SQlite : DB๋ฅผ ๊ฐ€์ง„ ํ•ด๋‹น PC์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋Š”๋ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ์•„์žˆ๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ(์˜ˆ: ์ธํ„ฐ๋„ท ์ ‘์†์ด ํ•„์š”์—†๋Š” ํƒ€์ž์—ฐ์Šต ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฉ”๋ชจ์žฅ etc.), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์„ ๋กœ์ปฌ์— ์ƒ์„ฑํ•œ ํ›„ ๊ฑฐ๊ธฐ์— ๊ณ„์† ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ๋„ ํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋„ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์— SQlite๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌ๋ฐ›์€ ๊ณ ๊ฐ๋“ค ์—ญ์‹œ ๋กœ์ปฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ!
    ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํŒŒ์ผio๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๋‹ค. ์ด๋•Œ ํ…Œ์ด๋ธ”์ด๋ž€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ์กด์žฌํ•˜๋Š” ์†Œ๋ถ„๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ํ‘œ๋“ค์ด๋‹ค. 

 

 

 

์ดํด๋ฆฝ์Šค์—์„œ ์ž๋ฐ” ์ฝ”๋“œ์— SQLite๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ 

 

1. ์•„๋ž˜ ์ฃผ์†Œ์—์„œ sqlite-jdbc.jar ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›๋Š”๋‹ค. ๋˜๋„๋ก ์ตœ์‹ ๊ฑธ๋กœ ๋ฐ›์ž. ์ด๊ฒŒ ์žˆ์–ด์•ผ ์ดํด๋ฆฝ์Šค์—์„œ SQlite ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.34.0/

 

Central Repository: org/xerial/sqlite-jdbc/3.34.0

 

repo1.maven.org

 


2. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ, ๋‹ค์šด๋ฐ›์€ sqlite-jdbc.jar ํŒŒ์ผ์„ 'SQlite๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋”' ์†์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค. 

์ด๊ฒŒ ์ •๋‹ต์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ๋‚˜๋Š” ํ•ญ์ƒ ๊ทธ๋ ‡๊ฒŒ ํ•œ๋‹ค. ์†Œ์Šค์—์„œ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ๋„ ๊ทผ์ ‘ํ•ด์•ผํ•œ๊ฒŒ ์ข‹๋‹ค.


3. ์ดํด๋ฆฝ์Šค์—์„œ SQlite๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ>Properties>Java Build Path>Libraries ๋กœ ์ด๋™ ํ›„ ์ด jarํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ถ”๊ฐ€๋œ ๊ฑธ ํ™•์ธํ•œ ํ›„ Apply!


4. ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด DB Browser for SQLite ๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•œ๋‹ค(๋‹ค์šด ๋งํฌ ์•„๋ž˜). ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์—†์–ด๋„ Sqlite๋ฅผ ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์„ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ์—๋Š” GUI๋ผ ์ฝ˜์†”๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๋‹ค. MySQL์˜ ์›Œํฌ๋ฒค์น˜๊ฐ™์€ ๋Š๋‚Œ.

๊ฐ์ž ์šด์˜์ฒด์ œ์— ๋งž๋Š” zipํŒŒ์ผ๋กœ ๋‹ค์šดํ•œ๋‹ค.   https://sqlitebrowser.org/dl/


5[FINAL]. ์ด์ œ ์ดํด๋ฆฝ์Šค ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์—ฐ๋™ํ•ด๋ณด๊ฒ ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์†Œ์Šค์ฒ˜๋Ÿผ srcํด๋”์— ์ƒˆ ์†Œ์ŠคํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ๊ธฐ๋ณธ์ด์ž ์˜ˆ์‹œ ์ฝ”๋“œ์ด๋‹ค. 

1๋ฒˆ์งธ ์ค„ : sql๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด import ํ•„์ˆ˜! sql ์š”์†Œ๋ฅผ ๊ฐ๊ฐ importํ•˜๋Š”๊ฒŒ ๊ท€์ฐฎ์•„์„œ ์ผ๋‹จ ๋‹ค ๊ฐ€์ ธ์™”๋‹ค. ( '*' = 'all' )

* : try-catch๋ฌธ์€ ์—๋Ÿฌ(์˜ˆ์™ธ)์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์ด๋ฉฐ, try ๋ธ”๋ก์— ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. 

 

์œ„๋Š” dbํŒŒ์ผ ์ƒ์„ฑ๊นŒ์ง€์˜ ์ฝ”๋“œ์ด๋‹ค. ์—๋Ÿฌ๊ฒฐ๊ณผ์—†์ด ์‹คํ–‰๋˜์—ˆ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด์— ๋นˆ .dbํŒŒ์ผ์ด (์ตœ์ดˆ)์ƒ์„ฑ๋œ๋‹ค. ํ›„์— ์ด ์†Œ์Šค๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•ด๋„ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ dbํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ด์ œ ์•ž์„œ ์„ค์น˜ํ•œ DB browser ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด dbํŒŒ์ผ์„ ์ง์ ‘ ๋‹ค๋ฃจ์–ด ๋ณด๊ฒ ๋‹ค. dbํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. File>Open Database.

ํ…Œ์ŠคํŠธ๋‹ˆ๊นŒ ์ด๊ณณ์—์„œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋†“๊ณ  ์ฝ”๋“œ์—์„œ ์‹คํ–‰์„ ํ•˜๋Š”๊ฒŒ ํŽธํ•  ๊ฒƒ์ด๋‹ค.

Create Table>ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค. 

Execute SQLํƒญ์€ ์ฝ˜์†”์ฒ˜๋Ÿผ ํ•ด๋†จ๋‹ค. GUI๊ฐ€ ์–ด์ƒ‰ํ•˜๋‹ค๋ฉด ์ด๊ณณ์—์„œ ์ž‘์—…ํ•˜์ˆ‘.

 

์ด์ œ ์ž๋ฐ” ์ฝ”๋“œ ์†์—์„œ ํ…Œ์ด๋ธ”์„ ๋‹ค๋ฃจ์–ด๋ณด๊ฒ ๋‹ค. INSERT๋ฌธ์„ ํ•˜๋‚˜ ์ž‘์„ฑํ–ˆ๋‹ค. SQLite๋Š” MySQL๊ณผ ๋ฌธ๋ฒ•์ด ๊ฑฐ์˜ ๋˜‘๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์ค€ sql๋ฌธ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ด์ง€, ๋ฌธ๋ฒ•์ด ์ข€ ๋‹ค๋ฅธ sql๋„ ์žˆ๋‹ค. 

์ž๋ฐ” ์ฝ”๋“œ์—์„  sql์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฌธ์„ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด ๋ณด๋‚ธ๋‹ค. ResultSet์ด ์–ด๋Š ์ƒํ™ฉ์—์„œ ์“ฐ์ด๋Š”๊ฑด์ง€๋Š” ๋‚˜๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. 

์œ„ ์ฝ”๋“œ๊ฐ€ ์—๋Ÿฌ์—†์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด DB browser์—์„œ ์ฟผ๋ฆฌ๋ฌธ์ด ์ž˜ ๋“ค์–ด๊ฐ„๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

INSERTํ•œ ๊ฐ’์ด ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ”๋‹ค.

์ด๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

SQL๋ฌธ๋ฒ•์ด๋‚˜ ๊ทธ ์™ธ๋Š” ์Šค์Šค๋กœ ๊ณต๋ถ€ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์†Œ์Šค๋“ค์„ ์ฐธ๊ณ ํ•˜๊ธธ. ๋‚˜๋„ SQL๋ฌธ๋ฒ• ์•„์ง ์ž˜ ๋ชจ๋ฅธ๋‹ค. ๊ทผ๋ฐ ๊ตฌ๊ธ€๋ง์œผ๋กœ ๋‹ค ๋‚˜์˜จ๋‹ค. ๊ทธ๋ž˜๋„ ๊ผญ ๊ณต๋ถ€ํ•ด์•ผํ•œ๋‹ค.  

 


 

728x90
๋ฐ˜์‘ํ˜•