반응형
안녕하세요? 뜻밖의 행운입니다.
패스트 캠퍼스 도전 41일차 이제 진짜 얼마 남지 않았네요?
오늘 배운 내용은 파이썬에서 SQLite3를 사용하는 방법에 대해서 배웠습니다.
이제 파이썬을 통해서 DB를 자유롭게 다룰 수 있게 되는 것이죠!
그렇다면 더 복잡하고 규모가 큰 개발이 가능하게 되는 것입니다.
지금까지 배운 SQL 을
파이썬에서 실행시키는 방법을 배웠는데요
각각 create table, insert, select, update, delete 를 하는 방법을 배웠습니다.
흥미로웠습니다.
사용도 별로 어렵지 않았습니다.
처음에는 create table에 대해 보겠습니다.
# 모듈 추가
import sqlite3
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
# 커서 생성
cur = conn.cursor()
# SQL 명령 작성
CREATE_SQL = """
CREATE TABLE IF NOT EXISTS Item(
id integer primary key autoincrement,
code text not null,
name text not null,
price integer not null
);
"""
# SQL 명령 실행
cur.execute(CREATE_SQL)
# 데이터베이스 닫기
conn.close()
우선 사용하기 위해서 모듈을 import 시켜야 합니다. sqlite3 을 import 하고
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
네 말 그대로 데이터 베이스 와 연결을 해야 해당 데이트 베이스를 변경하겠죠?
connect 매서드를 사용하면 되고 그 뒤에는 db 파일 경로를 주면 됩니다.
# 커서 생성
cur = conn.cursor()
DB에 직접 연결하여 명령어를 전달하기 위해서는 커서 생성을 해야 하며 위에 conn 으로 생성한 연결에
cursor 매서드로 커서를 생성해줍니다.
# SQL 명령 작성
CREATE_SQL = """
CREATE TABLE IF NOT EXISTS Item(
id integer primary key autoincrement,
code text not null,
name text not null,
price integer not null
);
"""
사용하고자 하는 명령어는 기존에 배웠던 SQL 형식으로 작성하면 됩니다.
id, code, name, price 컬럼이 있는 DB 테이블을 생성하는게 딱 느낌이 오죠?
# SQL 명령 실행
cur.execute(CREATE_SQL)
마지막으로 SQL 명령어를 실행해줍니다.
# 데이터베이스 닫기
conn.close()
그리고 DB를 닫아야 합니다.
아래는 insert 예제 입니다.
# 모듈 추가
import sqlite3
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
# 커서 생성
cur = conn.cursor()
# SQL 명령 작성
INSERT_SQL = "INSERT INTO item(code, name, price) VALUES (?, ?, ?);"
# 데이터 여러개 한번에 추가하기
data = (
('A00002', '에어컨 20평형', 350000),
('A00003', '최신형 스마트폰', 800000),
('A00004', '가성비 노트북', 650000)
)
# SQL 명령 실행
cur.executemany(INSERT_SQL, data)
# 커밋 : INSERT, UPDATE, DELETE는 commit을 해야 실제 데이터베이스에 반영된다.
conn.commit()
# 데이터베이스 닫기
conn.close()
SQL 명령 작성까지는 크게 다른 것은 없으며
데이터 여러개 추가 할때 튜플 형식으로 넣으면 되는 것과
insert, update, delete 같이 DB를 바꾸는 SQL의 경우 꼭 cmmit을 해야 반영이 된다는 것만 주의 하면 됩니다.
연이어서 보겠습니다.
아래는 Select
# 모듈 추가
import sqlite3
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
# 커서 생성
cur = conn.cursor()
# SQL 명령 작성
SELECT_SQL = "SELECT * FROM item LIMIT 2;"
# SQL 명령 실행
cur.execute(SELECT_SQL)
rows = cur.fetchall()
for row in rows:
print(row)
# 데이터베이스 닫기
conn.close()
아래는 update
# 모듈 추가
import sqlite3
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
# 커서 생성
cur = conn.cursor()
# SQL 명령 작성
UPDATE_SQL = "UPDATE Item set price = 650000 WHERE code='A00002';"
# SQL 명령 실행
cur.execute(UPDATE_SQL)
# 커밋
conn.commit()
# 데이터베이스 닫기
conn.close()
마지막으로 delete 입니다.
# 모듈 추가
import sqlite3
# 데이터베이스 열기
conn = sqlite3.connect('Chapter05/SQL_DDL.db')
# 커서 생성
cur = conn.cursor()
# SQL 명령 작성
DELETE_SQL = "DELETE FROM Item WHERE code='A00002';"
# SQL 명령 실행
cur.execute(DELETE_SQL)
# 커밋
conn.commit()
# 데이터베이스 닫기
conn.close()
네 쉬운 SQL을 사용하는 만큼 크게 변경되는 것은 없습니다.
멈추지 않고 달려왔는데 한번 다시 처음부터 쭈욱 들어야 겠습니다.
점점 정말 재미있었지네요 ㅎ
반응형
'IT > 프로그래밍' 카테고리의 다른 글
[파이썬] re 모듈 정규표현식 실습 문제 [패스트 캠퍼스 챌린지 46일] (0) | 2022.03.10 |
---|---|
[파이썬] re 모듈 사용방법 [패스트 캠퍼스 챌린지 45일] (0) | 2022.03.09 |
[파이썬] re 모듈 사용방법 [패스트 캠퍼스 챌린지 44일] (0) | 2022.03.08 |
[파이썬] 정규표현식 추가 [패스트 캠퍼스 챌린지 43일] (0) | 2022.03.07 |
[파이썬] 정규표현식 [패스트 캠퍼스 챌린지 42일] (0) | 2022.03.06 |
[파이썬] 데이터베이스 파트 SQL DML [패스트 캠퍼스 챌린지 40일] (0) | 2022.03.04 |
[파이썬] 데이터베이스 파트 SQL DML [패스트 캠퍼스 챌린지 39일] (0) | 2022.03.03 |
[파이썬] 파이썬 / SQL DDL(create, alter, drop) [패스트 캠퍼스 챌린지 38일] (0) | 2022.03.02 |
[파이썬] 파이썬 데이터 베이스 [패스트 캠퍼스 챌린지 37일] (0) | 2022.03.01 |
[파이썬] 파이썬 클래스 최종 [패스트 캠퍼스 챌린지 36일] (0) | 2022.02.28 |