SQL(mysqldump, python, CSV)

Lee JunBok·2023년 6월 7일

SQL

목록 보기
5/8

AWS DATABASE 접속

# 해당 파일이 있는 디렉토리에서 접속
mysql -h "엔드포인트" -P 포트번호 -u 이름 -p 패스워드

mysqldump

DATABASE 옮기기

# local에서 작업한 database를 sql파일로 저장
mysqldump -u root -p zerobase > zerobase.sql

# asw서버에 해당 데이터 베이스로 들어가서 저장
use zerobase;
source zerobase.sql

TABLE 옮기기

# local에서 작업한 table을 sql파일로 저장
mysqldump -u root -p zerobase celeb > celeb.sql

# asw서버에 해당 데이터 베이스로 들어가서 저장
mysql -h "엔드포인트" -P 포트번호 -u 사용자이름 -p비밀번호 zerobase
source celeb.sql

TABLE SKIMA 옮기기

# local에서 작업한 TABLE SKIMA를 sql파일로 저장
mysqldump -d -u root -p zerobase snl_show > snl.sql

# --set-gtid-purged-OFF 옵션

python

python connector

# 해당 가상환경에 패키지 설치
pip install mysql-connector-python
# LOCAL
local = mysql.connector.connect(
    host = "localhost",
    user = "이름",
    password = "****",
    database = "데이터베이스명"
)
local.close()
# AWS
remote = mysql.connector.connect(
    host = "엔드포인트",
    port = 포트번호,
    user = "사용자이름",
    password = "****",
    database = "데이터베이스명"
)
remote.close()

execute

SQL 문장을 실행시키는 역할

remote = mysql.connector.connect(
    host = "엔드포인트",
    port = 포트번호,
    user = "사용자이름",
    password = "****",
    database = "데이터베이스명"
)

cur = remote.cursor()
cur.execute("CREATE TABLE sql_file (id int, filename varchar(16))")

remote.close()
cur = remote.cursor()
sql = open("test03.sql").read() # 여러개일때 multi=True 옵션 쓰기
cur.execute(sql)

Fetch All

모든 데이타를 한꺼번에 가져올 때 사용된다.

local = mysql.connector.connect(
    host = "localhost",
    user = "사용자이름",
    password = "****",
    database = "데이터베이스명"
)

cur = local.cursor(buffered=True)
cur.execute("SELECT * FROM sql_file")
result = cur.fetchall()
result

# [(1, 'test01.sql'), (2, 'test02.sql'), (3, 'test03.sql'), (4, 'test04.sql')]

CSV

df = pd.read_csv("2020_crime.csv", encoding='euc-kr')
df.head(2)
sql = "INSERT INTO crime_status VALUES ('2020', %s, %s, %s, %s)"
cursor = conn.cursor(buffered=True)
for i, row in df.iterrows():
    cursor.execute(sql, tuple(row))
    print(tuple(row))
    conn.commit()
cursor.execute("SELECT * FROM crime_status")

result = cursor.fetchall()
for row in result:
    print(row)
df = pd.DataFrame(result)
df.head()

이글은 제로베이스 데이터 취업스쿨의 강의자료 일부를 발췌하여 작성되었습니다.

profile
Learning Data Analyst

0개의 댓글