파이썬과 연동하기 위해서는 먼저 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())
'SQL' 카테고리의 다른 글
[스파르타코딩클럽] 엑셀보다 쉽고 빠른 SQL - 4주차(Subquery, Join) (0) | 2024.11.21 |
---|---|
[스파르타코딩클럽] 엑셀보다 쉽고 빠른 SQL - 3주차 (6) | 2024.11.20 |
[스파르타코딩클럽] 엑셀보다 쉽고 빠른 SQL - 2주차 (1) | 2024.11.19 |
[스파르타코딩클럽] 엑셀보다 쉽고 빠른 SQL - 1주차 (0) | 2024.11.19 |
[프로그래머스/SQL 고득점 Kit] 중복 제거하기 (2) | 2024.10.21 |