오늘은 db의 API를 python으로 가져오는 방법에 대해 알아보겠습니다.

1. SQLite API

  • API는 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계입니다.
  • API를 통해 python이라는 프로그램과 sql이라는 데이터베이스가 서로 소통할 수 있습니다. 사전에 정해둔 약속문이나 협약문이라고 봐도 좋을 것 같습니다.
  • 아래에 소개할 과정이 큰 틀에서 모두 API에 해당합니다.

1) db 연결

  • 연결하는 방법은 간단합니다.
  • sqlite3의 connect 메소드로 데이터베이스의 파일 위치를 알려줍니다.
import sqlite3
conn = sqlite3.connect('test.db')
  • 만약 db 파일이 없다면 입력한 이름의 db를 자동으로 생성합니다.
  • 이렇게 연결하면 conn 은 데이터베이스와 연결된 하나의 세션을 보관합니다.
  • 해당 세션을 통해 데이터베이스와 소통하기 위한 cursor를 만듭니다.
cur = conn.cursor()

2) 커서 메소드를 활용한 db 조작

  • 커서의 execute 메소드로 데이터베이스를 조작할 수 있습니다.
  • 이 메소드 안의 attribute를 바로 SQL의 쿼리문으로 넘깁니다.
cur.execute("""CREATE TABLE test_table (
				name VARCHAR(32),
				socre INT);
			""")
            
cur.execute("INSERT INTO test_table (name, age) VALUES ('AAA', 30);")
  • 테이블을 만들고 레코드를 추가했습니다.
  • 이 레코드를 데이터베이스에 반영하기 위해서는 커밋을 해야합니다.
conn.commit()

3) 테이블 조회

  • 추가한 테이블과 레코드를 확인하기 위해서 마찬가지로 cursor 메소드를 활용합니다.
cur.execute("SELECT * FROM test_table;")
  • cursor로 호출해도 테이블이 출력되지 않습니다. cursor로 execute를 실행한 뒤 아래의 명령어를 한번 더 실행해야 합니다.
cur.fetchall() #테이블을 한 번에 조회합니다.
cur.fetchone() #데이터베이스가 전달하는 결과를 하나씩 리턴합니다.

2. 클라우드 데이터베이스

  • 다음은 Python에서 Postgre 데이터베이스를 사용해보겠습니다.
  • Postgre는 클라우드 데이터베이스입니다. URI로 Postgre의 데이터베이스와 연결하는 과정이 필요합니다.
!pip install psycopg2 #or psycopg2-binary
import psycopg2

conn = psycopg2.connect(
    host="서버 호스트 주소",
    database="데이터베이스 이름",
    user="유저 이름",
    password="유저 비밀번호")
  • ElephantSQL에서 인스턴스를 생성한 뒤 클라우드 데이터베이스에 대한 URI와 host, user, password 등을 받을 수 있습니다.
  • 필요한 정보를 conn 인자 안에 입력하면 sqlite3에서 실행했던 것처럼 Postgre 데이터베이스와 소통할 수 있는 세션이 생성됩니다.

0개의 댓글