# ■SQLiteデータベースファイル内のスキーマ(テーブル)情報取得
import sqlite3
#ターゲットのSQLiteファイルの絶対パス設定
dbname = 'C:/***/***.db'
#ターゲットのSQLiteを開き、sqlite_masterテーブルにあるスキーマのリストを全件取得
with sqlite3.connect(dbname) as conn:
cur = conn.cursor()
list_schema = cur.execute("SELECT * FROM sqlite_master WHERE type='table'").fetchall()
#スキーマリストをそのまま表示(1行リストベタ打ち)
print(list_schema)
#スキーマごとに行を変えて表示
for schema in list_schema:
print(schema)
#例
#('table', 'tabel1', 'tabel1', 2, 'CREATE TABLE "table1" (\n\t"column1"\tTEXT,\n\t"column2"\tTEXT\n)')
#・table:テーブル型
#・tabel1:テーブル名(なぜか2回つづけて表示される)
#・2:スキーマ番号。 sqlite_masterが1になるので、対象のテーブルは2以上になる。
#・以降、CREATE文がそのまま入る。行区切り、タブ区切りで定義される。
#・\n\t"column1"\tTEXT
# \n\t:コラム定義の区切り先頭デリミタ(改行、タブ)
# "column1":コラム名
# \t:タブ
# TEXT:コラムの値の型(この例ではテキスト型)
# \n:改行