본문 바로가기
공부/Python(FastAPI)

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

by 줘요 2023. 9. 7.

 

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까지 진행해 보았다!

댓글