반응형

sqlite3 테이블에 있는 레코드 하나를 랜덤으로 보여주는 Python 예제 코드입니다. 



2023 11. 22 최초작성

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 * FROM {table_name} ORDER BY RANDOM() LIMIT 1"

try:
    cursor.execute(query)
   
except sqlite3.Error as e:
    print(f"query execution failed : {e}")
#cursor 객체의 execute 메서드를 사용하여 SQL 명령문을 실행합니다.
#
#SELECT * FROM {table_name} 부분은 table_name 변수에 지정된 테이블에서 모든 열(column)과 모든 행(row)을 선택하라는 의미입니다.
#ORDER BY RANDOM()는 결과를 무작위 순서로 정렬하도록 합니다.
#LIMIT 1은  테이블에서 무작위로 선택된 단 하나의 행만 반환하도록 합니다.



ret = cursor.fetchone()
# cursor 객체의 fetchone() 메소드를 사용하여 SQL 쿼리의 결과를 가져와 ret 변수에 저장합니다.



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


print(ret)
# 랜덤하게 가져온 데이터 행을 출력합니다.




실행할때 마다 다른 레코드를 화면에 출력해줍니다.

 

(2008, '쥐')

 

(2020, '쥐')

 

(2013, '뱀')

 

반응형

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

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


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

+ Recent posts