これは少しのスクリプトで行うことができます。私のデータベース構造が次のようになっているとします。
CREATE TABLE a (personID text, name text);
CREATE TABLE b (personID text, address text);
次のシェルコマンドは、列名をcountで集計します(fooを置き換えます)。データベースファイルとsqliteの):
出力を与える
sqlite3 foo.sqlite "select name from sqlite_master where type = 'table'" | while read tableName; do sqlite3 foo.sqlite "pragma table_info($tableName)"; done | awk -F\| '{print $2}' | sort | uniq -c
:ここ
1 address
1 name
2 personID
は、それが何をしているかのステップブレークダウンバイステップです:
は、すべてのテーブルの名前を印刷 - 1行に1つの
sqlite3 foo.sqlite "select name from sqlite_master where type = 'table'"
Output
a
b
各テーブル名を読み、そしてトンをプリントアウトするPRAGMA table_name()
を実行します可能スキーマ:
while read tableName; do sqlite3 foo.sqlite "pragma table_info($tableName)"; done
Output
0|personID|text|0||0
1|name|text|0||0
0|personID|text|0||0
1|address|text|0||0
区切り文字として使用|
2列つかむ:
sort
Output
address
name
personID
personID
ユニークな結果をマージ、および-Cのカウントを表示する:結果は
awk -F\| '{print $2}'
Output
personID
name
personID
address
ソート何個のアイテムが出現したか
uniq -c
Output
1 address
1 name
2 personID
これは、純粋なSQLでは不可能です。 SQLiteは、実際のプログラミング言語と一緒に使用するための組み込みデータベースです。 –