공부/Python(FastAPI)

Mac OS 에서 Python3과 MySQL 연동해보기(CRUD까지)

줘요 2023. 9. 7. 14:55

 

PyMySQL 설치를 해보자

 

Python과 MySQL은 이미 설치되어 있는 상태로 가정한다.

 

터미널을 실행한 후에 아래 명령어를 넣어준다.

pip install PyMySQL

명령어를 넣었는데 pip를 찾을 수 없다고 하고 있다,,

시작부터 난관이다,,

구글링이 계속해보니 아래 명령어를 넣고 하면 된다고 한다. 

sudo easy_install pip

그래도 안된다,,,

command not found: pip를 검색했더니 pip를 업그레이드해주면 된다고 한다.

pip3 install --upgrade pip

느낌이 좋다

다시 한번 PyMySQL을 설치 명령어를 넣어주니 install되었다!

오 구글링 짱

이제 DBtest.py 파일에서 연결해 보자! (VScode에서 실습해 보았다.)

import pymysql

오류 문구가 없으면 문제 없음

https://luran.me/300

 

PyMySQL - 파이썬으로 MySQL 사용하기

파이썬으로 MySQL 사용하기 Python으로 MySQL에 접속하고, 데이터를 다루려면 여러 라이브러리가 있다. 마침 StackOverFlow에도 이와 관련한 Q&A가 있어서 살펴보고 선택하고자 한다. https://stackoverflow.com/q

luran.me

여기서부터는 LuRan님의 블로그를 따라 해보았다.

import pymysql

db = pymysql.Connect(host='localhost', user='*1', password='*2', database='*3')

*1 = DB 계정, *2 = DB 비밀번호, *3 = 접속할 DB명을 넣어준다.

 

CRUD 테스트를 위해 아래와 같이 테이블을 만들어주고 DB값을 넣어주었다.

create table student (
    id int(6) AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    major varchar(255) NOT NULL,
    PRIMARY KEY (id)
);

select * from student;

INSERT INTO student (name, major) VALUES
    ('John', 'Music'),
    ('Sarah', 'Art'),
    ('Steve', 'Computer Science');

 

SELECT

먼저 입력된 데이터 값을 불러와 보자 아래와 같이 추가로 코드를 입력하게 되면 

cursor = db.cursor()

query = "SELECT * FROM student"
cursor.execute(query)
result = cursor.fetchall()

print(result)

아래의 결과를 확인할 수 있다.

((1, 'John', 'Music'), (2, 'Sarah', 'Art'), (3, 'Steve', 'Computer Science'))

구분되어서 보려면 print(result) 부분을

for x in result:
    print(x)

으로 수정하게 되면 아래와 같이 구분된 결과를 확인할 수 있다.

(1, 'John', 'Music')
(2, 'Sarah', 'Art')
(3, 'Steve', 'Computer Science')

 

INSERT

생성된 테이블에 값을 넣어보자 

cursor = db.cursor()

query = "INSERT INTO student (name, major) VALUES (%s, %s)"
data = ('Emma', 'Movie')
cursor.execute(query, data)

db.commit()

값이 제대로 들어갔는지 SELECT로 다시 확인해 보면

(1, 'John', 'Music')
(2, 'Sarah', 'Art')
(3, 'Steve', 'Computer Science')
(4, 'Emma', 'Movie')

 

데이터가 추가된 것을 확인할 수 있다.

 

execute 대신에 executemany를 넣게 되면 여러 데이터를 추가할 수 있다. 

cursor = db.cursor()

query = "INSERT INTO student (name, major) VALUES (%s, %s)"
data = [('Tom', 'Math'), ('Max', 'Statistics')]
cursor.executemany(query, data)

db.commit()

다시 한번 확인해 보면 두 개가 추가된 것을 확인할 수 있다.

(1, 'John', 'Music')
(2, 'Sarah', 'Art')
(3, 'Steve', 'Computer Science')
(4, 'Emma', 'Movie')
(5, 'Tom', 'Math')
(6, 'Max', 'Statistics')

 

UPDATE

특정 데이터 값을 변경해 보자

cursor = db.cursor()

query = "UPDATE student SET name = 'Ben' WHERE id = 6"
cursor.execute(query)

db.commit()

6번째 데이터 값의 이름을 변경하였고 SELET로 확인해 보면 변경된 것을 확인해 볼 수 있다.

(1, 'John', 'Music')
(2, 'Sarah', 'Art')
(3, 'Steve', 'Computer Science')
(4, 'Emma', 'Movie')
(5, 'Tom', 'Math')
(6, 'Ben', 'Statistics')

 

DELETE

데이터를 삭제해 보자 

cursor = db.cursor()

query = "DELETE FROM student WHERE id = 6"
cursor.execute(query)

db.commit()

6번째 데이터를 삭제하고 확인해 보면 5개의 데이터 값이 남아있는 것을 확인할 수 있다.

(1, 'John', 'Music')
(2, 'Sarah', 'Art')
(3, 'Steve', 'Computer Science')
(4, 'Emma', 'Movie')
(5, 'Tom', 'Math')

 

이상으로 Python과 MySQL을 연결해 보고 CRUD까지 진행해 보았다!