Python: SQLite3のDBファイル内のテーブル一覧を取得
SQLite3のデータベースファイルからテーブル名の一覧を取得する関数を作成します。
この関数は、データベースファイル名を引数として受け取り、テーブル名のリストを返します。
サンプルコード
import sqlite3
def get_table_names(db_file):
"""
指定されたSQLite3データベースファイルからテーブル名の一覧を取得する
Args:
db_file (str): データベースファイルのパス
Returns:
テーブル名のリスト
"""
table_names = []
try:
# with文を使用してデータベースに接続
with sqlite3.connect(db_file) as conn:
# カーソルを取得
cursor = conn.cursor()
# テーブル一覧を取得するSQLクエリ
query = "SELECT name FROM sqlite_master WHERE type='table';"
# クエリを実行し、結果を取得
cursor.execute(query)
tables = cursor.fetchall()
# テーブル名をリストに追加
table_names = [table[0] for table in tables]
except sqlite3.Error as e:
print(f"データベースエラーが発生しました: {e}")
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
return table_names
# 使用例
if __name__ == "__main__":
db_file = 'sample.db'
tables = get_table_names(db_file)
if tables:
print("テーブル一覧:")
for table in tables:
print(table)
else:
print("テーブルが見つからないか、エラーが発生しました。")
このコードの特徴
- 関数の引数: データベースファイル名を受け取ります。
- 戻り値: データベース内のテーブル名のリストを返します。
- with文: データベース接続を自動的に管理します。
- エラーハンドリング: データベースエラーと一般的な例外を捕捉します。
- リスト内包表記: 結果からテーブル名のリストを効率的に作成します。
使用例も含まれており、このスクリプトを直接実行すると、 'sample.db'ファイル内のテーブル名が表示されます。適切なデータベースファイル名を指定して使用してください。