Maxima's Lab

[Database, DB] psycopg2 패키지를 활용하여 PostgreSQL 사용하는 방법 (Table 생성, 삭제, Data 초기화) 본문

Web Programming

[Database, DB] psycopg2 패키지를 활용하여 PostgreSQL 사용하는 방법 (Table 생성, 삭제, Data 초기화)

Minima 2024. 4. 17. 00:19
728x90
SMALL

안녕하세요, 오늘은 psycopg2 패키지를 활용하여, PostgreSQL (DB)를 사용하는 방법에 대해서 알아보겠습니다.

 

먼저, psycopg2 패키지를 설치합니다.

 

pip install psycopg2-binary

 

이어서, DB에 연결하여, Table을 생성하는 방법에 대해서 알아보겠습니다.

 

import psycopg2

conn = psycopg2.connect(host='localhost', database='postgres', user='postgres', password='<Enter Password>', port=5432)
cur = conn.cursor()

print(cur.closed == 0)

create_users_table = """
CREATE TABLE IF NOT EXISTS users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    password VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
"""

try:
    cur.execute(create_users_table)
    conn.commit()

except Exception as e:
    print(e)

 

위의 코드에서 cur.closed == 0 이면 정상적으로 DB 연결이 지속되고 있다는 의미입니다.

또한, "users" 라는 table을 생성하기 위한 sql을 작성하였으며, columns은 순서대로 user_id, username, password, email, created_at 입니다.

 


 

다음은, Table을 삭제하는 방법에 대해서 알아보겠습니다.

 

import psycopg2

conn = psycopg2.connect(host='localhost', database='postgres', user='postgres', password='temptemp', port=5432)
cur = conn.cursor()

print(cur.closed == 0)

def drop_table(connection, table_name):
    cursor = connection.cursor()
    try:
        cursor.execute(f"DROP TABLE IF EXISTS {table_name} CASCADE;")
        connection.commit()
        print(f"Table '{table_name}' dropped successfully")
    except Exception as e:
        print(f"An error occurred: {e}")

try:
    drop_table(conn, 'users')

except Exception as e:
    print(e)

 

위의 코드에서 drop_table이라는 함수는 connection 변수와 table_name을 입력으로 받아 해당 Table이 존재하는 경우 삭제하는 함수입니다.

 


다음은 특정 Table의 Data를 초기화하는 방법입니다.

 

import psycopg2

conn = psycopg2.connect(host='localhost', database='postgres', user='postgres', password='temptemp', port=5432)
cur = conn.cursor()

print(cur.closed == 0)

def reset_data(connection, table_name):
    cursor = connection.cursor()
    cursor.execute(f"TRUNCATE TABLE {table_name} RESTART IDENTITY;")
    connection.commit()
    print("Table reset and data initialized successfully")

try:
    reset_data(conn, 'users')

except Exception as e:
    print(e)

 

위의 코드에서 reset_data 함수는 connection 변수와 table_name을 입력으로 받아 해당 Table 내 Data를 Reset하는 함수입니다.


지금까지, psycopg2 패키지를 활용해서 PostgreSQL을 사용하는 방법에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments