데이터 삽입하기
데이터베이스에 데이터를 삽입하는 것은 정보를 저장하는 기본적인 작업 중 하나이다.
데이터베이스에 연결하기 위해 connect()함수를 호출한 후 커서를 생성한다
db = MySQLdb.connect(host='localhost',user='root',password='1234',db='kdt')
cur = db.cursor()
각 변수에 쿼리 실행문과 삽입할 데이터를 담은 후
sql = 'insert into member (userid, userpw,name,hp,email,gender,ssn1,ssn2) values (%s,%s,%s,%s,%s,%s,%s,%s)'
data = ('mango','0000','마앙고','000-0030-0000','mango@mango.com','남자','000000','1211111')
data
('mango',
'0000',
'마앙고',
'000-0030-0000',
'mango@mango.com',
'남자',
'000000',
'1211111')
SQL쿼리를 실행한 후 db.commit()을 통해 변경 사항을 적용한다
cur.execute(sql, data)
db.commit()
sql = 'insert into member (userid, userpw,name,hp,email,gender,ssn1,ssn2) values (%s,%s,%s,%s,%s,%s,%s,%s)'
data = [('berry','0030','베애리','010-0040-0000','berry@berry.com','여자','004000','1212111'),('grape','0100','표도르','010-0070-0000','grape@grape.com','남자','004500','1412111')]
data
cur.executemany(sql, data)#여러개 실행
db.commit()
위처럼 executemany를 통해 여러개를 실행 할 수도 있다.
문제2
- 회원가입 프로그램을 만들어보자
- 단, 중복 데이터로 인한 오류시 '다시 입력하세요'라는 오류처리와 함께 다시 등록할 수 있도록 함
- 단, 회원 가입 후 "추가로 가입하시겠습니까? (y/n)를 입력 받아 추가로 입력할 수 있도록 함
#실행 예시
아이디를 입력하세요: XXXX
비밀번호를 입력하세요: XXXX
이름을 입력하세요: XXXX
전화번호를 입력하세요: XXXX
이메일을 입력하세요: XXXX
성별을 입력하세요: XXXX
주민등록번호 앞자리 6자리를 입력하세요: XXXX
주민등록번호 뒷자리 7자리를 입력하세요: XXXX
우편번호를 입력하세요: XXXX
주소를 입력하세요: XXXX
상세주소를 입력하세요: XXXX
참고사항을 입력하세요: XXXX
import MySQLdb
db = MySQLdb.connect(host='localhost', user='root', password='1234', db='kdt')
cur = db.cursor()
while True:
try:
userid = input('아이디를 입력하세요: ')
userpw = input('비밀번호를 입력하세요: ')
name = input('이름을 입력하세요: ')
hp = input('전화번호를 입력하세요: ')
email = input('이메일을 입력하세요: ')
gender = input('성별을 입력하세요: ')
ssn1 = input('주민번호 앞자리를 입력하세요: ')
ssn2 = input('주민번호 뒷자리를 입력하세요: ')
zipcode = input('우편번호를 입력하세요: ')
address1 = input('주소를 입력하세요: ')
address2 = input('상세주소를 입력하세요: ')
address3 = input('참고사항을 입력하세요: ')
sql = 'insert into member(userid, userpw, name, hp, email, gender, ssn1, ssn2, zipcode, address1, address2, address3) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'
data = (userid, userpw, name, hp, email, gender, ssn1, ssn2, zipcode, address1, address2, address3)
cur.execute(sql, data)
db.commit()
print('가입되었습니다')
yn = input('추가로 가입하겠습니까? (Y/N): ')
if yn.lower() == 'n':
print('프로그램을 종료합니다')
break
except Exception as e:
print('다시 입력하세요')
cur.close()
db.close()
- 사용자로부터 입력을 받아 MySQL 데이터베이스에 저장
- 예외 처리(try - except)를 통해 중복 데이터 오류 발생 시 재입력을 요청
- 사용자가 더 이상 데이터 입력을 원하지 않을 때까지 반복하여 데이터를 입력 받게함 (while)
db = MySQLdb.connect(host='localhost', user='root', password='1234', db='kdt')
cur = db.cursor()
sql = 'update member set zipcode = %s, address1 = %s,address2 = %s, address3 = %s where userid = %s'
data = ('12345','서울','서초구','서초동','banana')
result = cur.execute(sql,data)
db.commit()
if result > 0:
print('수정됨')
else:
print('에러')
cur.close()
db.close()
수정됨
- update SQL 명령을 사용하여 사용자의 주소 정보를 수정
- 수정 성공 여부를 출력함
데이터 삭제하기
db = MySQLdb.connect(host='localhost', user='root', password='1234', db='kdt')
cur = db.cursor()
sql = 'delete from member where userid = %s'
result = cur.execute(sql,('berry',))
db.commit()
if result > 0:
print('탈퇴되었습니다')
else:
print('에러')
cur.close()
db.close()
탈퇴되었습니다
- delete SQL 명령을 사용하여 사용자를 데이터베이스에서 삭제
- 삭제 성공 여부를 결과를 출력
문제3
- 로그인 프로그램 작성
- 아이디와 비밀번호가 맞는 유저가 있을 경우 "로그인 되었습니다",유저가 없을 경우 "아이디 또는 비밀번호를 확인하세요"라고 출력
아이디를 입력하세요: XXX
비밀번호를 입력하세요: XXX
import MySQLdb
db = MySQLdb.connect(host='localhost', user='root', password='1234', db='kdt')
cur = db.cursor()
sql = 'select userid from member where userid=%s and userpw=%s'
#sql = 'select userid = %s,userpw = %s from member' 강사님 코드
userid = input('아이디를 입력하세요:')
userpw = input('비밀번호를 입력하세요:')
data = (userid,userpw)
result = cur.execute(sql,data)
db.commit()
if result > 0:
print('로그인 되었습니다')
else:
print('아이디 또는 비밀번호를 확인하세요')
cur.close()
db.close()
아이디를 입력하세요: apple
비밀번호를 입력하세요: 1234
로그인 되었습니다
- 사용자의 아이디와 비밀번호를 입력받아 데이터베이스에 저장된 정보와 일치하는지 검사
- 일치하는 경우 로그인 성공 메시지를 출력하고, 그렇지 않은 경우 오류 메시지를 출력
'인공지능 > 데이터분석' 카테고리의 다른 글
인공지능과 머신러닝, 딥러닝 (0) | 2025.01.06 |
---|---|
DB를 이용해 단어장 만들기 (2) | 2024.10.29 |
파이썬과 MySQL 연동하기 (2) | 2024.10.22 |
MySQL 사용자 관리: 생성, 권한 부여, 삭제 (0) | 2024.10.22 |
고급 SQL 기법 활용하기: UNION, SubQuery, View (16) | 2024.10.22 |