반응형

SQLite 관리 프로그램 설치와 파이썬 sqlite 예제

글. 오상문 sualchi@daum.net 

 

파이썬을 설치하면 sqlite 기본 모듈을 이용하여 sqlite DB를 생성하거나 자료를 저장, 수정, 제거, 가져오기 등의 작업을 할 수 있습니다. 다음은 파이썬에서 sqlite를 사용하여 DB와 테이블을 만들어 사용하는 예제입니다. 

 

import sqlite3
createTABLE = True  # True: 처음 실행시, False: 테이블이 이미 존재함
# 데이터베이스 파일 연결(없으면 생성)
con = sqlite3.connect('db.sqlite')
# 쿼리 핸들러
cur = con.cursor()
# friends 테이블이 없어서 새로 만드는 경우
if createTABLE == True:
    # 데이터베이스 테이블 생성 (한번만 하면 됨)
    cur.execute('''create table friends(
        name varchar(20),
        birthday date,
        tel varchar(15))''')
# 테이블에 자료 삽입
for i in range(21):
    cur.execute('insert into friends values(?, ?, ?)',
                ('홍길동', '1500-05-09', '010-1234-000'+str(i)))
# con.commit()
# 테이블에서 자료 가져오기
cur.execute('select * from friends where name = ?', ("홍길동",))
result = cur.fetchall()         # 모든 줄 가져오기
#result = cur.fetchone()        # 한 줄 가져오기
#result = cur.fetchmany(size=5) # 다섯 줄 가져오기 
#for row in result:
#    print(row)  
# 전화번호가 0001로 끝나면 이름을 홍길순으로 변경 
cur.execute("update friends set name=? where tel=?",
            ("홍길순", "010-1234-0001"))
#con.commit()
# 테이블에서 자료 가져오기
cur.execute('select * from friends')
result = cur.fetchall()
for row in result:
    print(row)   

 

만약 sqlite DB 파일을 쉘 프롬프트에서 확인하거나 관리하고 싶으면 아래 링크에서 윈도우용 sqlite Tool을 다운로드 받아서 C:\sqlite 경로에 풀어줍니다. 그리고 시스템 환경변수 PATH에 이 경로를 추가합니다. 

 

www.sqlite.org/download.html

 

SQLite Download Page

Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precompiled bi

www.sqlite.org

참고로 sqlite 경로에는 sqlite3.exe 파일이 존재합니다. 이 툴을 이용하여 DB를 관리할 수 있습니다.

 

파이썬 예제가 있는 폴더에 가면(예제를 실행해서 DB를 만들었다면) db.sqlite 파일이 보일 겁니다.

 

명령창(윈도우키+R)에서 cmd를 입력하여 실행합니다.

다음 명령을 이용하여 db.sqlite 파일이 있는 파이썬 예제 폴더로 이동합니다.

 

CD 이동할폴더경로 <엔터> 

 

예) cd  C:\Users\Administrator\Desktop\파이썬예제

 

그곳에서 sqlite3를 실행합니다. (PATH에 경로가 등록되었으면 실행됨)

 

sqlite3 <엔터>

 

실행되었으면 메시지가 출력되고 프롬프트가 sqlite>처럼 바뀝니다.

 

SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> _

 

이제 예제로 만든 DB를 열고 테이블 내용을 살펴보겠습니다.

 

sqlite> .open db.sqlite       <--- 앞에 점 입력

sqlite> .table

friends         <-- 존재하는 테이블 이름이 출력됨 

sqlite> .mode column

sqlite> .head on

sqlite> select * from friends;       <-- 끝에 ; 세미콜론 입력!!!

sqlite> .quit 

 

[실행 결과]

name  birthday    tel
----  ----------  --------------
홍길동   1500-05-09  010-1234-0000
홍길순   1500-05-09  010-1234-0001
홍길동   1500-05-09  010-1234-0002
홍길동   1500-05-09  010-1234-0003
홍길동   1500-05-09  010-1234-0004

...

홍길동   1500-05-09  010-1234-00018
홍길동   1500-05-09  010-1234-00019
홍길동   1500-05-09  010-1234-00020

 

이상. 

반응형

+ Recent posts