본문 바로가기

Python

Python - Database 연습문제

'''
1. select 구문을 입력하고 다음과 같은 결과가 출력되도록 프로그램을 작성하시오
[결과]
sql 입력하세요=========
select * from dept
조회 레코드수: 4 ,조회 컬럼수:3
(10, 'ACCOUNTING', 'NEW YORK')
(20, 'RESEARCH', 'DALLAS')
(30, 'SALES', 'CHICAGO')
(40, 'OPERATIONS', 'BOSTON')

sql 입력하세요=========
select studno,name from student where grade = 1
조회 레코드수: 5 ,조회 컬럼수:2
(9711, '이윤나')
(9712, '안은수')
(9713, '인영민')
(9714, '김주현')
(9715, '허우')

sql 입력하세요=========​
'''


#1
# 오라클 데이터베이스 연결
import cx_Oracle
conn = cx_Oracle.connect('kic','1234','localhost/xe')

# sql 구문을 db에 전달, 실행
cur = conn.cursor()
while True :
    sql = input("sql 입력하세요==========\n")
    if sql =="":
        break
    #조회된 레코드의 수 조회
    cur.execute("select count(*) from (" + sql + ") a")
    row = cur.fetchone()
    print("조회 레코드 수:", row[0], ",조회 컬럼수:", end="")
    #입력된 sql 구문 실행
    cur.execute(sql)
    row = cur.fetchone()
    print(len(row))
    #입력된 sql 구문 실행
    cur.execute(sql)
    for row in cur.fetchall():
       print(row)
cur.close()
conn.close();

'''
2. 원본 파일의 이름을 입력받고, 입력받은 복사본 파일이름으로 복사하는 프로그램 작성하기
   원본파일이 없는 경우 원본 파일이 존재하지 않습니다.  출력하기

[결과]
원본파일의 이름을 입력하세요 : aaa
원본파일이 존재하지 않습니다.
원본파일의 이름을 입력하세요 : data.txt
복사본파일의 이름을 입력하세요 : databak.txt
복사완료
'''

#2
infile = input("원본파일의 이름을 입력하세요 : ")
try : 
    inFp=open(infile,"r",encoding="utf-8")
    outfile = input("복사본파일의 이름을 입력하세요.")
    outFp = open(outfile,"w",encoding="utf-8")
    inList = inFp.readlines() #text모드에서만 
    for inStr in inList :
        outFp.writelines(inStr)
    inFp.close()
    outFp.close()
    print("\n복사완료")
except :
    print("원본파일이 존재하지 않습니다.")