-
개발자 리처드 힙 발표일 2000년 8월 최근 버전 3.19.2 / 2017년 5월 25일[1] 프로그래밍 언어 C 운영 체제 크로스 플랫폼 크기 ~275 kiB 종류 관계형 데이터베이스 (임베디드) 라이선스 퍼블릭 도메인[2] 웹사이트 sqlite란?
mysql이나 postgreSQL와 같은 dbms지만 서버가아니라 응용프로그램에 넣어 사용하는 비교적 가벼운데이터베이스
api는 단순히 라이브러리를 호출하는 것만 있고,데이터를 저장하는데 하나의 파일만을 사용하는것이 특징
데이터 타입
파이썬 유형 SQLite type None
NULL
int
INTEGER
long
INTEGER
float
REAL
str
(UTF8로 인코딩 됨)TEXT
unicode
TEXT
buffer
BLOB
사용방법
++ 다양한 모듈은 https://docs.python.org/2/library/sqlite3.html 에서 확인가능 ++
1.connection database를 나타내는 객체를 생성. example.db 파일에 데이터가 저장됨
저장된 데이터는 영구적이며 이후 세션에서도 사용 가능
import sqlite3 conn=sqlite3.connect("example.db")
2.connection을 하고난뒤 cursor객체를 만들고 cursor객체의 execute()메서드를 이용해 쿼리를 날릴 수 있음
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() conn.close()
**commit
database에서 transaction이란 논리적인 일의 단위를 말하는데 이러한 트랜잭션이 오류없이 실행되었따면 지금까지 실행한 모든작업을 '실제로' 수행하라는 명령어
3.쿼리를날릴때 db-api 매개 변수 대체를 사용하는것이 좋은데 그 이유는 아래 만화를 참고
symbol = 'RHAT' c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) #이렇게하면 안된다 t = ('RHAT',) c.execute('SELECT * FROM stocks WHERE symbol=?', t) #이렇게 해야한다 print c.fetchone() purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), ('2006-04-06', 'SELL', 'IBM', 500, 53.00), ] c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
++코드설명++
**execitemany를 이용하여 여러개의 쿼리를 한번에 날릴수 있음
**fetchone()은 쿼리결과 값을 하나씩 받아오고 fetchall()을 사용하면 결과 목록을 가져옴
sqlite3.
complete_statement
(sql)로 쿼리문이 ;으로 닫혀서 입력되었는지 확인할 수 있음import sqlite3 con = sqlite3.connect(":memory:") con.isolation_level = None cur = con.cursor() buffer = "" print ("Enter your SQL commands to execute in sqlite3.") print ("Enter a blank line to exit.") while True: line = input() if line == "": break buffer += line if sqlite3.complete_statement(buffer): try: buffer = buffer.strip() cur.execute(buffer) if buffer.lstrip().upper().startswith("SELECT"): print (cur.fetchall()) except sqlite3.Error as e: print ("An error occurred:", e.args[0]) buffer = "" else: print("쿼리문이 정확하지 않습니다") con.close()
출처 url
https://ko.wikipedia.org/wiki/SQLite
https://docs.python.org/2/library/sqlite3.html
http://m.blog.naver.com/woghdi8318/51124164
'2017년 > Database' 카테고리의 다른 글
DB Browser for SQLite (0) 2017.07.05 sas university edition을 사용해보자 (0) 2017.06.29 sqlite란 2부 (0) 2017.06.29 데이터 베이스 설계 1부 (0) 2017.06.26 데이터 베이스 개요 (0) 2017.06.26