web-dev-qa-db-ja.com

どのようにしてSQLiteのテーブルの構造を見ることができますか?

descがOracleにあったように SQLite のtableの構造をどうやって見ることができますか?

228
Ali

データベースファイルでsqlite3ユーティリティを起動し、その特殊なドットコマンドを使用します。

  • .tablesはテーブルをリストします
  • .schema [tablename]は1つまたは複数のテーブルのCREATEステートメントを表示します

他にもたくさんの便利な組み込みドットコマンドがあります - http://www.sqlite.org/sqlite.html のsection Specialにあるドキュメントを見てください。 sqlite3へのコマンド

例:

sqlite> entropy:~/Library/Mail>sqlite3 Envelope\ Index
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
addresses              ews_folders            subjects
alarms                 feeds                  threads
associations           mailboxes              todo_notes
attachments            messages               todos
calendars              properties             todos_deleted_log
events                 recipients             todos_server_snapshot
sqlite> .schema alarms
CREATE TABLE alarms (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, alarm_id,
                     todo INTEGER, flags INTEGER, offset_days INTEGER,
                     reminder_date INTEGER, time INTEGER, argument,
                     unrecognized_data BLOB);
CREATE INDEX alarm_id_index ON alarms(alarm_id);
CREATE INDEX alarm_todo_index ON alarms(todo);

また、SQLiteはデータベース自体のスキーマとテーブルに関するすべての情報をsqlite_masterという名前のマジックテーブルに保存します。また、そのテーブルに対して通常のSQLクエリを実行することもできます。例えば、上の文書リンクは、通常のSQLコマンドを使用して、.schemaおよび.tablesコマンドの動作を派生させる方法を示しています( データベーススキーマの照会 を参照)。

302
metamatt
PRAGMA table_info(table_name);

これは、コマンドラインと接続されたデータベースに対して実行されたときの両方で機能します。

詳細と例へのリンク。ありがとう SQLiteプラグマコマンド

358
AnonGeek

あなたはsqlite_masterを問い合わせることができます

SELECT sql FROM sqlite_master WHERE name='foo';

これはcreate table SQLステートメントを返します。例えば:

$ sqlite3 mydb.sqlite
sqlite> create table foo (id int primary key, name varchar(10));
sqlite> select sql from sqlite_master where name='foo';
CREATE TABLE foo (id int primary key, name varchar(10))

sqlite> .schema foo
CREATE TABLE foo (id int primary key, name varchar(10));

sqlite> pragma table_info(foo)
0|id|int|0||1
1|name|varchar(10)|0||0
36

.schema TableName

TableNameはテーブルの名前です。

15
Abi

実行することでスキーマを見ることができるはずです

.schema <table>
12
Costa Walcott

次のコマンドを入力して構造を取得します。

.schema <tableName>
11
aTJ

あなたがPHPを使っているなら、あなたはそれをこのようにすることができます:

<?php
    $dbname = 'base.db';
    $db = new SQLite3($dbname);
    $sturturequery = $db->query("SELECT sql FROM sqlite_master WHERE name='foo'");

    $table = $sturturequery->fetchArray();
    echo '<pre>' . $table['sql'] . '</pre>';

    $db->close();
?>
4
Gil

データベースの構造を明確に表示するには、 SQLiteマネージャ というFirefoxアドオンを使用できます。

0
Jack