# ■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:改行