SQL

MYSQL과 파이썬 연동해서 분석하기(mac버전)

zzheng 2025. 4. 7. 16:30

파이썬과 연동하기 위해서는 먼저 MYSQL을 설치해야한다.

 

MYSQL 설치

터미널에 아래와 같은 명령어를 입력하여 설치한다. 

brew install mysql

설치가 완료되면, MySQL 서버에 접속하기 위한 명령어를 입력한다. 아래 명령어를 입력하면 패스워드를 입력한다. 

mysql -u root -p

이후, MYSQL 계정을 확인하기 위해 아래 명령어를 입력한다. 

select user, host, authentication_string from mysql.user;

이제 'mydatabase'라는 데이터베이스를 생성해보겠다. 

create database mydatabase;

이후, 데이터베이스 리스트를 확인한다.

show databases;

이제 MySQL에서 사용할 새로운 계정을 만들어보자. 아래 명령어를 입력한다:

create user 'user이름'@'localhost' identified by '패스워드';

계정 정보가 적용되도록 아래 명령어를 입력한다.

flush privileges;

사용자가 정상적으로 생성되었는지 확인하려면 다음 명령어를 입력한다.

select user, host, authentication_string from mysql.user;

새로 만든 사용자 계정이 mydatabase 데이터베이스에 접근할 수 있도록 권한을 부여한다.

grant all privileges on mydatabase.* to 'user이름'@'localhost';
flush privileges;

 

파이썬에서 MySQL 연동을 위한 라이브러리 설치

Jupyter Notebook에서 아래 명령어를 입력해 필요한 라이브러리를 설치한다. 

pip install mysql-connector-python
pip install sqlalchemy
pip install pandas

 

파이썬에서 MySQL에 연결

import mysql.connector

conn = mysql.connector.connect(
    host='localhost',
    user='user이름',
    password='패스워드',
    database='mydatabase'
)

cursor = conn.cursor()
print("✅ MySQL 연결 성공!")
conn.close()

 

이제 테이블을 생성한 후, 데이터를 입력해보겠다. 

테이블 생성 예시

conn = mysql.connector.connect(
    host='localhost',
    user='user이름',
    password='패스워드',
    database='mydatabase'
)
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    score INT
);
""")
conn.commit()
print("✅ 테이블 생성 완료")
conn.close()

 

테이블에 데이터 입력

conn = mysql.connector.connect(
    host='localhost',
    user='user이름',
    password='qwer1026',
    database='mydatabase'
)
cursor = conn.cursor()

data = [
    ("김철수", "수학", 85),
    ("이영희", "과학", 92),
    ("박민수", "영어", 78)
]

insert_query = "INSERT INTO students (name, subject, score) VALUES (%s, %s, %s)"
cursor.executemany(insert_query, data)
conn.commit()
print("📝 데이터 입력 완료")
conn.close()

 

데이터 분석 (pandas로 불러오기)

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("mysql+mysqlconnector://user이름:패스워드@localhost/mydatabase")
df = pd.read_sql("SELECT * FROM students", engine)

print(df)
print("\n📊 과목별 평균 점수:")
print(df.groupby("subject")["score"].mean())