자기개발👨‍💻/파이썬 웹

python 디비 생성 및 다루기(3)

천숭이 2021. 9. 3. 01:45

python 디비 생성 및 다루기(1) 로 라이블러 임포트 및 conn, c 선언하기

database.db

fetchone() : 현재 커서 위치의 값을 출력

fetchall() : 데이터를 배열형식으로 저장

# WHERE Retrieve1
param1=(1,)
c.execute('SELECT * FROM users WHERE id=?',param1)
print('param1',c.fetchone())
print('param1',c.fetchall()) # 데이터 없음

 

param1 (1, 'csb', 'csb@daum.net', '010-8989-0000', 'ccssbb.com', '2021-09-02 20:29:39')
param1 []

# WHERE Retrieve2
param2 = 4
c.execute('SELECT * FROM users WHERE id="%s"' % param2)
print('param2 ',c.fetchone())
print('param2 ',c.fetchall())

param2  (4, 'Cho', 'Cho@daum.net', '010-3333-3333', 'Cho.com', '2021-09-02 20:29:39')
param2  []

# WHERE Retrieve3 딕셔너리로
c.execute('SELECT * FROM users WHERE id=:Id',{"Id":5})
print('param3',c.fetchone())
print('param3 ',c.fetchall())

param3 (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')
param3  []

# WHERE Retrieve4 특정 데이터만 조회
param4 = (3,5)
c.execute("SELECT * FROM users WHERE id IN(?,?)",param4)
print('param4 ',c.fetchall())

param4  [(3, 'Lee', 'Lee@naver.com', '010-8989-9718', 'Lee.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]

# WHERE Retrieve4-2 다른방법
c.execute("SELECT * FROM users WHERE id IN('%d','%d')"% (3,5))
print('param4-2 ',c.fetchall())

param4-2  [(3, 'Lee', 'Lee@naver.com', '010-8989-9718', 'Lee.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]

# WHERE Retrieve6
c.execute("SELECT * FROM users WHERE id=:id1 OR id=:id2",{"id1":2,"id2":5})
print('param6',c.fetchall())

param6 [(2, 'Park', 'Park@daum.net', '010-3617-0000', 'Park.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]

# Dump : db서버를 이전하거나 백업을 위해서는 Dump파일이 필요하다
# Dump 출력
with conn:
    with open('D:/[패캠] 파이썬 웹 개발 올인원/python실습(1강)/dump.sql','w') as f:
        for line in conn.iterdump():
            f.write('%s\n'%line)

        print('Dump Print Complete')

# f.close() | with 블록을 벗어나는 순간 자동으로 close되어 편리하다.

db에 입력한 데이터의 내용이 저장됨을 확인할 수 있다.