[데이터 엔지니어링] DB API
2022. 3. 31. 17:45ㆍAI/Codestates
728x90
반응형
PEP 249란?
- PEP 249 는 파이썬에서 명시하는 DBAPI v2.0에 대한 문서
- 파이썬에서는 데이터베이스와 연결하는 파이썬 모듈들은 권장되는 가이드라인을 따라 제작되도록 안내함
- 실제로 문서를 보시면 어떤 함수들, 메소드, 파라미터, 키워드 등을 어떻게 해야 하는지 나와있음
SQLite이란?
- SQLite 데이터베이스는 파이썬과 함께 설피되는 가벼운 파일형 관계형 데이터베이스임
- 가볍다는 뜻은 여타 다른 데이터베이스 서버를 사용하는 관계형 데이터베이스들에 비해 기능이 제한적임
- 파일형 데이터베이스이며, 실행 중인 프로그램의 메모리에 상주할 수 있기 때문에 파일을 삭제하거나 프로세스 종료 등으로 인한 데이터 손실도 주의해야 함
- 간단하고 빠르게 데이터베이스를 구축하거나 개발 단계에서 단순한 실험 등을 진행하기에는 큰 무리가 없음.
▶ 데이터베이스 연결
import sqlite3
conn = sqlite3.connect('test.db')
- conn은 데이터베이스와 연결된 하나의 세션을 보관하게 됨. 이제는 다음처럼 해당 세션을 통해 데이터베이스와 소통하기 위한 cursor를 만들어줌.
cur = conn.cursor()
- 간단하게 커서를 하나 생성하게 되면 커서를 통해서 데이터베이스와 소통을 할 수 있음
▶ 커서 메소드
■ cursor.execute
- 가장 기본적인 데이터베이스 소통 방식은 커서의 execute 메소드를 활용하는 것
- 이 메소드의 인수로는 SQL 쿼리문을 바로 넘겨줄 수 있음
# 테이블 만들기
cur.execute("""CREATE TABLE test_table (
name VARCHAR(32),
age INT);
""")
# 데이터 추가
name = 'banana'
age = 13
cur.execute("INSERT INTO test_table (name, age) VALUES (?, ?)",(name,age))
users = [('lemon', 10),
('apple', 15)]
for user in users:
cur.execute("INSERT INTO test_table (name, age) VALUES (?, ?);", user)
■ con.commit
- commit은 데이터베이스 연결에 대한 Connection 객체를 통해 사용가능함
conn.commit()
■ cursor.fetchone, cursor.fetchall
cur.execute("SELECT * FROM test_table;")
cur.fetchall()
PostgreSQL
▶ 데이터베이스 연결
import psycopg2
conn = psycopg2.connect(
host="서버 호스트 주소",
database="데이터베이스 이름",
user="유저 이름",
password="유저 비밀번호")
728x90
반응형
'AI > Codestates' 카테고리의 다른 글
[데이터 엔지니어링] Python 활용 (0) | 2022.04.04 |
---|---|
[Day 49] Sprint Review (0) | 2022.04.04 |
[Day 46] SQL (01) (0) | 2022.03.29 |
[Day 45] 개발환경 (0) | 2022.03.29 |
[Day 44] Section 2 Review (0) | 2022.03.25 |