PostgreSQL과 Python 연동!

이효준·2023년 12월 23일

나중에 flask로 만든 서버에서 db를 저장하고 싶어서
python과 postgreSQL을 연동해서 SQL문이 작동되게 만들어 보았다!
SQL Shell(psql)에서 해보고 python과 연결해서 똑같이 진행해볼것이다.

SQL Shell(psql) 기본 세팅!

일단 SQL Shell(psql)을 열어준다!

주의!

암호 입력할 때에는 암호를 적었는지 모를수 있다.
그냥 입력하면 된다.

DB 만들기!

CREATE DATABASE 데이터베이스명;

이 명령어에 데이터베이스명을 입력하고 만들어준다.

만들었는지 확인 하고 싶다면
\l을 입력하여 데이터베이스 목록을 확인하여 만들어졌는지 확인하자!

테이블 만들기!

\c + 데이터베이스명 으로 접속을 한다.
데이터베이스 안에 만들고 싶은 테이블 형태로 만들어준다.
예)

CREATE TABLE 테이블명 (num int, name char(10));

INSERT

만든 테이블에 데이터를 삽입할수 있다.
예)

INSERT INTO 테이블명 VALUES (1, 'Jack'), (2, 'John');

이 처럼 만들수 있다.

SELECT

방금 삽입한 데이터를 포함한 테이블을 볼수 있다.

SELECT * FROM 테이블명;

num 컬럼만 보고싶으면
전체를 뜻하는 * 대신 num을 입력해주면 된다.

DELETE

아쉽지만 삽입한 데이터를 삭제 할것이다 흐윽...
테이블에 전체 데이터를 삭제하고 싶으면

DELETE FROM 테이블명;

SELECT로 확인해보면 이러하다.

으로 삭제가 가능하고
어느 데이터만 삭제하고 싶으면 WHERE 을 추가해 조건을 준다.

DELETE FROM 테이블명 WHERE num = 1;

SELECT로 확인해보면 이러하다.

Python과 DB 연동!

나는 Python에서 DB와 연동하여 Python으로 SQL문을 작성 할수 있게 만들었다.
일단 데이터베이스를 만든 후 접속이 가능하니 먼저 데이터베이스를 만들어야한다.

코드는 이러하다.

코드

import psycopg2

# PostgreSQL에 연결
conn = psycopg2.connect(
    database="데이터베이스명",
    user="postgres",
    password="비밀번호"
)

# 커서 생성
cur = conn.cursor()

while True:
    mung = input("SQL문 입력:")
    if mung == 'FIN':
        break
    else:
        cur.execute(mung)
        if mung.startswith('SELECT'):
            result = cur.fetchall()
            print(result)
        conn.commit()

# 연결 종료
cur.close()
conn.close()

이 코드는 PostgreSQL을 연결하고 커서를 설정해 SQL문을 작성할수 있게 만들었다.

설명

mung 이라는 변수를 받아 SQL문을 작성하면
commit하여 실제 데이터에 저장된다.
FIN을 입력하면 종료하게 만들었다.
SELECT문이라면 결과물을 보여줘야하기에 따로 빼주었다.

GitHub

profile
응애 개발자

0개의 댓글