-
[Python] API SQLitePython/SQLite 2018. 4. 23. 02:39
디스크 기반의 가벼운 데이터 베이스이고, 속도도 빠르다. 자세한 특징은 홈페이지에 요약
sqlite3 모듈은 'Gerhard Häring'에 작성되었고, DB-API 2.0 스펙을 따르는 인터페이스를 제공하는 모듈
- 소개 홈페이지 : http://www.sqlite.org/about.html
- 파이썬 SQLite : https://docs.python.org/3/library/sqlite3.html?highlight=pysqlite
SQLite API 사용
순서
작업
1
Connection Open
2
Curosr Open
3
Select / insert / update / delete
4
Curosr Close
5
Connection Close
example.db 생성
import sqlite3
conn = sqlite3.connect('example.db')stocks 테이블 생성과 값 입력 (데이터 타입 : text)
c = conn.cursor()
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
conn.commit() # 저장(commit)
conn.close() # DB연결 종료. 자동으로 commit 하지않기 때문에, 호출이전에 commit() / rollback() 호출해야함.stocks 테이블 생성과 값 입력 (데이터 타입 : CHAR, 기본키 지정)
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE stocks2
(date CHAR(32), trans CHAR(32), symbol CHAR(32), qty CHAR(32), price CHAR(32) PRIMARY KEY)''')
c.execute("INSERT INTO stocks VALUES ('2007-01-05','BUY2','RHAT2',200,30.14)")
conn.commit()
conn.close()stocks 테이블 스키마 보기
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
cursor = conn.cursor()
cursor.execute("select sql from sqlite_master where type = 'table' and name = 'stocks2'")
print(cursor.fetchall())[('CREATE TABLE stocks2\n (date CHAR(32), trans CHAR(32), symbol CHAR(32), qty CHAR(32), price CHAR(32) PRIMARY KEY)',)]
입력된 값 검색. (fetchone() : 검색된 결과로부터 1개의 데이터를 반환, 데이터가 없는 경우 None 반환)
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('SELECT * FROM stocks')
print(c.fetchone())('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
입력된 값 검색 (fetchall() : 조회된 결과를 모두 리스트형태로 반환, 데이터가 없는 경우 빈 리스트 반환)
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('SELECT * FROM stocks')
print(c.fetchall())for문을 이용해 모든 입력된 값 검색.
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
for row in c.execute('SELECT * FROM stocks'):
print(row)('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
'Python > SQLite' 카테고리의 다른 글
sqlitestudio download (0) 2019.01.24 [Python] sqlite3 iterdump( ) - SQL 쿼리 형식으로 데이터베이스를 덤프 (0) 2019.01.02 [Python] SQLite3 distinct 중복제거 (0) 2018.08.15 [Python] SQLite3 Cursor.executemany() - iterator를 이용한 레코드 추가 (0) 2018.05.18 [SQLite3] 내장 집계함수 (max, min, avg, sum) (0) 2018.05.18