PostgreSQL
설치법은 다른 블로그들 많으니 생략
- Table of Contents
- psycopg2 또는 sqlalchemy 모듈 설치
- 기본적인 코드 설명
- 요약
- 설치
$ pip install psycopg2
- Python 연결코드
1. 데이터 연결 및 삽입
- postgreSQL 설치할 때, 설정한 host, dbname, user, password 입력
import psycopg2
# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"
# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string)
print("Connection established")
cursor = conn.cursor()
# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")
# Create a table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")
# Insert some data into the table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")
# Clean up
conn.commit()
cursor.close()
conn.close()
2. 데이터 읽기
다음 코드 예제에서는 PostgreSQL 데이터베이스에 연결하고
- SQL SELECT 에서 cursor.execute를 사용하여 데이터를 읽습니다.
- cursor.fetchall()은 쿼리를 수락하고 다음을 사용하여 반복할 결과 집합을 반환합니다.
# Fetch all rows from table
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()
# Print all rows
for row in rows:
print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))
3. 데이터 업데이트
- SQL Update 에서 cursor.execute() 를 사용하여 데이터를 업데이트 합니다.
# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")
4. 데이터 삭제
- SQL Delete 에서 cursor.execute() 를 사용하여 데이터를 삭제 합니다.
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
- 요약
- python 에서 postgreSQL DB server와 코드로 연결하는 법을 알아보았음.
- Table을 만들고, 기본적인 CRUD 기능을 살펴보았음
- 응용하거나, pandas DataFrame으로 만드는방법 등등 여러 블로그 참조
# DB에서 받아온 정보를 DataFrame 으로 만들기
import pandas as pd
your_dataframe = pd.DataFrame(cur.fetchall())
your_dataframe .columns = [desc[0] for desc in cur.description]
댓글