패키지 준비
File - Settings - Project - Project Interpreter - + 모양 클릭 후 - cx-Oracle 검색 - 설치
cmd창으로 설치
cmd 실행 - pip install cx-Oracle
Oracle SQL Developer -> 접속 -> + 표시 클릭 -> 정보 확인
파일 생성
"""
oracle_config.py
Oracle 데이터베이스 서버에 접속(로그인)하기 위해 필요한 정보들을 정의
"""
# 사용자 이름
user = 'scott'
# 비밀번호
pwd = 'tiger'
# 데이터베이스 서버 주소: DSN(Data Source Name)
dsn = 'localhost:1521/orcl'
>>Oracle 데이터베이스 서버에서 select 구문 실행, 결과 확인
현재 프로젝트 디렉토리 상태
패키지와 oracle_config >> import
from lec08_database import oracle_config as cfg
import cx_Oracle
# 데이터베이스 서버와 연결 설정 - 접속(로그인) - .connect(userid, passward, ip address)
connection = cx_Oracle.connect(cfg.user, cfg.pwd, cfg.dsn)
# 접속한 데이터베이스 버전 정보
print('DB version:', connection.version)
실행 결과 : DB version: 11.2.0.1.0
# SQL 문장을 실행시키기 위해서 cursor 객체를 생성
cursor = connection.cursor()
# SQL 문장 실행
cursor.execute('select * from emp') # 끝에 세미콜론(;) 을 붙이면 안됨
while True:
row = cursor.fetchone()
if row is None: # select의 결과가 더 이상 없다면
break
else:
print(row)
실행 결과:
(7369, 'SMITH', 'CLERK', 7902, datetime.datetime(1980, 12, 17, 0, 0), 800.0, None, 20)
(7499, 'ALLEN', 'SALESMAN', 7698, datetime.datetime(1981, 2, 20, 0, 0), 1600.0, 300.0, 30)
(7521, 'WARD', 'SALESMAN', 7698, datetime.datetime(1981, 2, 22, 0, 0), 1250.0, 500.0, 30)
(7566, 'JONES', 'MANAGER', 7839, datetime.datetime(1981, 4, 2, 0, 0), 2975.0, None, 20)
(7654, 'MARTIN', 'SALESMAN', 7698, datetime.datetime(1981, 9, 28, 0, 0), 1250.0, 1400.0, 30)
(7698, 'BLAKE', 'MANAGER', 7839, datetime.datetime(1981, 5, 1, 0, 0), 2850.0, None, 30)
(7782, 'CLARK', 'MANAGER', 7839, datetime.datetime(1981, 6, 9, 0, 0), 2450.0, None, 10)
(7788, 'SCOTT', 'ANALYST', 7566, datetime.datetime(1987, 4, 19, 0, 0), 3000.0, None, 20)
(7839, 'KING', 'PRESIDENT', None, datetime.datetime(1981, 11, 17, 0, 0), 5000.0, None, 10)
(7844, 'TURNER', 'SALESMAN', 7698, datetime.datetime(1981, 9, 8, 0, 0), 1500.0, 0.0, 30)
(7876, 'ADAMS', 'CLERK', 7788, datetime.datetime(1987, 5, 23, 0, 0), 1100.0, None, 20)
(7900, 'JAMES', 'CLERK', 7698, datetime.datetime(1981, 12, 3, 0, 0), 950.0, None, 30)
(7902, 'FORD', 'ANALYST', 7566, datetime.datetime(1981, 12, 3, 0, 0), 3000.0, None, 20)
(7934, 'MILLER', 'CLERK', 7782, datetime.datetime(1982, 1, 23, 0, 0), 1300.0, None, 10)
>> 다른 방식으로 출력
row = cursor.fetchone() # select의 결과에서 한 행(row)의 데이터를 읽는다
while row: # 읽은 행(row)의 데이터가 있는 동안에
print(row) # 각 행의 데이터 tuple을 출력한다
row = cursor.fetchone()
ㄴ>실행 결과는 위와 같다.
# cursor 객체 사용 후 리소스 반환
cursor.close()
# 데이터베이스 서버 연결 종료
connection.close()
<for-in 구문을 사용한 select 결과 처리>
'Python > Python기초' 카테고리의 다른 글
Python 38_matplotlib.pyplot 모듈을 사용한 데이터 시각화_ 산포도 Scattered Graph (0) | 2020.01.06 |
---|---|
Python 33_ Database 2 for-in 구문을 사용한 select 결과 처리, with as 구문의 적용 (0) | 2020.01.06 |
Python 31_ cmd(command prompt)창으로 패키지 최신 버전으로 업그레이드 (0) | 2020.01.02 |
Python 30_ 파일 디렉토리 다루기: 파일 열기 (0) | 2019.12.31 |
Python 29_ 파일 디렉토리 다루기2 ->파일 읽기 (0) | 2019.12.30 |