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