본문 바로가기
Python/Python_basic

Python DB 연동(MySql, Oracle)

by Mr.DonyStark 2024. 1. 15.

□ MySql 연동

  - mysql.connector : mysql DB 연동 라이브러리 호출

  - mysql.connector.connect : mysql 정보 입력

    *mysql 설치 및 환경세팅시 설정한 값을 반드시 기억하고 입력

#DB(mySQL)연동 라이브러리 호출
import mysql.connector

#MySQL 서버연결 및 계정정보입력
db_info = mysql.connector.connect(
    host = 'localhost', #db HOST 입력. 확인은 cmd창에서 mysql 접속 후 ' show VARIABLES LIKE 'hostname'; ' 및 ' SELECT @@hostname; ' 입력
    user = '유저명', #db 사용자 입력. 확인은 cmd창에서 mysql 접속 후 ' select USER(), CURRENT_USER(); ' 입력
    password = '비밀번호', #db 환경설치 시 세팅한 값 입력
    database = '데이터베이스명' #db 환경설치 후 cmd 창에서 생성한 데이터베이스 명 입력
)

#커서 생성 및 변수지정
dh_cursor = db_info.cursor()

#쿼리 : 테이블 조회
show_tb = 'show tables'   #쿼리문 입력
dh_cursor.execute(show_tb)
table_list = dh_cursor.fetchall()  #결과 가져오기

num=0
for v in table_list: #반복문을 활용하여 출력
    num +=1
    print(f'weapon_db 중 {num} 번째 테이블 : {v}')

 

□ Oracle 연동

  - cx_Oracle : 연동 라이브러리 호출

  - cx_Oracle.connect : mysql 정보 입력

  - 언패킹 : 아래 코드와 같이 실행하면 출력값이 튜플(set)형식으로 출력됨 이를 해결하기 위해 언패킹 코드 '데이터 타입(*변수명)'을 입력함

    *Oracle설치 및 환경세팅시 설정한 값을 반드시 기억하고 입력

#DB(oracle)연동 라이브러리 호출
import cx_Oracle

#MySQL 서버연결 및 계정정보입력
db_info = cx_Oracle.connect(
    user = '사용자',
    password = '비밀번호',
    dsn = cx_Oracle.makedsn(
        host = 'localhost',
        port = '포트명',
        sid = 'sid값',
    )
)

#커서 생성 및 변수지정
dh_cursor = db_info.cursor()

#쿼리 : 테이블 조회
show_tb = "SELECT TABLE_NAME FROM ALL_TABLES where OWNER ='HR'"   #데이터베이스 선택 및 저장된 테이블 목록추출 쿼리문 입력
dh_cursor.execute(show_tb)
table_list = dh_cursor.fetchall()  #결과 가져오기

num=0
num_list = list()
for v in table_list: #반복문을 활용하여 출력
    num +=1
    print(f'weapon_db 중 {num} 번째 테이블 : {str(*v)}')  #튜플을 언패킹할때 바꾸고자하는 타입(*변수명) 형식으로 *을 붙이면됨
    num_list.append(str(*v))                             #튜플을 언패킹할때 바꾸고자하는 타입(*변수명) 형식으로 *을 붙이면됨
print(f'총 태이블 {num} 개  :  {num_list}')

#쿼리 : 교수명 추출
show_professor_nm = 'select name from professor'
dh_cursor.execute(show_professor_nm)
professor_list = dh_cursor.fetchall()   #결과 가져오기

instructor_list = list() #빈 리스트 생성
sum = 0

for i in professor_list:
    instructor_list.append(str(*i))     #튜플을 언패킹할때 바꾸고자하는 타입(*변수명) 형식으로 *을 붙이면됨
    sum += 1
print(f'총 교수 {sum} 명  :  {instructor_list}')

'Python > Python_basic' 카테고리의 다른 글

파이썬 카카오톡 API 연동  (0) 2024.01.26
파이썬 구글 API 연동  (1) 2024.01.25
라이브러리 호출 및 활용  (0) 2023.12.11
클래스/객체지향  (0) 2023.12.11
함수 정의/호출 예제  (1) 2023.12.08