설치
MariaDB 다운로드
MariaDB는 MySql에서 파생된 것으로 동일함
다운로드 링크
시스템에 해당하는 관리자 root
원격으로 제어
한글로 작업을 위해 두 체크박스 체크
MariaDB 포트 번호 3306 ( MySQL 3306, 오라클 1521, Tomcat 8080, HTTP 80 등등)
MySQL과 충돌날수 있기 때문에 변경해줄것
HeidiSQL 다운로드
HeidiSQL - SQL Developer
설치 후 접속 시
신규 선택
세션이름 127.0.0.1 (localhost)
실습(연습)
create
CREATE DATABASE python;
CREATE TABLE emp(
e_id INT,
e_name VARCHAR(40),
gen VARCHAR(1),
addr VARCHAR(400)
)
insert
INSERT INTO emp
VALUES (1,1,1,1);
INSERT INTO emp
VALUES (2,2,2,2);
INSERT INTO emp
VALUES (3,3,3,3);
update
UPDATE emp
SET e_name = 6,
gen = 6,
addr = 6
WHERE e_id = 3
delete
DELETE FROM emp
WHERE e_id='3'
pymysql
라이브러리 설치
cmd창에서 해당 문장을 입력
pip install PyMySQL
select
import pymysql
# sql과 연결
# port 기본값은 3306이기 때문에 꼭 포트설정이 필요하다
conn = pymysql.connect(host='127.0.0.1',
port=3305,
user='root',
password='python',
db='python',
charset='utf8')
# Tuple
cur = conn.cursor()
# DictCursor, Python에서 MySQL 쿼리 결과에 컬럼 자동으로 붙이기
# 칼럼이름 : value형식으로 출력됨
cur = conn.cursor(pymysql.cursors.DictCursor)
# sql문
sql = f"""
SELECT *
FROM emp
"""
# sql문을 cur에 입력
cur.execute(sql)
# 데이타 Fetch (가져오기)
rows = cur.fetchall()
# 출력
# print(rows) # 전체 rows
print(rows[0]) # 첫번째 row: (1, '1', '1', '1') > 튜플
print(rows[1]) # 두번째 row: (2, '2', '2', '2')
# Connection 닫기
conn.close()
JDBC와 비교하기
JDBC | pymysql |
Class.forName(Driver) conn = DriverManager.getConnection() |
pymysql.connect() |
stmt = conn.createStatement() | conn.cursor() |
rs = stmt.excuteQuery(sql) rs.next() (커서 역할) |
cur.execute(sql) > cur stmt와 동일 rows = cur.fetchall() |
rs.close() stmt.close() conn.close() |
cur.close() conn.close() |
insert
import pymysql
# sql과 연결
# port 기본값은 3306이기 때문에 꼭 포트설정이 필요하다
conn = pymysql.connect(host='127.0.0.1',
port=3305,
user='root',
password='python',
db='python',
charset='utf8')
# Tuple
cur = conn.cursor()
# sql문
sql = f"""
INSERT INTO emp
VALUES(%s, %s, %s, %s)
"""
data = ('3', '3', '3', '3')
# sql문을 cur에 입력
cur.execute(sql, data)
# 변경사항 커밋
conn.commit()
# Connection 닫기
cur.close()
conn.close()
import pymysql
# sql과 연결
# port 기본값은 3306이기 때문에 꼭 포트설정이 필요하다
conn = pymysql.connect(host='127.0.0.1',
port=3305,
user='root',
password='python',
db='python',
charset='utf8')
# Tuple
cur = conn.cursor()
e_id = '4'
e_name = '4'
gen = '4'
addr = '4'
# sql문 문자열 앞에 f를 넣으면 fString
sql = f"""
INSERT INTO emp
VALUES('{e_id}', '{e_name}', '{gen}', '{addr}')
"""
# sql문을 cur에 입력
# 방법1
# java식으로 바뀐 행 수 구하기
# cnt = cur.execute(sql)
# 방법2
# rowcount로 행을 값 찾기
cur.execute(sql)
cnt = cur.rowcount
print("{}행이 변환이 되었습니다".format(cnt))
# 변경사항 커밋
conn.commit()
# Connection 닫기
cur.close()
conn.close()
update
import pymysql
# sql과 연결
# port 기본값은 3306이기 때문에 꼭 포트설정이 필요하다
conn = pymysql.connect(host='127.0.0.1',
port=3305,
user='root',
password='python',
db='python',
charset='utf8')
# Tuple
cur = conn.cursor()
# sql문
sql = f"""
UPDATE emp
SET e_name = %s,
gen = %s,
addr = %s
WHERE e_id = %s
"""
data = ('6', '6', '6', '3')
# sql문을 cur에 입력
cur.execute(sql, data)
# 변경사항 커밋
conn.commit()
# Connection 닫기
cur.close()
conn.close()
delete
import pymysql
# sql과 연결
# port 기본값은 3306이기 때문에 꼭 포트설정이 필요하다
conn = pymysql.connect(host='127.0.0.1',
port=3305,
user='root',
password='python',
db='python',
charset='utf8')
# Tuple
cur = conn.cursor()
# sql문
sql = f"""
DELETE FROM emp
WHERE e_id = %s
"""
data = ('3')
# sql문을 cur에 입력
cur.execute(sql, data)
# 변경사항 커밋
conn.commit()
# Connection 닫기
cur.close()
conn.close()
'Python' 카테고리의 다른 글
[Python] Flask (0) | 2024.07.03 |
---|---|
[Python] pymongo (0) | 2024.07.03 |
7/1 Homework - 야구게임 pyqt (0) | 2024.07.01 |
서버 배포 (0) | 2024.07.01 |
6/28 Homework - 홀짝게임, 전화 (0) | 2024.06.28 |