220901 오전 수업 pymysql
2022. 9. 1. 20:13ㆍ카테고리 없음
MariaDB와 HeidiSQL을 사용하기로 했다.
한글 깨짐을 막기 위해 use utf8 as default server's chatacter set을 체크
port는 default가 3306인데 3305로 바꿔 설치했다. (port 충돌 막기 위해)
기본으로 설치되는 이 바로가기는 잘 작동하지 않는 경우가 있어서 지워준다. (설치할 때 다시 생김)
노란 형광펜 부분들은 건들이면 안되기 때문에 새로 DataBase를 만들었다.
CREATE DATABASE python;
CREATE TABLE emp(
e_id INT,
e_name VARCHAR(20),
e_sex VARCHAR(1),
e_addr VARCHAR(100)
)
INSERT INTO emp(e_id,e_name,e_sex,e_addr) VALUES ('1','1','1','1');
INSERT INTO emp(e_id,e_name,e_sex,e_addr) VALUES ('2','2','2','2');
INSERT INTO emp(e_id,e_name,e_sex,e_addr) VALUES ('3','3','3','3');
INSERT INTO emp(e_id,e_name,e_sex,e_addr) VALUES ('4','4','4','4');
UPDATE emp
SET e_name="6",
e_sex="6"
WHERE e_id="4";
DELETE FROM emp
WHERE e_id="4";
SELECT * FROM emp;
이런 저런 sql을 조물조물 해봤다.
pip install pymysql
cmd에서 명령문을 입력하면 라이브러리가 설치된다.
pip는 파이선으로 만든 패키지들을 열람하고 관리할 수 있는 저장소에서 파이선 패키지를 받아 설치하는 패키지 관리도구로 파이선 설치 시 함께 설치된고 한당
스크린샷을 못 찍었는데... 설치한 후에 이클립스를 재부팅하면 바뀐 거 반영할 것임? 물어볼 때 ㅇㅋㅇㅋ 하셈~ 해줘야 사용 가능한 듯....
일반적인 cmd로 되지 않아서 검색>anaconda를 관리자모드로 실행해서 설치하고 재부팅했더니 된다. ㅜ
python에서 db에 sql문을 사용하여 select 실행하기
import pymysql
#import 하는 순간 jdbc의 driver의 역할이 되었다고 볼 수 있다.
conn = pymysql.connect(
host='127.0.0.1', user='root', password='python', db='python', charset='utf8',port=3305)
# statement와 같은 역할 = cursor
cur = conn.cursor()
sql = "select * from emp"
cur.execute(sql)
#java jdbc의 resultSet과 같은 역할
rows=cur.fetchall()
print(rows)
cur.close()
conn.close()
f-string 사용한 sql문 - insert
import pymysql
#import 하는 순간 jdbc의 driver의 역할이 되었다고 볼 수 있다.
conn = pymysql.connect(
host='127.0.0.1', user='root', password='python', db='python', charset='utf8',port=3305)
# statement와 같은 역할 = cursor
cur = conn.cursor()
sql = "insert into emp (e_id,e_name,sex,addr) values (%s, %s, %s, %s)"
cnt = cur.execute(sql, ('1','1','1','1'))
#java jdbc의 resultSet과 같은 역할
#rows=cur.fetchall()
print("cnt",cnt)
# select에는 필요없으나 insert, delete, update에는 필요한 듯.
# 안하면 DB에 변경사항 저장이 안 되니까?
conn.commit()
cur.close()
conn.close()
f-string 사용한 sql문 - update
import pymysql
con = pymysql.connect(host='localhost', user='root', password='python',
db='python', charset='utf8',port=3305)
cur = con.cursor()
new_c="e_name"
new_v="9"
std_c="e_id"
std_v="1"
sql = f"update emp set {new_c}='{new_v}' where {std_c}='{std_v}'"
cnt = cur.execute(sql)
print("cnt",cnt)
con.commit()
cur.close()
con.close()
f-string 사용한 sql문 - delete
import pymysql
con = pymysql.connect(host='localhost', user='root', password='python',
db='python', charset='utf8',port=3305)
cur = con.cursor()
std_c="e_id"
std_v="1"
sql = f"delete from emp where {std_c}='{std_v}'"
cnt = cur.execute(sql)
print("cnt",cnt)
con.commit()
cur.close()
con.close()
좀 할만한 것 같기도..?