설치

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