Day14_MySQL _Python 데이터 삽입+삭제+수정+출력
2023. 3. 22. 13:06ㆍ파이썬
사용 Tool = Jupyter Notebook
사용 module = mysql client
1. 주피터 노트북 실행
2. ! pip install mysqlclient
연결 방법
1.import MySQLdb
2. db = MySQLdb.connect(host = 'localhost', user = 'root', password = '1234', db = 'kdt')
혹은
MySQLdb.connect('localhost','root','1234','kdt')
db라는 변수에 MySQLdb 모듈의 connect 메소드를 사용하여 객체 생성 (db는 객체)
db는 MySQL 기능 다 쓸 수 있다.
cursor 생성하기
* 하나의 database connection에 대하여 독립적으로 SQL문을 실행할 수 있는 작업환경을 제공하는 객체
* 하나의 connection에 동시에 한 개의 cursor만 생성 할 수 있으며
* cursor를 통해 SQL문을 실행하면 실행결과 튜플 단위로 반환
작업환경을 만들게 해준다.
cur = db.cursor()
sql = 'select userid,username,hp,email,gender from member'
cur.execute(sql) # execute는 커서 객체에서 제공
SQL문 결과 가져오기
fetchall(): 한번에 모든 tuple을 가져온다.
검색 결과가 너무 크다면 메모리 오버헤드가 발생 할 수 있다 / 데이터가 다 끝나면 안가져옴
fetchone(): 한번에 하나의 tuple만 가져옴
다시 메서드를 호출하면, 다음 데이터 1개를 가져온다. / 데이터가 다 끝나면 안가져옴
예시
sql = 'select userid,username,hp,email,gender from member'
cur.execute(sql)
while True:
row = cur.fetchone()
if row:
print(row)
else:
break
해석: sql 문법을 cur로 실행 -> member 테이블을 한줄씩 프린트
예시
해석:
cursor를 dictionary만드는 커서로 변경
sql문 실행
실행 후 f' 에 맞는 방식으로 출력
DB에 데이터 삽입하기
sql = "insert into member (userid,userpw,username,hp,email,gender,ssn1,ssn2)
values (%s,%s,%s,%s,%s,%s,%s,%s)"
data = ('avocado','8888','아보카도','010-8888-8888','avocado@avocado.com','m','888888','8888888')
cur.execute(sql,data)
db.commit() # 이문장을 꼭 쳐야 된다
해석
1. sql문으로 데이터 추가 작성 ( 단 ! values는 변수 처리 해줘야함)
2. data라는 튜플형식 변수에 데이터 입력
3. cur.execute(sql문,튜플형식 데이터) 입력
4. db.commit()으로 적용
DB에 데이터 2개 이상 삽입하기
sql = "insert into member (userid,userpw,username,hp,email,gender,ssn1,ssn2) values (%s,%s,%s,%s,%s,%s,%s,%s)"
data = [('watermelon','9999','수박','010-9999-9999','watermelon@watermelon.com','m','999999','9999999'),
('peach','7890','복숭아','010-7890-7890','peach@peach.com','m','456789','4567890')]
cur.executemany(sql,data)
db.commit()
해석
1. sql문으로 데이터 추가 작성 ( 단 ! values는 변수 처리 해줘야함)
2. 삽입할 행이 2개임으로 각각 1개 1개를 튜플로 묶고, 큰 리스트 하나에 담는다.
3. 위와 같음
DB에 데이터 삭제하기
import MySQLdb
db = MySQLdb.connect('localhost','root','1234','kdt')
cur = db.cursor()
sql = "delete from member where userid = 'avocado'"
result = cur.execute(sql)
db.commit()
if result > 0:
print('탈퇴 되었습니다.')
else:
print('오류 !!')
해석
1. sql문으로 userid가 avocado인 데이터를 삭제 작성
2. result 라는 변수에 실행 결과를 담음 (결과 int !)
3. result가 삭제 처리되어서 1이상으로 표시되면 탈퇴 출력
4. 아니면 오류 출력
728x90
'파이썬' 카테고리의 다른 글
Day14_MySQL_Python 로그인 프로그램 작성 (0) | 2023.03.22 |
---|---|
Day14_MYSQL_Python 회원가입 프로그램을 만들어보자 (0) | 2023.03.22 |
Day13_Python_ DAO,DTO,VO (0) | 2023.03.21 |
Day 9 파일 읽기 및 저장하기 (0) | 2023.03.14 |
Day 8 변수 타입 어노테이션 (0) | 2023.03.14 |