Python/Python Basic

파이썬 SQLite Database Browser 파이썬 연동 및 DB 생성 - 공부하는 도비

DOVISH WISDOM 2021. 1. 18. 17:05  
728x90
반응형

저번 글에서 SQLite Database BrowserPortble 프로그램을 컴퓨터에 다운로드하는 법을 소개했습니다.

2021/01/15 - [파이썬/파이썬 이론] - [파이썬] SQLite Database Browser Portable 다운 및 파이썬 연동 - 공부하는 도비

 

[파이썬] SQLite Database Browser Portable 다운 및 파이썬 연동 - 공부하는 도비

파이썬은 기본적으로 sqlite3 라는 모듈이 탑재되어있어, 간편하게 DB를 설계하고 활용하실 수 있습니다. 그래서 오늘은 SQLite Browser 라는 것을 소개하면서, 다음 글에서는 파이썬에 프로그램을 연

yang-wistory1009.tistory.com

오늘은 그 프로그램을 파이썬과 연동하는 법에 대해 알아보려고 합니다.

 

우선, 파이썬에서 sql을 사용하기 위해서는 'import sqlite3' 를 해야 합니다.

 

1. DB 연결 - connect()

이제 DB와 연결시켜보겠습니다.

저는 D:/basic_python/resource 파일 안에 "DB"라는 이름을 가진 DB를 생성해보겠습니다.

 

(저 코드를 실행시켰을 때, 오류가 발생하면 안 됩니다..!)

위의 방법처럼 새로운 DB를 생성하고, 폴더 위치를 보면

새로운 파일이 생성된 것을 보실 수 있습니다.

저 파일을 저번에 설치한 SQLite Portable로 열어보겠습니다.

아직 테이블을 생성하지도, 데이터를 넣어주지도 않았기 때문에 비어있는 DB를 보실 수 있습니다.

(물론 이 프로그램을 이용해서 테이블을 생성하고, 값을 추가 삭제할 수는 있지만 파이썬에 관심 있는 분들은 코드를 작성해서도 하실 수 있어야겠죠?)

- isolation_level 이란?!

저는 DB를 생성할 때부터 isolation_level = None이라는 조건 값을 주었습니다.

이 조건은 DB를 Auto Commit 해주는 파라미터입니다.

 

 

2. Cursor 설정 - cursor()

 

연결한 DB와 상호작용하기 위해서는 cursor 객체를 생성해주어야 합니다.

 

 

테이블을 생성하기 전에, 사용할 수 있는 데이터 타입에 대해 알아보겠습니다.

- 데이터 타입 

사용할 수 있는 데이터 타입은 NULL, INTEGER, REAL, TEXT, BLOB 가 있습니다.

 

 

3. 테이블 생성 - execute()

user 테이블을 생성해보겠습니다.

 

테이블을 생성할 때는 CREATE TABLE을 사용합니다. 

CREATE TABLE _테이블 명 (레코드명 1 데이터 타입 1, 레코드명 2 데이터 타입 2, 레코드명 3 데이터 타입 3,.....)

 

이것이 가장 기본이 되는 sql 테이블 생성 구문입니다. 

저는 지금 조건으로 IF NOT EXISTS을 주었는데, user라는 테이블이 없으면 테이블을 생성한다는 의미입니다.

 

물론, 조건 없이 테이블을 생성하셔도 됩니다.

하지만, 이미 생성된 테이블이 있는지 모르고 또 생성할 수 도 있고, 그에 따른 오류가 발생하기 때문에 생성할 때부터 조건을 주는 것이 좋습니다.

미리 user1 테이블을 생성하고, 또 user1을 생성하려고 하면, 오류가 발생합니다.

 

DB Browser로 두 가지 테이블이 잘 생성된 것도 확인하실 수 있습니다.!

바로바로 GUI 형태로 확인할 수 있는 점이 참 좋습니다.!

 

4. 테이블에 데이터 삽입 - execute()

user 테이블에 데이터를 삽입해보겠습니다.

데이터를 넣을 때는, INSERT INTO를 사용합니다.

INSERT INTO 테이블명(데이터, 데이터, 데이터,...) 

 

이것이 기본 Sql 데이터 삽입 구문입니다. 

 

값이 잘 들어갔네요!.

 

import sqlite3
import datetime

now = datetime.datetime.now()
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')

# DB 생성 & Auto Commit
make_DB = sqlite3.connect('D:/basic_python/resource/DB.db', isolation_level=None)

# Cursor
data = make_DB.cursor()

# 테이블 생성
data.execute("CREATE TABLE IF NOT EXISTS user(id INTEGER PRIMARY KEY, username text, email text, phone text, website text, regdate text)")


# 테이블에 데이터 삽입
data.execute("INSERT INTO user VALUES(1,'kim','kim@.com','010-000-0000','wwww.com',?)",(nowDatetime,))

 

 

이렇게 sqlite3를 이용해서 DB brower와 연동도 하고, Table을 생성해서 그 Table에 데이터도 넣어보았습니다.!