テーブルスキーマ(構造)の確認
SQLite でデータベースに作成されているテーブルがどのような CREATE 文を使って作成されたのかを確認する方法について解説します。 sqlite_master テーブルを利用する方法と .schema コマンドを使用する方法の二通りがあります。
(Last modified: )
sqlite_masterテーブルから取得
まず最初は sqlite_master テーブルを利用する方法です。(見やすくなるように事前に「.mode」コマンドで mode を line に変更しています)。
.mode line
sqlite_master テーブルからデータを取得するため、次のような SQL 文を実行してください。
select * from sqlite_master;
次のようなデータが取得できます。
sqlite> select * from sqlite_master; type = table name = personal tbl_name = personal rootpage = 2 sql = CREATE TABLE personal(id, name) type = table name = personal2 tbl_name = personal2 rootpage = 3 sql = CREATE TABLE personal2(id integer, name text) sqlite>
現在 2 つのテーブルが作成されているため sqlite_master テーブルには 2 つの行が含まれています。それぞれの行の name カラムにはテーブル名、そして sql カラムにはテーブルが作成された時の CREATE TABLE 文が格納されています。このように sqlite_master テーブルを参照することで、テーブルがどのように作成されたのかを確認することができます。
特定のテーブルの CREATE TABLE 文を確認したい場合には WHERE 句を使って次のような SQL 文を実行して下さい。
select * from sqlite_master where type='table' and name='personal';
指定したテーブル名に関するデータだけを取得できました。
.schemaコマンドを使って取得
テーブルのスキーマに関する情報だけ取得したい場合には SQLite コマンドの .schema でも確認することができます。
.schema
.schema ?TABLE?
引数を省略すれば全てのテーブルやインデックスのスキーマ情報を表示します。また引数にテーブル名を指定すると、テーブル名に一致するテーブルや指定したテーブル名を対象としたインデックスだけのスキーマ情報を表示することができます。
では実際に試してみます。
.schema
次のようなデータが取得できます。
sqlite> .schema CREATE TABLE personal(id, name); CREATE TABLE personal2(id integer, name text); sqlite>
現在作成されている2つのテーブルに関する CREATE 文が表示されました。このように .schema コマンドを使ってもテーブルがどのように作成されたのかを確認することができます。
-- --
SQLite でデータベースに作成されているテーブルがどのような CREATE 文を使って作成されたのかを確認する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。