1296

SQLiteデータベースファイル内のテーブルとそれらのテーブル内の行を一覧表示するために使用できるSQLは何ATTACHですか?SQLite 3コマンドラインツールのコマンドでアタッチした後はどうなりますか?

4

17 に答える 17

1326

SQLiteデータベースのテーブルを表示するには、いくつかの手順があります。

  1. データベース内のテーブルを一覧表示します。

    .tables
    
  2. テーブルがどのように見えるかをリストします。

    .schema tablename
    
  3. 表全体を印刷します。

    SELECT * FROM tablename;
    
  4. 使用可能なすべてのSQLiteプロンプトコマンドを一覧表示します。

    .help
    
于 2008-09-17T13:02:51.940 に答える
649

.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';
于 2008-09-17T13:30:00.113 に答える
453

次のように、 sqlite_masterテーブルを確認する必要があるようです。

SELECT * FROM dbname.sqlite_master WHERE type='table';

SELECT次に、または類似の行を使用して各テーブルを手動で調べ、行を確認します。

.DUMPandコマンドは.SCHEMA、データベースをまったく表示していないように見えます。

于 2008-09-17T13:01:48.433 に答える
180

すべてのテーブルを表示するには、

SELECT name FROM sqlite_master WHERE type = "table"

すべての行を表示するには、すべてのテーブルを反復処理して、各テーブルでSELECT*を実行するだけでよいと思います。しかし、多分ダンプはあなたが求めているものですか?

于 2008-09-17T13:06:03.743 に答える
73

使用.help可能なコマンドを確認するために使用します。

.table

このコマンドは、現在のデータベースの下にあるすべてのテーブルを表示します。

于 2011-08-31T04:13:29.280 に答える
46

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
于 2008-09-17T13:06:30.870 に答える
39

テーブルを一覧表示するには、次のこともできます。

SELECT name FROM sqlite_master
WHERE type='table';
于 2008-09-17T13:04:57.443 に答える
34

http://www.sqlite.org/pragma.html#schemaを試してくださいPRAGMA table_info(table-name);

于 2010-06-07T02:53:42.683 に答える
19

ドキュメントによると、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 の回答を参照してください。

于 2013-01-31T10:47:09.397 に答える
16

SQLite 3 の最新バージョンでは、以下を発行できます。

.fullschema

すべての作成ステートメントを表示します。

于 2014-09-08T23:59:25.683 に答える
11

を介してunion all、すべてのテーブルを 1 つのリストに結合します。

select name
from sqlite_master 
where type='table'

union all 

select name 
from sqlite_temp_master 
where type='table'
于 2016-10-13T21:48:00.580 に答える
6

「.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);
于 2008-09-17T13:05:20.203 に答える