Mac OS 에서 Python3과 MySQL 연동해보기(CRUD까지)
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
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까지 진행해 보았다!