24_ SQL 심화 1

김정연·2023년 7월 21일
0

데이터스쿨

목록 보기
25/30

📌 AWD RDS

  • 터미널에서 외부 host 접속 명령어
    % mysql -h <엔드포인트> -P <포트> -u <마스터 사용자 이름> -p

✅ 같은 워크스페이스에서 vscode 실행

1) 내부에서 .sql파일 불러오기

  • SQL파일 불러오기
    mysql> source 파일명.sql
  • mysql 종료
    mysql> exit

2) 외부에서 .sql파일 불러오기

sql_ws % mysql -u username -p 데이터베이스명 < 파일명.sql

3) Database Backup

  • 특정 데이터베이스 백업
    % mysqldump -u username -p 데이터베이스명 > 백업파일명.sql
  • 모든 데이터베이스 백업
    % mysqldump -u username -p --all-databases > 백업파일명.sql

4) Table Backup

  • local환경의 mysql
    % mysqldump -u username -p 데이터베이스명 테이블명 > 백업파일명.sql
  • 외부환경의 mysql
    % mysqldump --set-gtid-purged=OFF -h <엔드포인트> -P <포트> -u <마스터 사용자 이름> -p 데이터베이스명 테이블명 > 백업파일명.sql

📌 Python with MySQL

✅ 가상환경 확인 !
✅ Jupyter notebook 과 mysql 은 같은 워크스페이스에서 !

  • MySQL Driver 를 설치
    % pip install mysql-connector-python
import mysql.connector

1) 연결

  • local database 연결
mydb = mysql.connector.connect(
    host = ' ',
    user= ' ',
    password = ' ',
)

caching_sha2_password 오류 해결 - https://yoshikixdrum.tistory.com/218 참고

  • AWS RDS 연결
remote = mysql.connector.connect(
    host = '엔드포인트',
    port = 3306,
    user = ' ',
    password = ' '
)

2) close database

local.close()
remote.close()

3) 예제

import mysql.connector

# aws rds 연결
conn = mysql.connector.connect(
    host = '엔드포인트',
    user = ' ', 
    port = 3306,
    password = ' ',
    database = ' '
)
import pandas as pd

# csv 파일 불러오기
df = pd.read_csv('Seoul_CCTV.csv', encoding='utf-8')

# conn에 테이블 생성
sql = 'create table cctv (기관명 varchar(8), 소계 int, 2013년도이전 int, 2014년 int, 2015년 int, 2016년 int)'
cursor = conn.cursor(buffered=True)
cursor.execute(sql)
# conn에 df데이터 넣기
sql = 'insert into cctv values (%s,%s,%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()

# conn에 df데이터가 잘 들어갔나 확인
cursor.execute('select * from cctv')

result = cursor.fetchall()
for row in result:
    print(row)

# conn 종료
conn.close()

출처) 제로베이스

0개의 댓글