[데이터 엔지니어링] DB API

2022. 3. 31. 17:45AI/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