MySQL
요약 노트 (2022년 1월 ~ 2022년 3월까지 공부했던 내용 정리)
혼자 공부하는 SQL책과 한빛미디어에서 제공하는 유튜브 강의로 공부함
PyMySQL
외부 라이브러리 설치: 파이썬을 MySQL과 연결해주는 대표적인 외부 라이브러리Downloads
클릭 후 Download Python 3.x.x
버튼 클릭python-3.x.x-amd64.exe
파일을 더블 클릭하고 설치Add Python 3.x to PATH
체크 후 Install Now
버튼 클릭Close
버튼 클릭cmd
창에서 pip install pymysql
입력Successfully installed pymysql-x.x.x
확인cmd
창에서 exit
입력IDLE
환경(한 줄 실행, 여러 줄 실행)시작
버튼 클릭 후 Python 3.x
파일에 IDLE
클릭Enter
키를 누르면 바로 실행File
-Exit
메뉴 클릭File
-New File
메뉴 클릭 후 새 창에서 코딩File
-Save
메뉴 클릭 후 파일 이름 지정 후 저장Run
-Run Module
메뉴 선택 또는 F5
키 누르기File
-Exit
메뉴 클릭DROP DATABASE IF EXISTS 데이터베이스_이름;
CREATE DATABASE 데이터베이스_이름;
연결자=pymysql.connect(연결 옵션)
import pymysql
conn = pymysql.connect(host=서버IP주소, user=사용자, password=암호, db=데이터베이스, charset=문자세트)
2. 커서 생성하기: 커서이름=연결자.cursor()
cur = conn.cursor()
3. 테이블 만들기: 커서이름.execute("CREATE TABLE 문장")
커서이름.execute()
함수의 매개변수로 넘겨주면 SQL 문이 데이터베이스에 실행됨cur.execute("CREATE TABLE 테이블_이름 (열_이름1 데이터형식, 열_이름2 데이터형식, ...)")
4. 데이터 입력하기(반복): 커서이름.execute("INSERT 문장")
커서이름.execute()
함수를 사용함cur.execute("INSERT INTO 테이블_이름 VALUES(데이터1, 데이터2, ...)")
cur.execute("INSERT INTO 테이블_이름 VALUES(데이터1, 데이터2, ...)")
5. 입력한 데이터 저장하기: 연결자.commit()
conn.commit()
6. MySQL 연결 종료하기: 연결자.close()
conn.close()
연결자=pymysql.connect(연결 옵션)
import pymysql
conn = pymysql.connect(host=서버IP주소, user=사용자, password=암호, db=데이터베이스, charset=문자세트)
2. 커서 생성하기: 커서이름=연결자.cursor()
cur = conn.cursor()
3. 데이터 조회하기: 커서이름.execute("SELECT 문장")
cur.execute("SELECT 열_이름 FROM 테이블_이름")
4. 조회한 데이터 출력하기(반복): 커서이름.fetchone()
fetchone()
: 한 행씩 접근하기fetchall()
: 모든 행에 한꺼번에 접근하기while (True):
row = cur.fetchone() -- 한 행씩 접근하기
if row == None:
break
data1 = row[0]
data2 = row[1]
print(f"{data1} {data2}")
5. MySQL 연결 종료하기: 연결자.close()
conn.close()
GUI: Graphical User Interface의 약자, 윈도에 그래픽 환경으로 제공되는 화면
tkinter 라이브러리: GUI 관련 모듈을 제공해주는 표준 윈도 라이브러리
from tkinter import *
root = Tk() -- 부모윈도
# 앞으로 이 부분에서 코딩을 추가해서 화면을 구성하고 처리함(제목, 크기, 위젯-라벨,버튼 등)
root.mainloop()
제목 및 크기
root.title()
: 윈도 제목 지정root.geometry("가로X세로")
: 윈도 크기 설정 root.title("GUI 연습장")
root.geometry("400X200") -- root.geometry("가로X세로")
위젯: 윈도에 나오는 버튼, 텍스트, 라디오 버튼, 이미지 등을 통합해서 지칭하는 용어
pack()
함수: 위젯을 화면에 나타나게 하는 함수pack()
함수의 옵션: 가로로 정렬하는 방법은 side=LEFT
또는 side=RIGHT
, 수직으로 정렬하는 방법은 side=TOP
또는 side=BOTTOM
방식button = Button(root, text="텍스트")
button.pack(side=LEFT) -- side=LEFT
pack()
함수의 옵션: 여백을 주려면 padx=픽셀값
또는 pady=픽셀값
button = Button(root, text="텍스트")
button.pack(side=TOP, fill=X, padx=10, pady=10) -- padx=픽셀값, pady=픽셀값
라벨
label(부모윈도, 옵션...)
형식: 라벨(문자를 표현할 수 있는 위젯)label = Label(root, text="텍스트입력")
label.pack()
버튼
Button(부모윈도, 옵션...)
형식: 라벨(마우스를 클릭하면 지정한 작업이 실행되도록 사용되는 위젯)command 옵션
: 사용자가 버튼을 눌렀을 때 지정한 작업을 처리해야 함from tkinter import messagebox
def clickButton():
messagebox.showinfo('제목', '내용')
button = Button(root, text="클릭", fg="red", bg="yellow", command=clickButton)
button.pack(expand = 1)
프레임
Frame(부모윈도)
upFrame = Frame(root)
upFrame.pack()
downFrame = Frame(root)
upFrame.pack()
엔트리
Entry(윈도, 옵션...)
editBox = Entry(upFrame, width = 10)
editBox.pack(padx = 20, pady = 20)
리스트 박스
Listbox(윈도, 옵션...)
listbox = Listbox(downFrame, bg = 'yellow')
listbox.pack()
listbox.insert(END, '하나')
우재남. (2021). 혼자 공부하는 SQL. 한빛미디어. p372-p406.