### db에 데이터 처리하기
# sqlite db 사용하기
# sqlite : 파이썬 내부에 존재하는 dbms
import sqlite3
dbpath = "test.sqlite" #데이터베이스파일
conn = sqlite3.connect(dbpath) #dbpath파일에 데이터 저장
cur = conn.cursor() #sql구문 실행하기 위한 객체
#executescript : 여러개의 문장을 실
cur.executescript('''
drop table if exists items;
create table items (item_id integer primary key,
name text unique, price integer);
insert into items (name,price) values ('Apple',800);
insert into items (name,price) values ('Orange',500);
insert into items (name,price) values ('Banana',300);
''')
conn.commit() #실제로 cur sql문장 실행 완료
cur = conn.cursor() #sql구문 실행하기 위한 객체
# execute : 한개의 sql 구문 실행
cur.execute("select * from items")
# cur.fetchall() : cur 실행 후의 결과 값을 모두 리턴
# item_list : select * from items 실행 후의 결과를 저장하고 있는 리스트
item_list = cur.fetchall()
print(item_list)
print(type(item_list))
for item_id,name,price in item_list :
print(item_id,name,price)
for item in item_list :
print(item[0],item[1],item[2])
# 레코드 한개씩 조회
cur = conn.cursor() #sql 구문 실행하기 위한 객체
cur.execute("select * from items")
while True :
row = cur.fetchone()
if row == None :
break;
print(row[0],row[1],row[2])
# 레코드 추가하기
sql = "insert into items (name,price) values ('Peach',3000)"
cur = conn.cursor() #sql 구문 실행하기 위한 객체
cur.execute(sql)
conn.commit()
cur = conn.cursor()
cur.execute("select * from items")
item_list = cur.fetchall()
print(item_list)
conn.close()
# iddb sqlite db를 생성하기
conn = sqlite3.connect("iddb")
# 'iddb' db에 이름이 usertable인 테이블 생성하기
# id char(4) primary key, username char(15), email char(15),
# birthyear int) 컬럼을 가진 usertable 생성하기
cur = conn.cursor()
cur.executescript('''
drop table if exists usertable;
create table usertable (id char(4) primary key,
username char(15), email char(15), birthyear int);
''')
# 화면에서 사용자ID, 이름, 이메일, 출생년도를 입력받아서 usertalbe에 추가하기
conn = sqlite3.connect(dbpath)
cur = conn.cursor()
while True :
d1 = input("사용자ID=>")
if d1 == '':
break
d2 = input("사용자이름=>")
d3 = input("이메일=>")
d4 = input("출생년도=>")
# insert into usertable values ('test2',테스트2,'test@aaa.bbb',1991)
sql = "insert into usertable values ('"+d1+"','"+d2+"','"+d3+"','"+d4+"')"
print(sql)
cur.execute(sql)
conn.commit()
conn.close() #database와 접속 종료
# usertable의 데이터를 조회하여 화면 출력하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
cur.execute("select * from usertable")
user_list = cur.fetchall()
for u in user_list :
print(u)
conn.close()
# 화면에서 사용자ID, 이름, 이메일, 출생년도를 입력받아서 usertalbe에 추가하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
while True :
param = []
d1 = input("사용자ID=>")
if d1 =='':
break
d2 = input("사용자이름=>")
d3 = input("이메일=>")
d4 = int(input("출생년도=>"))
sql = "insert into usertable values (?,?,?,?)"
param.append(d1)
param.append(d2)
param.append(d3)
param.append(d4)
cur.execute(sql,param)
conn.commit()
conn.close() #database와 접속 종료
# usertable의 데이터를 조회하여 화면 출력하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
cur.execute("select * from usertable")
user_list = cur.fetchall()
for u in user_list :
print(u)
conn.close()
#
data = [('test4','테스트4','test4@aaa.bbb',1991),
('test5','테스트5','test5@aaa.bbb',1993),
('test6','테스트6','test6@aaa.bbb',1994),
('test7','테스트7','test7@aaa.bbb',1995)]
# data : 리스트
con = sqlite3.connect("iddb")
cur = con.cursor()
cur.executemany("""insert into usertable
(id,username,email,birthyear) values (?,?,?,?)""",data)
con.commit();
conn.close()
# usertable의 데이터를 조회하여 화면 출력하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
cur.execute("select * from usertable")
user_list = cur.fetchall()
for u in user_list :
print(u)
conn.close()
# db에서 데이터를 삭제하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
cur.execute("delete from usertable where id = 'test7'")
user_list = cur.fetchall()
for u in user_list :
print(u)
conn.close() #database와 접속 종료
# db에서 데이터 수정하기
# test1 사용자의 출생년도 1992년 변경하기
conn = sqlite3.connect("iddb")
cur = conn.cursor()
cur.execute("update usertable set birthyear=1991 where id='test5'")
con.commit()
cur.execute("select * from usertable")
user_list = cur.fetchall()
for u in user_list :
print(u)
conn.close()
# db에서 데이터 1건만 조회하기
# test1 사용자 정보만 조회하기
conn = sqlite3.connect("iddb") #close했으면 open 해야함
cur = conn.cursor()
cur.execute("select * from usertable where id='test1'")
# user con.close()= cur.fetchone()
# user = cur.fetchone()
# print(user)
id,name,email,year = cur.fetchone()
print("아이디:",id,",이름:",name,",이메일:",email,",출생년도:",year)
con.close()
# 오라클 접속하기
# 모듈 설정하기
pip install cx_Oracle : 외부 설정 모듈 셋팅
import cx_Oracle #오라클 접속을 위한 모듈
# 오라클 서버와 접속
# connect(오라클사용자id,오라클사용자비밀번호,오라클서버IP주소)
# 개별 아이피 주소 값 조회 방법 실행 - cmd - ipconfig 검색 - IPv4 값 : 172.30.1.8
# localhost : 내 컴퓨터 (아이피 값 대신 입력해도 좋다.)
# xe : 오라클 서버 아이디, SID : xe orcl
conn = cx_Oracle.connect('kic','1234','172.30.1.8/xe')
cur = conn.cursor()
cur.execute("select * from student")
st_list = cur.fetchall()
for st in st_list :
print(st)
# csv 파일 읽기 => 복사하기
# 파이썬에서 명령문에서 데이터를 입력받기
# jeju1.csv : 단어가 ,로 구분된 텍스트 파일
with open("jeju1.csv","r",newline="",encoding="UTF8") as infp : #원본파일
with open ("jeju1.bak.csv","w",encoding="UTF8") as outfp : #
header = infp.readline()
print(header)
header = header.strip()
header_list = header.split(",")
outfp.write(",".join(map(str,header_list))+"\r\n")
for row in infp : #입력 스트림에서 파일의 내용을 한줄씩 읽기
outfp.write(row)
'Python' 카테고리의 다른 글
Python - xlsx,xls 파일 읽기 [openpyxl, pandas] (0) | 2021.06.21 |
---|---|
Python - Database 연습문제 (0) | 2021.06.21 |
Python - 클래스, 상속 연습문제 (0) | 2021.06.17 |
Python - 모듈 (0) | 2021.06.16 |
Python - Class (0) | 2021.06.16 |