Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- sql
- Join
- MongoDB
- python
- 몽고디비
- onetoone
- DATABASE
- MySQL
- statement
- 밴쿠버응급실
- 파이썬
- subquery
- insert_into
- Collections
- cursor()
- DBFilter
- PostgreSQL
- 서브쿼리
- insertOne
- DB
- query
- postgres
- PostgresDB
- PreparedStatement
- sqlite3
- 자바스크립트
- 데이터베이스
- javascript
- python데이터베이스연동
- SubqueryFilter
Archives
- Today
- Total
새벽코딩
[Python-DB] 4. 데이터의 조회 본문
파이썬에서 데이터를 조회하기 위한 Step
단, 데이터 조회는 입력이나 변경하는것이 아니기 때문에, commit() 함수는 사용하지 않는다.
# 파이썬에서 데이터를 조회하는 프로그래밍의 순서
# 1. DB 연동
# 2. 커서 생성
# 3. 데이터 조회 (SELECT 문) : 커서를 통해서 조회를 하는데,
# 조회된 내용은 전부 커서에 저장된다. (메모리 저장)
# 4. 조회된 내용들은 출력 : 커서를 이용하여 fetchone(), fetchall() 함수들을 통해서
# 콘솔에 출력하게 된다.
# 5. DB 연결 종료
# commit() 이 빠진 이유는, 조회만 필요해서, 디스크에 저장, 삭제, 수정 등의 쿼리가
# 아니기 때문에 commit()을 사용할 이유가 없다.
import sqlite3
# 전역변수 선언
con, cur = None, None
id, userName, email, birthYear = "", "", "", ""
row = None # 한 행을 가져와서 저장할 전역변수
if __name__ == "__main__":
#DB 연결
con = sqlite3.connect("c:/PythonDB/naverDB")
# 커서 생성
cur = con.cursor()
cur.execute("select * from userTable") # 조회된 데이터 전부 저장됨
#1990년 포함 이후 출생한 사용자들을 출력하는 쿼리
#cur.execute("select * from userTable where birthYear >= 1990")
#아래 쿼리는 출생연도 컬럼을 기준으로 오름차순 정렬을 하는 쿼리이다.
#단, 기본값이 asc이기 때문에 asc는 생략 가능하다.
# cur.execute("select * from userTable order by birthYear")
#아래 쿼리는 출생연도 컬럼을 기준으로 내림차순 정렬을 하는 쿼리이다.
#단, 기본값이 asc이기 때문에 asc는 생략 가능하지만,
#내림 차순을 할때는 desc를 써줘야 한다.
# cur.execute("select * from userTable order by birthYear desc")
#아래 쿼리문은 id가 shin인 필터가 된다.
# cur.execute("select * from userTable where id = 'shin' ")
# Header 생성
print("사용자ID 사용자이름 이메일 출생연도")
print("--------------------------------------------------------")
# 무한루프를 돌면서 1행씩 가져와서 출력을 한다.
while True:
row = cur.fetchone() #행을 하나씩 가져온다.
# 무한루프를 빠져나가는 상황
if row == None: #더이상 가져올 데이터가 없다면 루프 빠져나와
break
# 한 행에 있는 데이터를 각각 전역변수에 저장 후 출력
id = row[0]
userName = row[1]
email = row[2]
birthYear = row[3]
print("%5s %15s %15s %5d" % (id, userName, email, birthYear))
#DB 연결 해제
con.close()
** 중간에 comment된 부분에서 정렬(오름차순, 내림차순) 및 filter 가 어떤식으로 사용되었는지 확인 가능
'Programming > Python' 카테고리의 다른 글
섭씨 화씨 변환 (How to convert Celsius to Fahrenheit) (0) | 2022.12.30 |
---|---|
Python 형식지정자(%s) 기록 (0) | 2022.12.30 |
[Python-DB] 3. 데이터의 입력과 조회 -3 (create product table) (0) | 2022.12.23 |
[Python-DB] 2. 데이터의 입력과 조회 -2 (실제 user input 코드) (0) | 2022.12.23 |
[Python-DB] 1. 데이터의 입력과 조회 (0) | 2022.12.22 |