[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 28 회차 미션

2020. 11. 29. 14:21Coding/Python-Fastcampus

728x90

12. DB - 01. SQLite 연동, 테이블 생성, 데이터 삽입(1)

sqlite는 파이썬 일정 버전 이상에는 기본적으로 포함되어있다.

 

sqlite버전 확인 및 datetime사용법.

1
2
3
4
5
6
7
8
9
10
11
import sqlite3
import datetime
 
now = datetime.datetime.now()
print('now : ',now)
 
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print('nowDatetime : ', nowDatetime)
 
print('sqlite3.version', sqlite3.version)
print('sqlite3.sqlite_version', sqlite3.sqlite_version)
cs

 

 

 

 

DB를 UI로 볼 수 있는 툴

 

 

 

 

 


12. DB - 02. SQLite 연동, 테이블 생성, 데이터 삽입(2)

DB, TABLE 만들기.

1
2
3
4
5
6
import sqlite3
 
conn = sqlite3.connect('C:/Users/xpzka/OneDrive/dev/python/fastcampus-allinone/python_basic/resource/database.db', isolation_level=None)
 
= conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS user(id INTEGER PRIMARY KEY, username TEXT, email TEXT, phone TEXT, website TEXT, regdate TEXT)')
cs

connect로 DB를 만든다.

coursor로 DB를 다룰 수 있게 커서를 가져온다.

execute로 SQL명령어를 입력해서 TABLE을 만든다.

 

isolation_level을 None으로 두면 auto_commit이된다.

 

데이터 추가의 경우도 TABLE 생성과 마찬가지로 진행하면된다.

c.execute("INSERT INTO users VALUES (1 ,'Kim','Kim@naver.com', '010-0000-0000', 'Kim.com', ?)", (nowDatetime,))

 

 

 

 


12. DB - 03. SQLite 연동, 테이블 생성, 데이터 삽입(3)

한번에 다수의 데이터 추가.

1
2
3
4
5
6
userList = (
    (3'Lee''Lee@naver.com''010-2222-2222''Lee.com', nowDatetime),
    (4'Cho''Cho@naver.com''010-3333-3333''Cho.com', nowDatetime),
    (5'Yoo''Yoo@naver.com''010-4444-4444''Yoo.com', nowDatetime)
)
c.executemany("INSERT INTO users(id, username, email, phone, website, regdate) VALUES (?, ?, ?, ?, ?, ?)", userList)
cs

VALUES의 ?를 이용해서 대량의 데이터를 활용할 수 있다.

 

 

 


table 내용 삭제.

1
print("users db deleted : ", conn.execute("delete from users").rowcount, "rows")
cs

쿼리 실행 값을 반환해주기 때문에 print문을 통해 내용을 볼 수 있다.

 

 

 


추가.

DB를 만들때, isolation_level=None을 안해주면 수동으로

conn.commit()을 실행시켜줘야한다.

 

conn.rollback()

롤백도 있다는데 잘 모르겠음.

 

conn.close()

사용후엔 close로 닫아줘야한다.

 

 

 

 

 

 

 


패캠 28일차까지 끝!

 

 

 

올인원 패키지 : 파이썬 웹 개발👉https://bit.ly/33a7nvc

728x90