반응형

 

파이썬 - 오라클 데이터베이스 연결 및 사용방법

 

 

   목차

  1. cx_Oracle 라이브러리 설치
  2. 데이터베이스 연결 및 종료 방법
  3. 데이터베이스 사용하기 (cursor, execute, fetch)
  4. 데이터베이스 사용예제 (select, insert, update, delete)

 

 

1. cx_Oracle 라이브러리 설치

 

파이썬에서 오라클 데이터베이스에 연결하여 사용하기 위해 콘솔창에서 아래와 cx_Oracle 라이브러리를 설치합니다.

  • 방법1) pip install cx_oracle
  • 방법2) conda install cx_oracle   // 아나콘다 사용자

 

 

2. 데이터베이스 연결 및 종료 방법

 

1) 연결

import cx_Oracle
dsn = cx_Oracle.makedsn('localhost', '1521', 'xe')
conn = cx_Oracle.connect('아이디', '비밀번호', dsn)

또는

import cx_Oracle
conn = cx_Oracle.connect('아이디/비밀번호@localhost:1521/xe')

 

2) 종료

conn.close()

데이터베이스 사용후에는 반드시 종료하도록 합니다.

 

 

 

3. 데이터베이스 사용하기 (cursor, execute, fetch)

 

1) cursor / execute / fetch

  1. cursor : sql 문법의 결과를 가리키는 포인터로 SQL문장의 처리 결과에 접근 할 수 있습니다. 
  2. execute : cursor에 sql문을 실행시키는 메소드입니다. 
  3. fetch : cursor에 저장된 sql문 실행결과를 가져올때 사용합니다. 
cursor = conn.cursor()
cursor.execute("select * from emp")
data = cursor.fetchall()
print(data)

 

2) fetch 종류

  1. cursor.fetchall() : 모든 데이터를 한번에 가져옵니다.
  2. cursor.fetchman(숫자) : 지정된 숫자만큼만 가져옵니다.
  3. cursor.fetchone() : 하나의 데이터만 가져옵니다. 

 

 

 

4. 데이터베이스 사용예제 (select, insert, update, delete)

 

1) select (조회)

import cx_Oracle

dsn = cx_Oracle.makedsn('localhost', '1521', 'xe')
conn = cx_Oracle.connect('test', '1234', dsn)
cursor = conn.cursor()
sql='''select * from usertable'''
cursor.execute(sql)
data = cursor.fetchone()
conn.close()

print(data)

####### [실행결과] #######
(1, 'kim', 'teacher', None, None, None, None, None)

 

2) insert (삽입)

import cx_Oracle

dsn = cx_Oracle.makedsn('localhost', '1521', 'xe')
conn = cx_Oracle.connect('test', '1234', dsn)
cursor = conn.cursor()
sql='''insert into emp values(:1, :2, :3, :4, :5, :6, :7, :8)'''
cursor.execute(sql, [2, 'yoon', None, None, None, None, None, None])
conn.commit()
conn.close()

 

  cf) insert에서 sql문을 아래와 같은 방식으로 사용해도 됩니다. 

sql='''insert into emp(empno, ename) values(:empno, :ename)'''
cursor.execute(sql, {'empno':2, 'ename':'yoon'})

 

3) update (수정)

import cx_Oracle

dsn = cx_Oracle.makedsn('localhost', '1521', 'xe')
conn = cx_Oracle.connect('test', '1234', dsn)
cursor = conn.cursor()
sql='''update emp set job=:1 where empno=5'''
cursor.execute(sql, ['student'])
conn.commit()
conn.close()

 

  cf) updatet에서 sql문을 아래와 같은 방식으로 사용해도 됩니다. 

sql='''update emp set job=:job where empno=5'''
cursor.execute(sql, {'job':'student'})

 

4) delete (삭제)

import cx_Oracle

dsn = cx_Oracle.makedsn('localhost', '1521', 'xe')
conn = cx_Oracle.connect('scott', 'tiger', dsn)
cursor = conn.cursor()
sql='''delete from usertable where id=100'''
cursor.execute(sql)
conn.commit()
conn.close()

 

 

반응형

+ Recent posts