SQLiteのテーブル構造を見る方法 (Japanese)
SQLiteでは、データベース内のテーブルの構造を調べるために、いくつかのコマンドを使用することができます。
PRAGMA table_info(tablename)
このコマンドは、指定されたテーブルの列に関する情報を取得します。列名、データ型、制約条件などを表示します。
PRAGMA table_info(my_table);
DESCRIBE tablename
これは、PRAGMA table_info()
とほぼ同じ機能を持ちます。
DESCRIBE my_table;
SELECT * FROM tablename
このコマンドは、テーブルのすべてのデータを抽出しますが、同時にテーブルの構造も確認することができます。列名とデータ型を理解するために便利です。
SELECT * FROM my_table;
SQLiteStudioなどのGUIツール
SQLiteStudioなどのGUIツールを使用すると、テーブルの構造を視覚的に確認することができます。テーブルのブラウザーやスキーマダイアグラムを使用して、列名、データ型、制約条件などを簡単に確認できます。
例:
-- テーブルを作成
CREATE TABLE my_table (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
-- テーブルの構造を確認
PRAGMA table_info(my_table);
-- テーブルを作成
CREATE TABLE my_table (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
-- テーブルの構造を確認
PRAGMA table_info(my_table);
解説:
テーブルの作成:
CREATE TABLE my_table
: 新しいテーブルmy_table
を作成します。id INTEGER PRIMARY KEY
:id
という列を定義し、整数型でプライマリキーとして設定します。プライマリキーは、各行を一意に識別する値です。name TEXT
:name
という列を定義し、テキスト型として設定します。age INTEGER
:age
という列を定義し、整数型として設定します。
テーブルの構造確認:
このコマンドを実行すると、以下のような結果が得られます。
cid name type notnull dflt_value pk type_affinity
--- ------------- ------------- ------- ---------- --- -------------
1 id INTEGER 1 NULL 1 INTEGER
2 name TEXT 0 NULL 0 TEXT
3 age INTEGER 0 NULL 0 INTEGER
この出力から、以下のことがわかります。
cid
: 列の識別番号name
: 列名type
: データ型notnull
: NULL値を許容するか否かdflt_value
: デフォルト値pk
: プライマリキーかどうかtype_affinity
: データ型の親クラス
DESCRIBE my_table;
SELECT * FROM my_table;
-- テーブルを作成
CREATE TABLE my_table (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
-- テーブルの構造を確認
DESCRIBE my_table;
このコマンドを実行すると、PRAGMA table_info()
と同じ結果が得られます。
SELECT * FROM tablename
は、テーブルのすべてのデータを抽出するため、大きなテーブルの場合はパフォーマンスに影響を与える可能性があります。- GUIツールは、視覚的な確認が容易ですが、コマンドラインインターフェースでの操作に慣れている場合は、
PRAGMA table_info()
やDESCRIBE
コマンドの方が適しているかもしれません。
sqlite