Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 튜플을 PostgreSQL 데이터베이스에 삽입하는 방법

개요

PostgreSQL은 기본적으로 5432번 포트에서 동작하도록 설치됩니다. 파이썬에서 PostgreSQL 데이터베이스에 접속하려면 psycopg2 모듈이 필요합니다. 아직 설치하지 않았다면 pip 명령어로 간단히 설치할 수 있습니다.

pip install psycopg2

이 글에서는 fname(이름), sname(성), age(나이), gender(성별), salary(급여) 필드로 구성된 employee 테이블과 test 데이터베이스가 이미 준비되어 있다고 가정합니다.

1단계: 데이터베이스 연결 및 커서 생성

먼저 파이썬 스크립트에서 다음과 같이 데이터베이스에 연결하고 커서(cursor) 객체를 얻습니다.

import psycopg2

conn = psycopg2.connect(
database="test",
user="postgres",
password="pass123",
host="localhost",
port="5432"
)
cur = conn.cursor()

2단계: 삽입할 데이터를 튜플로 준비

employee 테이블에 삽입할 데이터는 튜플(tuple) 객체 형태로 저장합니다.

t1 = ('Mac', 'Mohan', 20, 'M', 2000)

3단계: INSERT 쿼리 작성

준비한 튜플을 이용해 INSERT 쿼리 문자열을 만듭니다.

sql = "insert into employee values(%s,%s,%d,%s,%d)" % t1

참고로 실무 환경에서는 SQL 인젝션 공격을 방지하기 위해 % 포매팅 대신 매개변수화된 쿼리(parameterized query)를 사용하는 것이 안전합니다.

sql = "insert into employee values(%s,%s,%s,%s,%s)"
cur.execute(sql, t1)

4단계: 쿼리 실행 및 변경 사항 저장

커서 객체의 execute() 메서드로 쿼리를 실행합니다.

cur.execute(sql)

INSERT 문 실행 후에는 반드시 commit()을 호출해야 변경 사항이 데이터베이스에 실제로 반영됩니다.

conn.commit()

실행 결과 확인

위 과정을 마치면 employee 테이블에 새로운 레코드가 추가된 것을 확인할 수 있습니다. 작업이 끝난 후에는 커서와 연결을 닫아 리소스를 해제하는 것이 좋습니다.

cur.close()
conn.close()