SQLiteデータベースファイル内のテーブルとそれらのテーブル内の行を一覧表示するために使用できるSQLは何ATTACH
ですか?SQLite 3コマンドラインツールのコマンドでアタッチした後はどうなりますか?
17 に答える
SQLiteデータベースのテーブルを表示するには、いくつかの手順があります。
データベース内のテーブルを一覧表示します。
.tables
テーブルがどのように見えるかをリストします。
.schema tablename
表全体を印刷します。
SELECT * FROM tablename;
使用可能なすべてのSQLiteプロンプトコマンドを一覧表示します。
.help
、.tables
および.schema
「ヘルパー」関数は、ATTACH されたデータベースを調べませんSQLITE_MASTER
。「メイン」データベースのテーブルを照会するだけです。したがって、使用した場合
ATTACH some_file.db AS my_db;
その後、あなたがする必要があります
SELECT name FROM my_db.sqlite_master WHERE type='table';
一時テーブルはどちらでも表示されないことに注意してください。その.tables
ためにリストする必要がありますsqlite_temp_master
。
SELECT name FROM sqlite_temp_master WHERE type='table';
次のように、 sqlite_masterテーブルを確認する必要があるようです。
SELECT * FROM dbname.sqlite_master WHERE type='table';
SELECT
次に、または類似の行を使用して各テーブルを手動で調べ、行を確認します。
.DUMP
andコマンドは.SCHEMA
、データベースをまったく表示していないように見えます。
すべてのテーブルを表示するには、
SELECT name FROM sqlite_master WHERE type = "table"
すべての行を表示するには、すべてのテーブルを反復処理して、各テーブルでSELECT*を実行するだけでよいと思います。しかし、多分ダンプはあなたが求めているものですか?
使用.help
可能なコマンドを確認するために使用します。
.table
このコマンドは、現在のデータベースの下にあるすべてのテーブルを表示します。
SQLiteコマンドラインでこれに使用できるコマンドがあります:
.tables ?PATTERN? List names of tables matching a LIKE pattern
これは次のSQLに変換されます。
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1
テーブルを一覧表示するには、次のこともできます。
SELECT name FROM sqlite_master
WHERE type='table';
http://www.sqlite.org/pragma.html#schemaを試してくださいPRAGMA table_info(table-name);
ドキュメントによると、MySQL に相当するものSHOW TABLES;
は次のとおりです。
「.tables」コマンドは、リスト モードを設定してから次のクエリを実行するのと似ています。
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1;
ただし、単一のテーブルが存在するかどうかを確認する (またはその詳細を取得する) 場合は、LuizGeron の回答を参照してください。
SQLite 3 の最新バージョンでは、以下を発行できます。
.fullschema
すべての作成ステートメントを表示します。
を介してunion all
、すべてのテーブルを 1 つのリストに結合します。
select name
from sqlite_master
where type='table'
union all
select name
from sqlite_temp_master
where type='table'
「.schema」コマンドは、テーブルの作成に使用されたステートメントを表示することにより、使用可能なテーブルとその行を一覧表示します。
sqlite> create table_a(id int、a int、b int); sqlite> .schema table_a CREATE TABLE table_a(id int、a int、b int);