テーブルスキーマ(構造)の確認
データベース内にテーブルを作成した場合、SQLiteの特別なテーブル「sqlite_master」テーブル内に実行されたCREATE TABLE文が格納されています。このテーブルのデータを取得することで、どのようなCREATE TABLE文が実行されたのか確認することができます。
では次のようにSELECT文を実行して下さい。
select * from sqlite_master;
次のようなデータが取得できます。(事前に「.mode」コマンドで「mode」を「line」に変更しています)。
sqlite> select * from sqlite_master;
type = table
name = personal
tbl_name = personal
rootpage = 2
sql = CREATE TABLE personal (id, name)
type = table
name = address
tbl_name = address
rootpage = 3
sql = CREATE TABLE address (id integer, pref text)
「sqlite_master」テーブルには2つの行が含まれています。「name」カラムにはテーブル名、そして「sql」カラムにはテーブルが作成された時のCREATE TABLE文が格納されています。
特定のテーブルのCREATE TABLE文を確認したい時は次のようにSELECT文を実行して下さい。
select * from sqlite_master where type='table' and name='address';
次のようなデータが取得できます。
sqlite> select * from sqlite_master where type='table' and name='address';
type = table
name = address
tbl_name = address
rootpage = 3
sql = CREATE TABLE address (id integer, pref text)
指定したテーブル名に関するデータだけを取得できました。
.schemaコマンド
スキーマに関する情報だけ取得したい場合にはSQLiteコマンドの「.schema」でも確認できます。
.schema ?TABLE?
引数を省略すれば全てのテーブルやインデックスのスキーマ情報を表示します。また引数にテーブル名を指定すると、テーブル名に一致するテーブルや指定したテーブル名を対象としたインデックスだけのスキーマ情報を表示することができます。
テーブルがどのように作成されたのかのCREATE TABLE文だけが表示されました。