(27) Python_Python과 MySQL의 통합 관련 이미지

(27) Python_Python과 MySQL의 통합

시작하기 전에 MySQL에 대해 간략하게 이해하는 것이 가장 좋습니다.

MySQL 시작: https://jm-programming./27

(1) MySQL_DBMS

DataBase (Database) Data: Data DataBase: 데이터를 통합하고 관리하는 집계 및 저장 DBMS(Database Management System) 데이터베이스 관리를 위한 소프트웨어

jm-rograming. 홈페이지

1. mysql 클라이언트

  • Python에는 MySQL 서버와 통신할 수 있는 여러 유형의 Python 데이터베이스 커넥터가 있습니다.
  • 가장 일반적으로 사용되는 mysqlclient인 PyMySQL
  • 사용법은 비슷하지만 더 빠른 mysqlclient를 권장합니다.
  • 수입하세요. (!pip 설치 mysqlclient)

# 호스트: IP 주소, localhosh, 127.0.0.1
# 사용자: 사용자, 루트
# 암호: 암호, 1234
# DB: 데이터베이스, 테스트

# db = MySQLdb.connect(localhost’,’root’,’1234′,’test’)

MySQLdb 가져오기
db = MySQLdb.connect(호스트 = ‘localhost’, 사용자 = ‘root’, 비밀번호 = ‘1234’, db = ‘test’)

2. 커서 만들기

  • 데이터베이스 연결을 위한 SQL 문을 독립적으로 실행하기 위한 작업 환경을 제공하는 객체
  • 하나의 연결은 동시에 하나의 커서만 생성할 수 있으며 커서를 통해 SQL 문을 실행하면 튜플 단위로 실행 결과를 반환한다.

cur = db.cursor()
sql = ‘회원의 사용자 ID, 사용자 이름, HP, 이메일, 성별 선택’
현재 실행(sql)
# cur.execute(”회원의 사용자 ID, 사용자 이름, HP, 이메일, 성별 선택”)

결과: 테이블에 6개의 원시가 있으므로 결과는 6입니다.

3. SQL 문의 결과 가져오기

  • fetchall(): 한 번에 모든 튜플(행)을 가져옵니다.검색 결과가 매우 큰 경우 메모리 오버헤드가 발생할 수 있음
  • fetchone(): 한 번에 하나의 튜플을 가져옵니다. 메소드를 다시 호출하면 다음 데이터를 가져옵니다.

row = cur.fetchall()
인쇄(라인)


Python_Python과 MySQL의 통합 관련 대표 이미지

현재 실행(sql)
row = cur.fetchone()
인쇄(라인)


Python_Python과 MySQL의 통합 관련 이미지

# fetchone()을 반복하고 모든 데이터를 출력합니다.
현재 실행(sql)

사실:
row = cur.fetchone()
확인하는 경우:
인쇄(라인)
다른:
나머지


Python_Python과 MySQL의 통합 관련 이미지

# 커서의 사전 형식 행을 보존하기 위해 내부 유형을 지정합니다.
cur = db.cursor(MySQLdb.cursors.DictCursor) # 사전의 각 요소를 검색할 때 사용
현재 실행(sql)

사실:
row = cur.fetchone()
확인하는 경우:
print(f “ID: {row(‘userid’)}, 이름: {row(‘username’)}, 전화번호: {row(‘hp’)}, 이메일: {row(’email’)}, 성별: {줄(‘성별’)}”)
다른:
나머지


Python_Python과 MySQL의 통합 관련 이미지

4. 커서와 연결을 닫습니다.

cur.close() # 커서 닫기
db.close() # 연결을 닫습니다.

5. 데이터 삽입

  • execute()를 사용하여 단일 튜플 삽입

sql = “구성원(userid,userpw,username,hp,email,gender,ssn1,ssn2) 값(%s,%s,%s,%s,%s,%s,%s,%s) 삽입”
데이터 = (‘아보카도’,’0000′,’앙카도’,’010-0000-0000′,’아보카도@이메일’,’남자’,’000000′,’0000000′)
cur.execute(sql, data) # SQL을 실행하고 데이터를 %s에 삽입
데이터베이스제출()

  • 여러 튜플을 삽입할 때 executemany()를 사용합니다.

sql = “구성원(userid,userpw,username,hp,email,gender,ssn1,ssn2) 값(%s,%s,%s,%s,%s,%s,%s,%s) 삽입”
데이터 = ((‘망고’,’0000′,’망고’,’010-0000-0000′,’mango@email’,’남자’,’000000′,’0000000′),
(‘복숭아’,’0000′,’복숭아’,’010-0000-0000′,’peach@email’,’여자’,’000000′,’0000000′))
cur.executemany(sql, 데이터)
데이터베이스제출()

질문

  • “회원가입” 절차를 만들자
  • 회원가입
  • 아이디를 입력해주세요:
  • 비밀번호를 입력 해주세요:
  • 당신의 이름을 입력 해주세요:
  • 전화번호를 입력하세요:
  • 이메일을 입력하세요:
  • 성별을 입력하세요.
  • 사회 보장 번호의 첫 번째 숫자를 입력하십시오:
  • 사회 보장 번호의 마지막 숫자를 입력하십시오:
  • 당신의 우편 번호를 입력 해주세요:
  • 주소를 입력하세요:
  • 자세한 주소를 입력하세요:
  • 비고 사항을 입력하십시오:

MySQLdb 가져오기

db = MySQLdb.connect(‘localhost’,’루트’,’1234′,’테스트’)
cur = db.cursor()

사실:
노력하다:
userid = input(‘아이디를 입력하세요:’)
userpw = input(‘비밀번호를 입력하세요:’)
username = input(‘이름을 입력하세요:’)
hp = input(‘전화번호를 입력하세요:’)
email = input(‘이메일을 입력하세요:’)
gender = input(‘성별을 입력하세요:’)
ssn1 = input(‘주민등록번호의 첫 번째 숫자를 입력하세요:’)
ssn2 = input(‘주민등록번호의 마지막 숫자를 입력하세요:’)
zipcode = input(‘우편번호를 입력하세요:’)
address1 = input(‘주소를 입력하세요:’)
address2 = input(‘자세한 주소를 입력하세요:’)
address3 = input(‘메모를 입력하세요:’)

sql = “멤버(userid,userpw,username,hp,email,gender,ssn1,ssn2,zipcode,address1,address2,address3) values(%s,%s,%s,%s,%s,%s에 삽입 ,%s,%s,%s,%s,%s,%s)”
데이터 = (userid,userpw,username,hp,email,gender,ssn1,ssn2,zipcode,address1,address2,address3)
current_execution(sql, 데이터)
데이터베이스제출()
print(‘등록이 완료되었습니다.’)
나머지

와는 별개로:
print(‘정보를 다시 입력해주세요’)

cur.close()
데이터베이스닫기()


Python_Python과 MySQL의 통합 관련 이미지

  • 데이터베이스 테이블을 확인하면 올바르게 입력되었는지 확인할 수 있습니다.

6. 데이터 편집

MySQLdb 가져오기

db = MySQLdb.connect(‘localhost’,’루트’,’1234′,’테스트’)
cur = db.cursor()

sql = “업데이트 회원세트 zipcode = ‘11132’, address1 = ‘서울시’, address2 = ‘강남구’, address3 = ‘역삼동’ where userid = ‘avocado'”
결과 = cur.execute(sql)
데이터베이스제출()
print(result) # result 1 (업데이트가 성공해서 업데이트할 것이 없으면 0)

  • 결과 값이 1이면 수정되고, 0이면 그러한 프로그래밍이 불가능합니다.

sql = “업데이트 회원세트 zipcode = ‘22222’, address1 = ‘서울시’, address2 = ‘강남구’, address3 = ‘역삼동’ where userid = ‘avocado'”
결과 = cur.execute(sql)
데이터베이스제출()

결과 > 0인 경우:
print(‘수정되었습니다.’)
다른:
인쇄(‘오류!’)

질문

  • 로그인 프로그램을 작성해 봅시다.
  • ID를 입력하세요: Apple
  • 비밀번호를 입력하세요: 1111
  • ID를 입력하세요: Apple
  • 비밀번호를 입력해주세요: 1234
  • 잘못된 아이디 또는 비밀번호입니다.

MySQLdb 가져오기

db = MySQLdb.connect(‘localhost’,’루트’,’1234′,’테스트’)
cur = db.cursor()

userid = input(‘아이디를 입력하세요:’)
userpw = input(‘비밀번호를 입력하세요:’)

sql = ‘userid=%s 및 userpw=%s인 구성원에서 userid 선택’
데이터 = (사용자 아이디, userpw)
결과 = cur.execute(sql,데이터)

결과 > 0인 경우:
print(‘로그인.’)
다른:
print(‘아이디 또는 비밀번호가 잘못되었습니다.’)

cur.close()
데이터베이스닫기()

  • db 테이블의 userid 값과 userpw 값을 비교하여 참이면 로그인하고 참이면 오류를 출력


Python_Python과 MySQL의 통합 관련 이미지

7. 데이터 삭제

  • 삭제에 성공하면 결과 값이 0보다 크고 출력이 철회됩니다.
  • 삭제에 실패하거나 삭제할 요소가 없으면 오류를 출력합니다.

db = MySQLdb.connect(‘localhost’,’루트’,’1234′,’테스트’)
cur = db.cursor()

sql=”사용자 ID=’avocado’의 구성원에서 삭제”
결과 = cur.execute(sql)
데이터베이스제출()

결과 > 0인 경우:
print(‘로그아웃했습니다.’)
다른:
인쇄(‘오류!!’)

Similar Posts

  • 턱 보톡스 윤곽주사의 중요한 요인 정리

    턱 보톡스 윤곽주사의 중요한 요인 정리 턱 보톡스 윤곽주사의 중요한 요인 정리                     턱보톡스윤곽주사의 중요한 요인정리 턱보톡스윤곽주사의 중요한 요인정리 턱보톡스윤곽주사의 중요한 요인정리 1. 얼굴윤곽에 영향을 미치는 요인의 눈, 코, 입의 모양과 크기는 안면근육의 형태뿐만 아니라 이미지도 달라지기 때문에 매우 중요합니다. 수술 후에 사용해야 했어요. 적절한 박리가…

  • 미녹스 부작용을 올바르게 알고 있습니까?

    국내 미녹시딜의 정품 끊김 사태에 따라, 직구약인 미녹스에 대해서도 많이 신경이 쓰인다고 생각합니다. 록시딜, 녹시딜, 미녹스 대표적으로 미녹시딜 정제구 제품이 있습니다만, 깔끔한 정보 효과나 부작용에 대해서 조사해 봅시다. 미녹스 주성분 미녹스의 주성분은 미녹시딜 5mg입니다. 10mg의 제품도 있지만, 보통 탈모 치료에는 5mg을 많이 사용합니다. 국내 동일 용량 제품으로는 현대 미녹시딜 정제, 도코미녹시딜 정제가 있습니다. 미녹시딜 정제는…

  • 2018 년 근로 장려금 신청 기간: 나도 혜택 받을 수 있을까?

    근로 장려금은 소득이 적은 근로자를 지원하기 위한 제도로, 경제적으로 힘든 시기에 큰 도움이 될 수 있습니다. 2018 년에 시행된 근로 장려금 혜택을 받기 위해서는 신청 기간과 필요한 요건을 잘 알아두는 것이 중요합니다. 그럼 함께 살펴보도록 할까요? 근로 장려금이란? 근로 장려금은 저소득 근로자에게 소득을 보전해 주고, 노동 시장에 참여를 장려하기 위한 정책입니다. 이 혜택은 주로 가구의…

  • 땅콩

    땅콩은 전 세계적으로 널리 소비되는 콩과 식물입니다. 남아메리카가 원산지이지만 현재는 미국, 중국, 인도 등 여러 나라에서 재배되고 있습니다. 땅콩은 인기 있는 스낵 식품이며 땅콩 버터, 사탕 및 소스를 포함한 다양한 요리법에도 사용됩니다. 땅콩은 단백질, 건강한 지방, 섬유질, 비타민 E, 마그네슘, 칼륨을 포함한 여러 비타민과 미네랄이 풍부합니다. 자유 라디칼로 인한 손상으로부터 신체를 보호하는 데 도움이 되는…

  • 디아달리아티크 미끈미끈한 톤의 활용법

    잇님들!! 볼터치 좋아해요? 오늘 제가 대박 상품을 소개해 드릴게요. 진짜 볼터치 색도 여리여리하고 이것뿐인데 곰손분들도 편하게 쓸 수 있는 촉촉한 리퀴드 타입의 볼터치라 더 강추하고 싶어요ㅠ 저도 유튜브 보다가 너무 예뻐 보여서 한번 사봤는데 이거 진짜였어요,,♡ 잇님들!! 볼터치 좋아해요? 오늘 제가 대박 상품을 소개해 드릴게요. 진짜 볼터치 색도 여리여리하고 이것뿐인데 곰손 분들도 편하게 사용할 수…

  • 투자자가 선택한 한경닷컴 주식 활용법

    USDT 원 구매 판매 바로 가능 레버리지 200배 거래 지원 https://vvd.bz/f228 지정가 0.01 시장가 0.02 셀파럴/페이백보다 수수료 저렴한 업비트 24시간 기다리는 NOUSDT 원 구매 판매가능 등록하시면 한글로 보여집니다 대박나시도록 USDT 원 구매 판매 바로 가능 레버리지 200배 거래 지원 https://vvd.bz/f228 지정가 0.01 시장가 0.02 셀파럴/페이백보다 수수료 저렴한 업비트 24시간 기다리는 NOUSDT 원 구매 판매가능 등록하시면…