SQLデータベースの構造を確認する方法

DBeaverなどのデータベース管理ツールを使用する方法

DBeaverは、データベースを視覚的に管理できるGUIツールです。以下の手順でデータベースの構造を確認できます。

  1. データベースに接続する
    • DBeaverを起動し、左側のナビゲーションペインで「データベース接続」を作成します。
    • データベースタイプとして「SQLite」を選択し、ファイルパスにdbのフルパスを指定します。
  2. テーブル一覧を表示する
    • 接続が成功すると、データベース名がナビゲーションペインに表示されます。
    • データベース名を展開すると、「Tables」フォルダがあり、その中に全てのテーブルが一覧表示されます。
  3. テーブルの構造を確認する
    • 確認したいテーブル(例:forex_prices)をダブルクリックまたは右クリックして「エンティティエディターを開く」を選択します。
    • 「カラム」タブで、テーブルの全てのカラム名、データ型、制約(PRIMARY KEY、UNIQUEなど)を確認できます。
    • 「DDL」タブで、テーブル作成時のCREATE TABLE文を確認できます。

SQLiteのSQLコマンドを使用する方法

SQLiteでは、特定のSQLクエリを実行してデータベースの構造を確認できます。

テーブル一覧を取得する

SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;

テーブルのスキーマを取得する

特定のテーブルの構造(CREATE TABLE文)を確認するには、以下のクエリを使用します。

SELECT sql FROM sqlite_master WHERE type='table' AND name='テーブル名';

テーブルのカラム情報を取得する

各カラムの詳細情報を確認するには、PRAGMAコマンドを使用します。

PRAGMA table_info('テーブル名');

Pythonなどのプログラミング言語を使用する方法

import sqlite3

# データベースへの接続
db_path = r"C:\あなたのフルパス"
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

# テーブル一覧を取得
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
tables = cursor.fetchall()
print("Tables in the database:")
for table in tables:
    print(table[0])

# 特定のテーブルのスキーマを取得
table_name = 'forex_prices'  # 確認したいテーブル名
cursor.execute(f"SELECT sql FROM sqlite_master WHERE type='table' AND name='{table_name}';")
schema = cursor.fetchone()
print(f"\nSchema for table '{table_name}':")
print(schema[0])

# テーブルのカラム情報を取得
cursor.execute(f"PRAGMA table_info('{table_name}');")
columns = cursor.fetchall()
print(f"\nColumns in table '{table_name}':")
for column in columns:
    print(f"Column ID: {column[0]}, Name: {column[1]}, Type: {column[2]}, Not Null: {column[3]}, Default Value: {column[4]}, Primary Key: {column[5]}")

# 接続を閉じる
conn.close()