#혼공학습단13기 #혼공S #SQL #MYSQL

🐍 Chapter 08 : SQL과 파이썬 연결

8강 먼저 작성하였습니다. 사유: 저는 파이썬 사용자호소인이기 때문입니다.

<aside> 📔

  1. PyMySQL: 파이썬을 MySQL과 연결시켜주는 대표적인 외부 라이브러리
  2. IDLE: Integrated Development and Learning Environment 파이썬을 개발하는 통합 개발 환경
  3. commit: 임시로 저장된 상태로, 이를 확실하게 저장하는 것
  4. 대화형 모드: 소스 코드 한 줄을 입력하고 엔터 키를 누르면 바로 실행하는 방식
  5. fetchone(): 파이썬에서 SELECT 문으로 조회한 데이터를 한 행씩 가져오기 위해 사용하는 함수
  6. tkinter: 파이썬에서 GUI 관련 모듈을 제공해주는 표준 window 라이브러리

</aside>

<aside> 📔

complied language vs interpreted language

  1. compiled language: 소스 코드를 실행 가능한 기계어로 일괄 번역한 후에 번역이 완료된 파일이 실행되는 언어
  2. interpreted language: 소스 코드를 한 줄씩 읽어 바로 실행되는 언어 </aside>

<aside>

🐍 파이썬 개발 환경 준비

python 🔗 pymysql

⚠️ 파이썬과 MySQL을 연결하기 위해서는 파이썬의 외부 라이브러리인 PyMySQL을 사용해야 합니다!

<aside>

1. 파이썬 설치 → 2. cmdpip install pymysql 입력해서 pymysql 설치 → 3. Successfully installed pymysql -x.x.x 확인 → 4. import pymysql

</aside>


🐍🐬 파이썬과 MySQL의 연동

pymysql를 통해 데이터베이스 연동 프로그램을 작성할 수 있습니다.

1. MySQL 워크벤치에서 DB 생성

DROP DATABASE IF EXISTS soloDB; --soloDB 생성
CREATE DATABASE soloDB;

2. 파이썬에서 데이터 입력

<aside>

1. MySQL 연결 → 2. 커서 생성 → 3. 테이블 생성 → 4. 데이터 입력 및 저장 → 5. MySQL 연결 종료

</aside>

  1. MySQL 연결: pymysql.connect(host, user, password, db, charset등 옵션)

    import pymysql
    conn = pymysql.connect(host='호스트ip주소', user = 'root', password = '0000', db = 'soloDB', charset = 'utf8') #utf8: 한글
    
  2. 커서 생성: 연결자.cursor()

    cur = conn.cursor()
    
  3. 테이블 생성: 커서명.execute(”CREATE TABLE 문장”) ⇒ (” “) 주의

    cur.execute("CREATE TABLE userTable (id char(4), userName char(15), ,,,)**")**
    
  4. 데이터 입력 및 저장: 커서명.execute(”INSERT 문장”) / 연결자.commit() ⇒ (” “) 주의

    cur.execute("INSERT INTO userTABLE VALUES('hong', '홍홍', ~)")
    ~~~
    conn.commit()
    
  5. MySQL 연결 종료: 연결자.close()

    conn.close()
    

</aside>

<aside>

🖱️ GUI 응용 프로그램 - tkinter 활용

tkinter 라이브러리를 통해 GUI 응용 프로그램을 작성할 수 있습니다.


1. 기본 윈도 구성

 from tkinter import *
 root = Tk()
 root.title("혼공 연습")
 root.geometry("400X200")
 root.mainloop()

2. Label() - 문자 표현

label1=Label(root, text = "우가", font= ("궁서체",30), bg="blue", fg="yellow")
label1.pack()

3.Button() - 마우스 클릭

4. pack() - 위젯의 정렬

5. Frame(), Entry(), Listbox() - 화면 구성

from tkinter import *
root =Tk()
root.geometry("200X250")

upFrame = Frame(root)
upFrame.pack()
downFrame = Frame(root)
downFrame.pack()

editBox = Entry(upFrame, width=10)
editBox.pack(padx = 20, pady = 20)

listbox = Listbox(downFrame, bg = 'yellow')
listbox.pack()

listbox.insert(END, "하나")
listbox.insert(END, "둘")
listbox.insert(END, "셋")

root.mainloop()

</aside>

🖥️ Chapter 07 : 스토어드 프로시저

스토어드 프로시저를 활용해 프로그래밍 로직을 추가합니다.

<aside>

🖥️ 스토어드 프로시저 기본

stored procedure란 MySQL에서 제공하는 프로그래밍 기능입니다.

DELIMITER $$
CREATE PROCEDURE 스토어드프로시저이름(IN | OUT 매개변수)
BEGIN
   SQL 프로그래밍 코드
END $$
DELIMITER ;

🖥️ 스토어드 프로시저 실습

CALL 프로시저_이름(@변수명);
SELECT @변수명;

🖥️ 동적 SQL 활용

다이나믹하게 SQL을 생성한 후 실행합니다.

SET @sqlQuery = CONCAT('SELECT * FROM ',tableName);
PREPARE myQuery FROM @sqlQUERY;
EXECUTE myQuery;
DEALLOCATE PREPARE myQuery;

<aside>

</aside>

<aside>

</aside>

작성자: jj 02/25/2025

작성자: jj 02/25/2025