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'ファイル内のテーブル名が表示されます。適切なデータベースファイル名を指定して使用してください。

Python