반응형

sqlite3의 테이블에 있는 레코드 개수 세는 Python 예제코드입니다.



2023. 11. 21   최초작성

2023. 11. 23   

2024. 3. 7  에러처리 코드 추가



기존에 작성된 다음 포스트에서 만든 데이터베이스 테이블을 사용하여 진행합니다.

 

sqlite3 테이블에 데이터 삽입하는 Python 예제코드

https://webnautes.tistory.com/2225 



import sqlite3


database_file_path = 'zodiac.db'  # 데이터베이스 파일 이름입니다.
table_name = 'zodiac'                  # 테이블 이름입니다.


try:
    conn = sqlite3.connect(database_file_path)
    cursor = conn.cursor()
    print("Database connection successful!")
except sqlite3.Error as e:
    print(f"Database connection failed: {e}")
    exit()
cursor = conn.cursor()

# 1. conn = sqlite3.connect(database_file_path)
#
# 이 함수는 database_file_path에 위치한 SQLite 데이터베이스 파일에 연결을 시도합니다.
# 이 경로에 파일이 존재하지 않으면, 새 데이터베이스 파일을 생성합니다.
# 데이터베이스 파일에 연결이 성공하면 Connection 객체를 반환합니다.

# 2. cursor = conn.cursor()
#
# 데이터베이스에 SQL 쿼리를 실행할 때 사용되는 Cursor 객체를 반환합니다.
# 이 Cursor 객체를 사용하여 SQL 명령을 데이터베이스에 보내고, 결과를 받을 수 있습니다.


query = f"SELECT COUNT(*) FROM {table_name}"
try:
    cursor.execute(query)
   
except sqlite3.Error as e:
    print(f"select failed : {e}")

# 1. query = f"SELECT COUNT(*) FROM {table_name}"
#
# COUNT(*)는 테이블에 있는 행의 총 개수를 반환합니다.
# `{table_name}`은 포맷 스트링에서 실제 테이블 이름으로 대체될 부분입니다.  table_name 변수에 테이블 이름이 저장되어 있어야 합니다.

# 2. cursor.execute(query)
#
# Cursor 객체의 execute 메소드를 사용하여 지정된 쿼리를 데이터베이스 엔진에 전달하고, 실행 결과를 Cursor 객체에 저장합니다.


record_count = cursor.fetchone()[0]

conn.close()

# 1. record_count = cursor.fetchone()[0]
#
# cursor 객체의 fetchone() 메소드를 사용하여 SQL 쿼리의 결과를 가져옵니다.
# fetchone() 메소드는 쿼리 결과의 첫 번째 행을 반환하고, 이 경우에는 COUNT(*) 집계 함수의 결과입니다.
# 이 결과는 튜플 형태로 반환되며, [0]은 이 튜플의 첫 번째 요소, 즉 행의 수를 나타내는 정수를 선택하여 record_count에 저장합니다. 

# 2. conn.close()
#
# close() 메소드를 사용하여 데이터베이스 연결을 안전하게 종료합니다.


print(record_count)




실행결과 24가 출력됩니다. 앞선 포스트에서 2000년부터 2023년까지의 연도와 12지신에 해당하는 동물이름을 저장했기 때문입니다.






반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts