DB
서버 가상화
라운드 로빈 방식
서버가 죽을것 같으면 다른 서버로 보냄
DB 종류
| RDB(관계형 DB) | NOSQL | |
| DB 종류 | Oracle, mySQl, MariaDB, PostgreSQl | MongoDB, Firebase |
| 특징 | 오라클로 MySQL이 들어감 | join을 하지 않아도 됨, 따라서 속도가 빠르다. |
오라클로 MySQL이 들어감
mariadb & HeidiSQL
download 및 사용해보기
mariadb download |
HeidiSQL download 및 사용 |
||
![]() |
![]() |
![]() |
![]() |
![]() pass : python |
![]() MYSQL과 같은 port와 같기 때문에 3305로 변경 |
바탕화면에 있는 거 삭제 하기![]() |
다운로드 된거 다시 깔기 ![]() |
![]() |
![]() |
||
![]() 오라클과 똑같다 |
![]() 데이터 베이스 생성 |
||
테이블 생성 ![]() |
데이터 추가 ![]() |
||
업데이트 ![]() |
삭제 |
||
pymysql 라이브러리 설치하기
파이썬 자체에는 MySQL을 인식하는 기능이 없습니다. 파이썬 코드에서 MySQL을 활용하기 위해 외부 라이브러리인 pymysql을 설치해야합니다.
1. windows + R을 누른 후에 실행 창에서 cmd를 입력하고 [확인] 버튼을 클릭합니다.
2. 명령 프롬프트가 나타나면 다음 명령어를 실행해서 pymysql을 설치합니다. ‘Successfully installed pymysql-x.x.x’와 같은 메시지가 나오면 성공입니다. WARNING 메시지는 무시하세요
pip install pymysql
- pip install은 외부 라이브러리를 설치하는 명령입니다. 지금은 pymysql 라이브러리를 설치했지만, 필요하다면 다른 라이브러리도 동일한 방식으로 설치할 수 있습니다.

3. 이제부터는 파이썬에서 MySQL과 관련된 기능을 사용할 수 있습니다. 다음 명령을 입력해서 명령 프롬프트를 종료합니다.
파이썬과 MySQL 데이터베이스 연동하기
- select
import pymysql
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor()
# 쿼리 실행 예시
sql = "SELECT * FROM Emp"
cur.execute(sql)
# 쿼리 결과 가져오기 /
row = cur.fetchall()# 여러개 가져오는 것
print(row)
# 결과 출력
# 연결과 커서 닫기
cur.close()
con.close()
튜플

json으로 가져오는 방법 (주로 사용하는 방법)
import pymysql
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor(pymysql.cursors.DictCursor)
#{'e_id': 1, 'e_name': '1', 'gen': '1', 'addr': '1'} : 딕셔너리 {}를 하나의 객체로 봄
# 쿼리 실행 예시
sql = "SELECT * FROM Emp"
cur.execute(sql)
# 쿼리 결과 가져오기 /
row = cur.fetchall() # 여러개 가져오는 (한번에 여러개를 가져오는게 속도가 더 빠름)
print(row)
# 결과 출력
# 연결과 커서 닫기
cur.close()
con.close()
-insert 1
import pymysql
#MySql 서버 연결
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor(pymysql.cursors.DictCursor)
# 데이터 삽입 쿼리 작성
sql = "INSERT INTO Emp(e_id, e_name, gen, addr) VALUES(4,'4','4','4')"
#쿼리 실행
cur.execute(sql)
#변경사항 컴잇
con.commit()
#연결 종료
con.close()
-insert 2
import pymysql
#MySql 서버 연결
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor()
e_id = 5
e_name = "5"
gen = "5"
addr = "5"
# 데이터 삽입 쿼리 작성 / """ """ 로 작성하면 다음줄로 띄우는게 가능하다 즉, 멀티 라인을 지원함
#f를 앞에 작성하고 '{}' 안에 변수명(컬럼명)을 작성해 주면 된다.
sql = f"""
INSERT INTO Emp
(e_id, e_name, gen, addr)
VALUES
('{e_id}','{e_name}','{gen}','{addr}')"""
#쿼리 실행
cnt = cur.execute(sql)
print("cnt : ",cnt) # 몇개가 들어 갔는지 알수 있도록
#변경사항 컴잇
con.commit()
#연결 종료
cur.close()
con.close()
-update
import pymysql
#MySql 서버 연결
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor()
e_id = 6
e_name = "7"
gen = "7"
addr = "7"
# 데이터 삽입 쿼리 작성 / """ """ 로 작성하면 다음줄로 띄우는게 가능하다 즉, 멀티 라인을 지원함
#f를 앞에 작성하고 '{}' 안에 변수명(컬럼명)을 작성해 주면 된다.
sql = f"""
UPDATE Emp SET e_name ='{e_name}', gen ='{gen}', addr='{addr}'
WHERE e_id ='{e_id}'"""
#쿼리 실행
# 몇개가 들어 갔는지 알수 있도록
# 방법1
cnt = cur.execute(sql)
# 방법2
#cnt = cur.rowcount
cur.execute(sql)
print("cnt : ",cnt)
#변경사항 컴잇
con.commit()
#연결 종료
cur.close()
con.close()
-delete
import pymysql
#MySql 서버 연결
con = pymysql.connect(host='127.0.0.1', port=3305, user='root',
passwd='python', db='python', charset='utf8')
# 커서 생성 / 자바에서 Statement와 비슷하다.
cur = con.cursor()
e_id = 6
# 데이터 삽입 쿼리 작성 / """ """ 로 작성하면 다음줄로 띄우는게 가능하다 즉, 멀티 라인을 지원함
#f를 앞에 작성하고 '{}' 안에 변수명(컬럼명)을 작성해 주면 된다.
sql = f"""
DELETE FROM Emp
WHERE e_id = '{e_id}'"""
#쿼리 실행
# 몇개가 들어 갔는지 알수 있도록
# 방법1
cnt = cur.execute(sql)
# 방법2
#cnt = cur.rowcount
cur.execute(sql)
print("cnt : ",cnt)
#변경사항 컴잇
con.commit()
#연결 종료
cur.close()
con.close()'파이썬 > 수업내용' 카테고리의 다른 글
| [Python] Web Progeanming (0) | 2024.07.03 |
|---|---|
| [Python] MongoDB, Studio 3T 설치 및 사용하기 (0) | 2024.07.03 |
| [Python] 숫자 맞추기 / 별 그리기 (0) | 2024.07.01 |
| [Python/PyQt] PyQt 로또 출력하기 (0) | 2024.06.28 |
| [Python/PyQt] PyQt 구구단 출력하기 (0) | 2024.06.28 |















