์ฝ๋ - ํจ์บ ์์ ์ฝ๋ ์ฐธ๊ณ (ํจ์บ ์์ ์ ๋ฆฌ)
<์ด์ ๊ธ>
https://silvercoding.tistory.com/46
[python ๊ธฐ์ด] 14. SQLITE ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ (2) - ํ ์ด๋ธ ์กฐํ
์ฝ๋ - ํจ์บ ์์ ์ฝ๋ ์ฐธ๊ณ (ํจ์บ ์์ ์ ๋ฆฌ) <์ด์ ๊ธ> https://silvercoding.tistory.com/45 https://silvercoding.tistory.com/44 https://silvercoding.tistory.com/43 https://silvercoding.tistory.com/42..
silvercoding.tistory.com
- sqlite3 import
import sqlite3
- DB ์ฐ๊ฒฐ (์์ฑ) / (ํ์ผ)
conn = sqlite3.connect('./resource/database.db')
- Cursor ์ฐ๊ฒฐ
c = conn.cursor()
- ์ปค๋ฐ
conn.commit()
์ด๋ฒ์ ์คํ ์ปค๋ฐ ์ค์ ์ ํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ฝ๋์ ๊ฐ์ฅ ๋ง์ง๋ง์๋ ์ปค๋ฐ์ ์ ์ธํด ๋์์ผ ํ๋ค. ์ด ์์ ์ฝ๋๋ฅผ ์์ฑํ์.
- ๋ฐ์ดํฐ ์์
(1) ๋ฐฉ๋ฒ 1 : ํํ
c.execute("UPDATE users SET username = ? WHERE id = ?", ('niceman', 2))
id = 2 ์ธ username์ niceman์ผ๋ก ๋ฐ๊พธ๋ผ๋ ๋ป์ ์ฝ๋์ด๋ค.
(2) ๋ฐฉ๋ฒ 2 : ๋์ ๋๋ฆฌ
c.execute("UPDATE users SET username = :name WHERE id = :id", {'name': 'goodgirl', 'id': 5})
๋์ ๋๋ฆฌ๋ก key๋ฅผ ์ฐ๊ฒฐํ์ฌ ์์ ํ ์๋ ์๋ค.
(3) ๋ฐฉ๋ฒ 3 : format
c.execute("UPDATE users SET username = '%s' WHERE id ='%s'" % ('badboy', 3))
% ๋ฅผ ์ด์ฉํ์ฌ ์ฐ๊ฒฐํด ์ค ์๋ ์๋ค.
* ์ค๊ฐ ๋ฐ์ดํฐ ํ์ธ 1
for user in c.execute("SELECT * FROM users"):
print(user)
(1, 'Kim', 'silver@naver.com', '010-0000-0000', 'kim.com', '2021-08-03 13:28:23')
(2, 'niceman', 'Park@daum.net', '010-1111-1111', 'Park.com', '2021-08-03 13:28:23')
(3, 'badboy', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2021-08-03 13:28:23')
(4, 'Cho', 'Cho@daum.net', '010-3333-3333', 'Cho.com', '2021-08-03 13:28:23')
(5, 'goodgirl', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-08-03 13:28:23')
์ด๋ ๊ฒ ๋ฐ์ดํฐ ์ํ๋ฅผ ํตํด ๋ฐ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ญ์
(1) Row Delete
# ๋ฐฉ๋ฒ 1
c.execute("DELETE FROM users WHERE id = ?", (2,))
# ๋ฐฉ๋ฒ 2
c.execute("DELETE FROM users WHERE id = :id", {'id' : 5})
# ๋ฐฉ๋ฒ 3
c.execute("DELETE FROM users WHERE id = '%s'" % 4)
์ญ์ ๋ ๊ฐ์ 3๊ฐ์ง์ ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋ ํ์ ์ ํํ์ฌ ์ญ์ ํ ์ ์๋ค.
* ์ค๊ฐ ๋ฐ์ดํฐ ํ์ธ 2
for user in c.execute("SELECT * FROM users"):
print(user)
(1, 'Kim', 'silver@naver.com', '010-0000-0000', 'kim.com', '2021-08-03 13:28:23')
(3, 'badboy', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2021-08-03 13:28:23')
(2) ํ ์ด๋ธ ์ ์ฒด ๋ฐ์ดํฐ ์ญ์
print("users db deleted : ", conn.execute('DELETE FROM users').rowcount, " rows")
users db deleted : 2 rows
๋ชจ๋ ์ญ์ ๋์๋ค!
- ์ปค๋ฐ & ์ ์ ํด์
# ์ปค๋ฐ
conn.commit()
# ์ ์ ํด์
conn.close()
์ปค๋ฐ์ ๊ณ์ ์ ์ธ์ด ๋์ด ์์ด์ผ ํ๊ณ , with๋ฌธ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ ์ํด์ ๋ฅผ ๊ผญ ํด์ฃผ์ด์ผ ํ๋ค.