디스크 기반의 가벼운 데이터 베이스이고, 속도도 빠르다. 자세한 특징은 홈페이지에 요약
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 |