# SELECT문 - id로 검색하여 조회 cur.execute("SELECT * FROM score WHERE id=%s;" % (id_data)) rows = cur.fetchall() print(rows) print(type(rows))
# rows 길이 = 0 # 해당 id가 남긴 기록이 없음 = 첫 평가 # 점수를 포함한 데이터를 INSERT iflen(rows) == 0: cur.execute("INSERT INTO score (date, id, score) VALUES (%s, %s, %s);" , (datetime.today().strftime('%Y-%m-%d'), idid_data, score_data) )
# rows 길이 != 0 # 해당 id가 남긴 기록이 있음 = 최소 두 번째 평가 # 기존에 남긴 점수를 새로 UPDATE else : cur.execute("UPDATE score SET date=%s, score=%s WHERE id=%s;" , (datetime.today().strftime('%Y-%m-%d'),score_data, idid_data) )
# cur.execute("SELECT * FROM score WHERE id=%s;" % (id_data)) # rows = cur.fetchall() # print(rows) # print(type(rows))
f = open('fromdb.csv', 'r') f.read() print("reading data is done!")
→ 저장 후 실행
→ python3 createrecord.py
새 폴더 생성
→ 폴더 생성 : vi querydf.py
→ 내용 작성
import psycopg2 as db import pandas as pd conn_string="dbname='dataengineering' host='localhost' user='postgres' password='postgres'" conn=db.connect(conn_string)
df = pd.read_sql("select * from users", conn) print(df.head())
import psycopg2 as db from faker import Faker fake=Faker() data=[] i=2 for r in range(1000): data.append((i,fake.name(),fake.street_address(), fake.city(),fake.zipcode())) i+=1 data_for_db=tuple(data) print(data_for_db) conn_string="dbname='dataengineering' host='localhost' user='postgres' password='postgres'" # 집pc의 경우에는 password='201610974'
conn=db.connect(conn_string) cur=conn.cursor() query = "insert into users (id,name,street,city,zip) values(%s,%s,%s,%s,%s)" print(cur.mogrify(query,data_for_db[1])) cur.executemany(query,data_for_db) conn.commit() query2 = "select * from users"