Python

table 에 crud 할 수 있는 python code

크레비즈 2025. 3. 10. 23:20

Windsurf 를 통해서 Claude 3.7 Sonnet 에게 테이블 명을 알려주고, CRUD 함수를 추가한 코드를 작성해 달라고 했습니다.

 

먼저, 테이블 생성 함수 create_user_test_table 를 정의할 때 테이블이 이미 존재하는제를 확인하면서 생성하네요.

그리고 데이터를 입력하고, 조회하고, 수정하고, 삭제하도록 했습니다.

 

import sys
from db_connect import connect_to_postgres, execute_query, close_connection

def create_user_test_table(connection):
    """
    Create the user_test table if it doesn't exist
    """
    create_table_query = """
    CREATE TABLE IF NOT EXISTS user_test (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100) NOT NULL
    );
    """
    return execute_query(connection, create_table_query)

def insert_user(connection, user_id, name):
    """
    Insert a new user into the user_test table
    """
    insert_query = f"""
    INSERT INTO user_test (id, name)
    VALUES ({user_id}, '{name}')
    """
    return execute_query(connection, insert_query)

def update_user(connection, user_id, new_name):
    """
    Update a user's name in the user_test table
    """
    update_query = f"""
    UPDATE user_test
    SET name = '{new_name}'
    WHERE id = {user_id}
    """
    return execute_query(connection, update_query)

def select_all_users(connection):
    """
    Select all users from the user_test table
    """
    select_query = """
    SELECT id, name FROM user_test
    """
    return execute_query(connection, select_query)

def select_user_by_id(connection, user_id):
    """
    Select a user by ID from the user_test table
    """
    select_query = f"""
    SELECT id, name FROM user_test
    WHERE id = {user_id}
    """
    return execute_query(connection, select_query)

def delete_user(connection, user_id):
    """
    Delete a user from the user_test table by ID
    """
    delete_query = f"""
    DELETE FROM user_test
    WHERE id = {user_id}
    """
    return execute_query(connection, delete_query)

if __name__ == "__main__":
    # Connect to the database
    print("Connecting to PostgreSQL database...")
    conn = connect_to_postgres()
    
    if conn:
        try:
            # Create the user_test table if it doesn't exist
            create_user_test_table(conn)
            
            # Insert test data
            print("\nInserting test users...")
            insert_user(conn, 1, "John Doe")
            insert_user(conn, 2, "Jane Smith")
            insert_user(conn, 3, "Bob Johnson")
            
            # Select all users
            print("\nSelecting all users:")
            users = select_all_users(conn)
            if users:
                for user in users:
                    print(f"ID: {user[0]}, Name: {user[1]}")
            
            # Update a user
            print("\nUpdating user with ID 2...")
            update_user(conn, 2, "Jane Wilson")
            
            # Select the updated user
            print("\nSelecting updated user:")
            updated_user = select_user_by_id(conn, 2)
            if updated_user:
                for user in updated_user:
                    print(f"ID: {user[0]}, Name: {user[1]}")
            
            # Delete a user
            print("\nDeleting user with ID 3...")
            delete_user(conn, 3)
            
            # Select all users after deletion
            print("\nSelecting all users after deletion:")
            remaining_users = select_all_users(conn)
            if remaining_users:
                for user in remaining_users:
                    print(f"ID: {user[0]}, Name: {user[1]}")
            
        except Exception as e:
            print(f"Error: {e}")
        finally:
            # Close the connection
            close_connection(conn)