###엑셀파일
xlsx : openpyxl 모듈사용
xls : xlrd 모듈로 읽기
xlwd 모듈로 쓰기
| import openpyxl filename = "data/sales_2015.xlsx" book = openpyxl.load_workbook(filename) sheet = book.worksheets[0] data=[] for row in sheet.rows : line = [] #print(row) #enumerate(row) : 목록에서 for l,d in enumerate(row) : # l : 인덱스 , d : 데이터. 셀의값 line.append(d.value) #셀의내용을 line 추가 print(line) #한 줄의 셀의 리스트 data.append(line) print() print(data) |
### sqlite : 파이썬 내부에 존재하는 데이터 베이스
'''
https://sqlitebrowser.org/dl/
windows-64비트용 zip sqlite browser 다운받기 -> c:\ 압축풀기 => sql developer 임
'''
1.생성, 조회
| import sqlite3 dbpath = "test.sqlite" #database 파일 이름. conn = sqlite3.connect(dbpath) #데이터 베이스 접속. cur = conn.cursor() # sql 구문을 실행할 수 있는 객체 cur.executescript(""" # executescript : 여러개의 sql 문장을 실행. 각각의 문장들은 ;으로 구분됨 drop table if exists items; # drop table if exists items; => items 테이블이 존재하면 테이블 삭제. create table items ( # items 테이블 생성 item_id integer primary key, # item_id 컬럼이 숫자형 기본키. 값이 자동증가됨 name text unique, #name text unique : 문자형 데이터. 중복불가 price integer); insert into items (name,price) values ('Apple',800); #item_id 컬럼을 제외 : 값이 자동 증가됨 insert into items (name,price) values ('Orange',500); insert into items (name,price) values ('Banana',300); """) conn.commit() cur.execute("select * from items") #execute : sql 명령문 실행 item_list = cur.fetchall() #fetchall() : select 결과 전부를 리스트 전달 print(item_list) #[(컬럼값1,컬럼값2,..),(...),()] #[(1, 'Apple', 800), (2, 'Orange', 500), (3, 'Banana', 300)] |
1.1. #fetchone() 함수로 조회
| cur.execute("select * from member") while True: row = cur.fetchone() # 조회된 결과를 한개의 레코드씩 튜플로 리턴 if row == None: #조회된 내용이 없는 경우 break print(row) conn.close() |
2.등록
| # 화면에서 id,이름,이메일를 입력받아 db에 등록하기 while True : d1 = input("사용자ID : ") #사용자아이디 if d1 == '' : break d2 = input("사용자이름 : ") #이름 d3 = input("이메일 : ") #이메일 sql = "insert into member (id,name,email) values\ ('"+d1+"','"+d2+"','"+d3+"')" print(sql) cur.execute(sql) #실행. conn.commit() |
# mapping 방식으로 등록하기 param = [] sql = "insert into member (id,name,email) values (?,?,?)" param.append("kic4") #첫번째 등록. 첫번째 ?의 값 param.append("dddd") #두번째 등록. 두번째 ?의 값 param.append("ccc@mmm.com") #세번째 등록. 세번째 ?의 값 cur.execute(sql,param) conn.commit() conn.close() |
2.1.여러데이터 한번에 등록하기
#executemany(): 함수 사용
| import sqlite3 data=[('test7','테스트7','test7@aaa.bbb'), ('test8','테스트8','test8@aaa.bbb'), ('test9','테스트9','test9@aaa.bbb'), ('test10','테스트10','test10@aaa.bbb') ] conn = sqlite3.connect("mydb") cur = conn.cursor() cur.executemany\ ("insert into member(id,name,email) values(?,?,?)", data) conn.commit() conn.close() |
3.수정, 삭제
| 수정 | 삭제 |
| conn = sqlite3.connect("mydb") cur = conn.cursor() param =[] param.append("hongkd@aaa.bbb") param.append("test7") #member.id cur.execute("update member set email=? where id=?", param) conn.commit() conn.close() |
conn=sqlite3.connect("mydb") cur=conn.cursor() param=[] param.append("테스트10") cur.execute("delete from member where name=?", param) conn.commit() #커밋 꼭 해야함 conn.close() |
'STUDY > Python' 카테고리의 다른 글
| Python[빅데이터] pandas 활용(1) (0) | 2023.02.23 |
|---|---|
| Python_[anaconda] 데이터 관리(3) (0) | 2023.02.20 |
| Python_[anaconda] 데이터 관리(1) (0) | 2023.02.19 |
| Python_[anaconda] 기본 문법 학습하기(4)_클래스와 상속. (0) | 2023.02.16 |
| Python_[anaconda] 기본 문법 학습하기(4)_예외처리(except) (0) | 2023.02.16 |