* 해당 프로그램은 교육원에서 수강생을 관리하기 위해 개발하여 사용 중인 프로그램입니다.


[MySQL을 이용한 고객 관리 프로그램 제작]

 (바로가기를 클릭하시면 해당 게시글로 넘어갑니다.)



Ⅰ 'PyMySQL'을 이용한 Python - MySQL 연동


1. 'PyMySQL' 설치 및 기본 연동 (바로가기)


2. 'PyMySQL'을 이용한 기본 쿼리문 전달 (DB/Table 생성 등) (바로가기)



Ⅱ 프로그램 기능 구현


3. 기본 구조 및 데이터 조회 기능 구현 (바로가기)


4. 데이터 입력/삭제 기능 구현 (바로가기)


5. 데이터 변경 기능 구현 (바로가기)


6. 프로그램 종료 기능 구현 및 전체 코드 (바로가기)




# 1-1. 'PyMySQL' 설치


pip install PyMySQL


\Users\Project> pip install PyMySQL

Collecting PyMySQL

Using cached https://files.pythonhosted.org/packages/32/e8/222d9e1c7821f935d6dba8d4c60b9985124149b35a9f93a84f0b98afc219/PyMySQL-0.8.1-py2.py3-none-any.whl

Installing collected packages: PyMySQL

Successfully installed PyMySQL-0.8.1


터미널에 'pip(3)'를 이용한 문장으로 간단하게 'PyMySQL'를 다운받을 수 있습니다.



# 1-2. 필요 정보 입력받고 사용할 메소드 호출하기


'PyMySQL'을 import한 뒤 MySQL과 연결(Connect)하기 위해서는 'pymysql.connect' 메소드를 이용해야 합니다. 이 함수는 host, user, password, db, charset 등의 정보를 필요로 하는데, 고정된 값을 사용하는 경우에는 문자열로 넣어주고 사용할 때 마다 입력받을 정보는 'input'을 이용해 받아오겠습니다. 참고로 사용할 DB의 경우 MySQL에 접속하여 미리 생성해두었습니다.


u = input("계정명: ")

p = input("패스워드: ")


import pymysql

connect = pymysql.connect(host='localhost', user=u, password=p, db='test', charset='utf8')

cursor = connect.cursor(pymysql.cursors.DictCursor)


DB접속 후에는 'connect'로부터 이후 작성할 SQL 문장을 처리하는 'execute', 'fetchall' 등의 메소드를 사용하기 위한 'cursor' 메소드를 호출했습니다.


 

# 1-3. 연결 확인


해당 파일을 'project02.py'로 저장하고, 터미널에서 해당 디렉토리로 이동해 파일을 실행했습니다. 계정명과 패스워드 값을 입력한 뒤 연결, 코드 등에 문제가 없는 경우에는 에러 발생없이 프로그램이 종료됩니다.


python project02.py


\Users\Project> python project02.py

계정명: root

패스워드: 123456




# 2-1. DB 생성하기


sql = ["DROP DATABASE IF EXISTS test;", "CREATE DATABASE test;", "SHOW DATABASES;"]

for s in sql:

cursor.execute(s)

result = cursor.fetchall()

for r in result:

print(r)


\Users\Project> python project02.py

{'Database': 'information_schema'}

{'Database': 'iata'}

{'Database': 'mysql'}

{'Database': 'performance_schema'}

{'Database': 'sakila'}

{'Database': 'sys'}

{'Database': 'test'}

{'Database': 'world'}


'execute' 메소드에 for문을 이용하여 실행할 쿼리문을 전달하고 'fetchall' 메소드를 이용하여 쿼리문을 실행하였습니다. DB 생성 후 조회 쿼리를 마지막에 담아 출력해보니 test DB가 제대로 생성되어있었습니다.




# 2-2. 테이블(Table) 생성하기


sql = ["USE test;", 

"CREATE TABLE student(name VARCHAR(8) NOT NULL,

birth INT(8),

team VARCHAR(10),

phone VARCHAR(11),

address VARCHAR(5))engine=innoDB default charset=utf8;",

"SHOW TABLES;"]

for s in sql:

cursor.execute(s)

result = cursor.fetchall()

for r in result:

print(r)


\Users\Project> python project02.py

{'Tables_in_test': 'student'}


DB 생성 때와 마찬가지로 'execute' 메소드에 for문을 이용하여 실행할 쿼리문을 전달하고 'fetchall' 메소드를 이용하여 쿼리문을 실행하였습니다. 출력해보니 student 테이블이 잘 생성되어있었습니다.


# 4-1. 데이터 입력하기(insert)


elif cmd == 'i':

name = input("수강생 이름: ")

birth = input("생년월일(숫자 8자리): ")

team = input("소속 그룹(A/B/C): ")

phone = input("전화번호(숫자 11자리): ")

address = input("거주지: ")

sql = "INSERT INTO student VALUES('{}',{},'{}','{}','{}')".format(name, birth, team, phone, address)

cursor.execute(sql)

connect.commit()

print("해당 데이터의 입력이 완료되었습니다.")


입력 시 필요한 데이터를 'input'으로 받아 쿼리문을 완성, 전달했습니다. 이후 데이터 입력(insert) 후 DB 변동 사항을 저장하기 위하여 'connect.commit' 메소드를 사용했습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): i


수강생 이름: test0

생년월일(숫자 8자리): 19991230

소속 그룹(A/B/C): C

전화번호(숫자 11자리): 01099999999

거주지: 대전

해당 데이터의 입력이 완료되었습니다.


파일을 실행시켜 명령어 'i'를 이용해 'test0'에 해당하는 데이터를 입력(insert)했습니다. 모든 데이터 조회를 실행하면 이전에는 없었던 데이터가 잘 들어가 있는 것을 확인할 수 있습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): a


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지   

-----------------------------------------------

  test1    19900301    A   01000000000  서울

  test2    19910412    A   01011111111  인천

  test3    19920523    B   01022222222  수원

  test4    19930604    A   01033333333  대전

  test5    19940715    C   01044444444  부산

  test6    19950826    C   01055555555  대구

  test7    19960907    B   01066666666  서울

  test8    19971018    B   01077777777  인천

  test9    19981129    A   01088888888  대전

  test0    19991230    C   01099999999  대전

-----------------------------------------------




# 4-2. 데이터 삭제하기(delete)


elif cmd == 'i':

print("※ 수강생 삭제는 전화번호를 통해서만 가능합니다.")

phone = input("목록에서 삭제할 수강생의 전화번호(숫자 11자리): ")

sql = "DELETE FROM student WHERE phone = '{}')".format(phone)

cursor.execute(sql)

connect.commit()

print("해당 데이터의 삭제가 완료되었습니다.")


삭제 시 필요한 데이터를 'input'으로 받아 쿼리문을 완성, 전달했습니다. 이름, 생년월일처럼 중복된 값이 들어올 가능성이 없는 전화번호를 KEY로 사용하였습니다. 또한 데이터 입력(insert)과 마찬가지로 DB 변동 사항을 저장하기 위하여 'connect.commit' 메소드를 사용했습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): d


※ 수강생 삭제는 전화번호를 통해서만 가능합니다.

목록에서 삭제할 수강생의 전화번호(숫자 11자리): 01099999999

해당 데이터의 삭제가 완료되었습니다.


파일을 실행시켜 명령어 'd'를 이용해 위해서 추가한 데이터를 제거(delete)했습니다. 모든 데이터 조회를 실행하면 생성되었던 데이터가 사라진 것을 확인할 수 있습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): a


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지   

-----------------------------------------------

  test1    19900301    A   01000000000  서울

  test2    19910412    A   01011111111  인천

  test3    19920523    B   01022222222  수원

  test4    19930604    A   01033333333  대전

  test5    19940715    C   01044444444  부산

  test6    19950826    C   01055555555  대구

  test7    19960907    B   01066666666  서울

  test8    19971018    B   01077777777  인천

  test9    19981129    A   01088888888  대전

-----------------------------------------------


# 5-1. 데이터 변경하기(revise)


elif cmd == 'r':

print("※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.")

phone = input("전화번호(숫자 11자리): ")

sql = "SELECT * FROM student WHERE phone = '{}')".format(phone)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

con = input("\n어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? ")


데이터 삭제 때와 마찬가지로 이름, 생년월일처럼 중복된 값이 들어올 가능성이 없는 전화번호를 KEY로 입력받아 사용하였습니다. 또한 변경 대상이 맞는 지 확인할 수 있도록 입력 받은 KEY값을 가진 데이터를 출력해주는 코드를 추가하였습니다. 


데이터 변경의 경우 특정 칼럼을 각각 변경할 수 있도록 아래와 같은 구조로 'if문'을 사용했습니다.


elif cmd == 'r':

con = input("\n어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? ")

if con == '이름': <code>

elif con == '생년월일': <code>

elif con == '소속': <code>

elif con == '전화번호': <code>

elif con == '거주지': <code>



# 5-1-1. 변경 대상: 이름


if con == '이름':

print("\n해당 수강생의 이름을 무엇으로 수정하시겠습니까?")

name = input("> ")

sql = "UPDATE student SET name = '{}' where phone = '{}'".format(name, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


전화번호가 '01000000000'인 학생의 이름을 'student1'로 변경한 뒤 조회해보겠습니다.


\Users\Project> python project02.py

***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): r


※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.

전화번호(숫자 11자리): 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

  test1    19900301    A   01000000000  서울

-----------------------------------------------

어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? 이름


해당 수강생의 이름을 무엇으로 수정하시겠습니까?

> student1


정보 변경이 완료되었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): f


무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)

> 전화번호


검색하실 전화번호을 입력해 주세요. (숫자만 입력 해 주세요.)

> 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   19900301    A   01000000000  서울

-----------------------------------------------



# 5-1-2. 변경 대상: 생년월일


elif con == '생년월일':

print("해당 수강생의 생년월일을 무엇으로 수정하시겠습니까? (숫자 8자리)")

birth = input("> ")

sql = "UPDATE student SET birth = '{}' where phone = '{}'".format(birth, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


전화번호가 '01000000000'인 학생의 생년월일을 '20180101'로 변경한 뒤 조회해보겠습니다.


\Users\Project> python project02.py

***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): r


※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.

전화번호(숫자 11자리): 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   19900301    A   01000000000  서울

-----------------------------------------------

어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? 생년월일


해당 수강생의 생년월일을 무엇으로 수정하시겠습니까?

> 20180101


정보 변경이 완료되었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): f


무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)

> 나이


※ 숫자만 입력 해 주세요.


몇 살 이상을 검색하시겠습니까? 1

몇 살 이하을 검색하시겠습니까? 1


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    A   01000000000  서울

-----------------------------------------------



# 5-1-3. 변경 대상: 소속


elif con == '소속':

print("\n해당 수강생의 소속을 무엇으로 수정하시겠습니까? (A/B/C)")

team = input("> ")

sql = "UPDATE student SET team = '{}' where phone = '{}'".format(team, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


전화번호가 '01000000000'인 학생의 소속을 변경한 뒤 조회해보겠습니다.


\Users\Project> python project02.py

***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): r


※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.

전화번호(숫자 11자리): 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    A   01000000000  서울

-----------------------------------------------

어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? 소속


해당 수강생의 소속을 무엇으로 수정하시겠습니까? (A/B/C)

B


정보 변경이 완료되었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): f


무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)

전화번호


검색하실 전화번호을 입력해 주세요. (숫자만 입력 해 주세요.)

> 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    B   01000000000  서울

-----------------------------------------------



# 5-1-4. 변경 대상: 전화번호


elif con == '전화번호':

print("\n해당 수강생의 전화번호를 무엇으로 수정하시겠습니까? (숫자 11자리)")

new_phone = input("> ")

sql = "UPDATE student SET phone = '{}' where phone = '{}'".format(new_phone, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


전화번호가 '01000000000'인 학생의 전화번호를 '01012345678'로 변경한 뒤 조회해보겠습니다.


\Users\Project> python project02.py

***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): r


※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.

전화번호(숫자 11자리): 01000000000


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    B   01000000000  서울

-----------------------------------------------


어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? 전화번호


해당 수강생의 전화번호를 무엇으로 수정하시겠습니까? (숫자 11자리)

> 01012345678


정보 변경이 완료되었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): f


무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)

이름


검색하실 수강생의 이름을 입력해 주세요.

> student1


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    B   01012345678  서울

-----------------------------------------------



# 5-1-4. 변경 대상: 거주지


elif con == '거주지':

print("\n해당 수강생의 거주지를 어디로 수정하시겠습니까? ")

address = input("> ")

sql = "UPDATE student SET address = '{}' where phone = '{}'".format(address, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


전화번호가 '01012345678'인 학생의 거주지를 '수원'으로 변경한 뒤 조회해보겠습니다.


\Users\Project> python project02.py

***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): r


※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.

전화번호(숫자 11자리): 01012345678


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    B   01012345678  서울

-----------------------------------------------


어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? 거주지


해당 수강생의 거주지를 어디로 수정하시겠습니까?

수원


정보 변경이 완료되었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): f


무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)

거주지


검색하실 거주지를 입력해 주세요.

> 수원


-----------------------------------------------

   이름     생년월일   소속   전화번호    거주지

-----------------------------------------------

student1   20180101    B   01012345678  수원

  test3    19920523    B   01022222222  수원

-----------------------------------------------


# 6-1. 프로그램 종료하기 (quit)


elif cmd == 'q':

connect.commit()

print("프로그램을 종료합니다.")


프로그램 종료 시에는 특별한 것 없이 'commit'만 한번 더 해주었습니다.


***사용 가능 명령어 리스트***

a  : 모든 데이터 조회(all)

f  : 조건에 맞는 데이터만 조회(find)

i  : 수강생 입력(insert)

d  : 수강생 삭제(delete)

r  : 정보 변경(revise)

q  : 저장하고 나가기(quit)


command(명령어 입력): q


프로그램을 종료합니다.




# 6-2. 프로그램 전체 코드


def print_result(result):

print("\n------------------------------------------------------------------------")

cnames = ['이름', '생년월일', '소속', '전화번호', '거주지']

for c in cnames:

print(c.center(11, ' '), end='\t')

print("\n------------------------------------------------------------------------")

ccodes = ['name', 'birth', 'team', 'phone', 'address']

for r in result:

for c in ccodes:

print(str(r[c]).center(11, ' '), end='\t')

print("")

print("------------------------------------------------------------------------")


u = input("계정명: ")

p = input("패스워드: ")


import pymysql

connect = pymysql.connect(host='localhost', user=u, password=p, db='test', charset='utf8')

cursor = connect.cursor(pymysql.cursors.DictCursor)


cmd = 'na'

while cmd != 'q':


print("\n***사용 가능 명령어 리스트***")

print("a  : 모든 데이터 조회(all)")

print("f  : 조건에 맞는 데이터만 조회(find)")

print("i  : 수강생 입력(insert)")

print("d  : 수강생 삭제(delete)")

print("r  : 정보 변경(revise)")

print("q  : 저장하고 나가기(quit)\n")

cmd = input("command(명령어 입력): ")

print("")


if cmd == 'a':

sql = "SELECT * FROM student"

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)


elif cmd == 'f':

print("무엇을 기준으로 검색하시겠습니까? (이름/나이/소속/전화번호/거주지)")

con = input("> ")

if con == '이름':

print("\n검색하실 수강생의 이름을 입력해 주세요.")

con2 = input("> ")

sql = "SELECT * FROM student WHERE name = '{}'".format(con2)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

elif con == '나이':

print("\n※ 숫자만 입력 해 주세요.\n")

input_age1 = int(input("몇 살 이상을 검색하시겠습니까? "))

input_age2 = int(input("몇 살 이하을 검색하시겠습니까? "))

import datetime, time

d = datetime.date.today()

year1 = d.year - input_age2 + 1

year2 = d.year - input_age1 + 1

sql = "SELECT * FROM student WHERE LEFT(birth, 4) BETWEEN {} AND {}".format(year1, year2)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

elif con == '소속':

print("\n검색하실 수강 그룹을 입력해 주세요. (A/B/C)")

con2 = input("> ")

sql = "SELECT * FROM student WHERE team = '{}'".format(con2)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

elif con == '전화번호':

print("\n검색하실 전화번호을 입력해 주세요. (숫자만 입력 해 주세요.)")

con2 = input("> ")

sql = "SELECT * FROM student WHERE phone = '{}'".format(con2)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

elif con == '거주지':

print("\n검색하실 거주지를 입력해 주세요.")

con2 = input("> ")

sql = "SELECT * FROM student WHERE address = '{}'".format(con2)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)


elif cmd == 'i':

name = input("수강생 이름: ")

birth = input("생년월일(숫자 8자리): ")

team = input("소속 그룹(A/B/C): ")

phone = input("전화번호(숫자 11자리): ")

address = input("거주지: ")

sql = "INSERT INTO student VALUES('{}',{},'{}','{}','{}')".format(name, birth, team, phone, address)

cursor.execute(sql)

connect.commit()

print("해당 데이터의 입력이 완료되었습니다.")


elif cmd == 'd':

print("※ 수강생 삭제는 전화번호를 통해서만 가능합니다.")

phone = input("목록에서 삭제할 수강생의 전화번호(숫자 11자리): ")

sql = "DELETE FROM student WHERE phone = '{}')".format(phone)

cursor.execute(sql)

connect.commit()

print("해당 데이터의 삭제가 완료되었습니다.")


elif cmd == 'r':

print("※ 정보를 변경할 수강생의 선택은 전화번호를 통해서만 가능합니다.")

phone = input("전화번호(숫자 11자리): ")

sql = "SELECT * FROM student WHERE phone = '{}')".format(phone)

cursor.execute(sql)

result = cursor.fetchall()

print_result(result)

con = input("\n어떤 정보를 변경하시겠습니까(이름/생년월일/소속/전화번호/거주지)? ")    

if con == '이름':

print("\n해당 수강생의 이름을 무엇으로 수정하시겠습니까?")

name = input("> ")

sql = "UPDATE student SET name = '{}' where phone = '{}'".format(name, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")

elif con == '생년월일':

print("해당 수강생의 생년월일을 무엇으로 수정하시겠습니까? (숫자 8자리)")

birth = input("> ")

sql = "UPDATE student SET birth = '{}' where phone = '{}'".format(birth, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")

elif con == '소속':

print("\n해당 수강생의 소속을 무엇으로 수정하시겠습니까? (A/B/C)")

team = input("> ")

sql = "UPDATE student SET team = '{}' where phone = '{}'".format(team, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")

elif con == '전화번호':

print("\n해당 수강생의 전화번호를 무엇으로 수정하시겠습니까? (숫자 11자리)")

new_phone = input("> ")

sql = "UPDATE student SET phone = '{}' where phone = '{}'".format(new_phone, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")

elif con == '거주지':

print("\n해당 수강생의 거주지를 어디로 수정하시겠습니까? ")

address = input("> ")

sql = "UPDATE student SET address = '{}' where phone = '{}'".format(address, phone)

cursor.execute(sql)

result = cursor.fetchall()

connect.commit()

print("\n정보 변경이 완료되었습니다.")


elif cmd == 'q':

connect.commit()

print("프로그램을 종료합니다.")


else:

print("잘못된 명령어가 입력되었습니다. 다시 입력해 주세요.")


+ Recent posts