import cx_Oracle as cx
conn = cx.connect("사용자이름","비밀번호","127.0.01:1521/XE") #DB연동
cur = conn.cursor()
cur.execute("select * from emp") #sql 쿼리 작성
for c in cur:
print(c)
cur.close()
conn.close()
*데이터프레임으로 불러오기
import pandas as pd
df=pd.real_sql(" sql 구문 " , con = conn) #데이터프레임으로 불러오기
print(df)
삽입(C)
def my_insert(empno, ename=None, deptno=None):
conn = cx.connect("사용자이름", "비밀번호", "127.0.01:1521/XE")
sql = """insert into emp(empno,ename,deptno)
values(:1,:2,:3)""" ## 변수이름을 써도 되나, 보통 숫자로 쓴다.
cur = conn.cursor()
cur.execute(sql,[empno,ename,deptno]) #[값]
cur.close()
conn.commit()
conn.close()
#lec.my_insert("9999", 'AAA', 40)
def my_insert_many(emp_list):
conn = cx.connect("사용자이름", "비밀번호", "127.0.01:1521/XE")
sql = """insert into emp(empno,ename,deptno)
values(:1,:2,:3)""" #컬럼 3개
cur = conn.cursor()
cur.executemany(sql,emp_list) #[[]]
cur.close()
conn.commit()
conn.close()
# emp_list = [[551, 'ccc1', 10], [552, 'ccc2', 10],
# [553, 'ccc3', 10], [554, 'ccc4', 10], [555, 'ccc5', 10]]
# lec.my_insert_many(emp_list)
수정(U)
def my_update(deptno,empno):
conn = cx.connect("사용자이름", "비밀번호", "127.0.01:1521/XE")
sql = """update emp(empno,deptno)
set sal=sal+1000, deptno=:1 where empno=:2"""
cur = conn.cursor()
cur.execute(sql,[deptno,empno]) #[값]
cur.close()
conn.commit()
conn.close()
#lec.my_update(40,7902)
def my_update2(list):
conn = cx.connect("사용자이름", "비밀번호", "127.0.01:1521/XE")
sql = """update emp(empno,ename,deptno)
set sal=sal+1000, deptno=:1 where empno=:2"""
cur = conn.cursor()
cur.executemany(sql,list) #[[]]
cur.close()
conn.commit()
conn.close()
#list=[[50,2000]]
#lec.my_update2(list)
삭제(D)
#10번 부서 삭제
def my_delete(deptno):
conn = cx.connect("", "", "127.0.01:1521/XE")
sql = """delete from emp
where deptno=:1"""
cur = conn.cursor()
cur.execute(sql,[deptno]) # 리스트로 항상 써줘야 한다. (원래 하나 쓸 때는 , 썼었다.)
cur.close()
conn.commit()
conn.close()
#lec.my_delete(10)
# 7678,7499,7844 삭제
def my_delete2(empno1,empno2,emp3):
conn = cx.connect("", "", "127.0.01:1521/XE") #
sql = """delete from emp
where empno in (:1,:2,:3)"""
cur = conn.cursor()
cur.execute(sql,[empno1,empno2,emp3])
cur.close()
conn.commit()
conn.close()
#lec.my_delete2([7678,7499,7844])
def my_delete3(list2):
conn = cx.connect("", "", "127.0.01:1521/XE")
sql = """delete from emp
where empno =:1"""
cur = conn.cursor()
cur.executemany(sql,list2) #[[]]
cur.close()
conn.commit()
conn.close()
# list2=[[7678],[7499],[7844]] 각각 리스트에 담기
# lec.my_delete3(list2)