pymysql 로 실습 환경 만들기

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

3. pymysql 로 실습 환경 만들기

  • pymysql 로 SQL 사용하기 - read_sql() 메서드 익히기
In [2]:
import pymysql
import pandas as pd
In [11]:
host_name = "0.0.0.0"
username = "root"
password = "korea123"
database_name = "sakila"
  • db = pymysql.connect() 내의 인자는 다음 두 방식으로 사용해도 무방합니다.
    • host='서버주소', port=3306, user='아이디', passwd='암호', db='데이터베이스이름', charset='utf8'
    • '서버주소', 3306, '아이디', '암호', '데이터베이스이름', 'utf8'
In [12]:
db = pymysql.connect(
    host=host_name,  # DATABASE_HOST
    port=3306,
    user=username,  # DATABASE_USERNAME
    passwd=password,  # DATABASE_PASSWORD
    db=database_name,  # DATABASE_NAME
    charset='utf8'
)
In [15]:
SQL = "SHOW TABLES"
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
  • read_sql(쿼리, 연결된 db connection 객체)
In [16]:
df = pd.read_sql(SQL, db)
In [17]:
df
Out[17]:
Tables_in_student_mgmt
0 students
In [19]:
SQL = "SELECT * FROM students"
df = pd.read_sql(SQL, db)
df
Out[19]:
id name gender birth english math korean
0 1 dave man 1983-07-16 90 80 71
1 2 minsun woman 1982-10-16 30 88 60
2 3 david man 1982-12-10 78 77 30
3 4 jade man 1979-11-01 45 66 20
4 5 jane man 1990-11-12 65 32 90
5 6 wage woman 1982-01-13 76 30 80
6 7 tina woman 1982-12-03 87 62 71
In [ ]:
cursor = db.cursor()
sql = """

DROP DATABASE IF EXISTS student_mgmt;
CREATE DATABASE student_mgmt DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

USE student_mgmt;
DROP TABLE IF EXISTS students;
CREATE TABLE students (
  id TINYINT NOT NULL AUTO_INCREMENT,
  name VARCHAR(10) NOT NULL,
  gender ENUM('man','woman') NOT NULL,
  birth DATE NOT NULL,
  english TINYINT NOT NULL,
  math TINYINT NOT NULL,
  korean TINYINT NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('dave', 'man', '1983-07-16', 90, 80, 71);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('minsun', 'woman', '1982-10-16', 30, 88, 60);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('david', 'man', '1982-12-10', 78, 77, 30);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jade', 'man', '1979-11-1', 45, 66, 20);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jane', 'man', '1990-11-12', 65, 32, 90);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('wage', 'woman', '1982-1-13', 76, 30, 80);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('tina', 'woman', '1982-12-3', 87, 62, 71);
"""
print(sql)
cursor.execute(sql)
db.commit()
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다

테이블에 데이터 한번에 입력하기

  • mysql CLI로 CSV 파일 LOAD 하기 (현업에서는 mysql CLI로 많이 사용합니다.)
  • Mysql Workbench
    • Go to Schemas -> Find student_mgmt database (만약 없으면, Schemas 메뉴의 refresh 버튼) -> Go to Tables -> Go to students -> Table Data Import Wizard -> student.csv File 선택 -> Source Column / Dest Column 설정 -> Import