DB API

Database Application Programming Interface.

미리 정의된 약속이 interface 이다. ex) 리모콘, 전원 버튼.
a와 b 사이를 연결해 주는 것이 interface 이다.

API 기능을 잘 사용하기 위해 제공하는 프로그램 application.

인터페이스 = 함수

직관적인 입출력. 코드 안에서 복잡한 혹은 모든 사람이 허용하기 힘든 작동법은 기피해야 한다.
명확하게
성능요구상황. 조건이 있어야 한다.
하위호환지원. 신버전이 있으면서도 하위버전에 함수를 지원한다. 안할 수록 좋다. 유지관리가 어렵고 신규개발이 어렵다. 개발자는 없는 것이 좋다. 사용자는 있는 것이 좋다.
쉽고 접근성이 좋은. 누구나 알게 만들어야 한다. 아무도 안쓰면 안 만든 것과 같다.

PEP 249

PEP 249는 파이썬에서 명시하는 DBAPI v2.0에 대한 문서.
파이썬의 성능과 기능을 향상시키지 위해 노력하고 PEP 문서를 통해 배포한다.
파이썬에서는 데이터베이스와 연결하는 파이썬 모듈들을 권장되는 가이드라인을 따라 제작.
명시적인 가이드라인 때문에 파있너에서 데이터베이스와 연결하는 작업은 다양한 데이터베이스라도 동일한 API를 이용한다.

SQLite

가벼운 관계형 데이터베이스.
기능이 제한적. 때문에 복잡하거나 고급 쿼리 등은 실행하기 어렵다.
장점: 간단하고 빠르게 데이터베이스를 구축, 개발 단계에서 단순한 실험.

설치

파이썬 2.5x 이후로 기본적으로 설치되는 모듈인 sqlite3 는 PEP 249 에 적힌 DBAPI 2.0 요구조건에 부합한 SQL 인터페이스를 제공

Query

import sqlite3
conn = sqlite3.connect('test.db')

데이터베이스 연결

import sqlite3
conn = sqlite3.connect(':memory:')

사용하는 확장자
.db
.squlite3

conn.
데이터베이스와 연결된 하나의 세션을 보관
cursor()
세션을 통해 데이터베이스와 소통을 위한 코드.

cursor.excute
ex)

ur.execute("""CREATE TABLE test_table (
				name VARCHAR(32),
				age INT);
			""")

excute 를 이용하여 SQL Query를 이용할 수 있다. row by row 러 읽는다.

con.commit
이 메서드는 현재 트랜잭션을 커밋합니다. 이 메서드를 호출하지 않으면, 마지막 commit() 호출 이후에 수행한 작업은 다른 데이터베이스 연결에서 볼 수 없습니다. 데이터베이스에 기록한 데이터가 왜 보이지 않는지 궁금하면, 이 메서드를 호출하는 것을 잊지 않았는지 확인하십시오.

commit 은 connection(데이터베이스 연결)를 톧해 사용가능.
conn.commit() [여기서 conn은 앞에서 지정한 conn 값이다.]

데이터베이스에서 보내는 결과 조회
fetchone - 첫 번째 결과만 리턴
fetchmany
fetchall

psycopg2

profile
danny + realism

0개의 댓글