SQLite3 のシステムに依存した小技の紹介です。他の DBMS では使用できませんのでご注意を。
現在開いているデータベースの一覧を取得します。
pragma database_list
現在のデータベース内のテーブル、ビュー、インデックスの一覧を取得します。
select * from sqlite_master
指定したテーブルの定義を取得します。たとえば、tekiyo テーブルの定義を見たい場合は、table_name を tekiyo に置き換えてください。
pragma table_info(table_name)
一般的な SQL で使用可能な小技の紹介です。システムによっては、使えないことがあるかもしれません。
フィールド f1, f2, f3 のいずれかに 'p' というパターンが部分一致('%p%')するレコードを検索する場合、通常
f1 like '%p%' or f2 like '%p%' or f3 like '%p%'
という式にしますが、左辺側で各フィールドの文字列を連結して
f1||f2||f3 like '%p%'
という式にまとめることもできます。
パターンと各フィールド値に存在しない文字をフィールド間に付加すれば、下記のように前方一致/後方一致/完全一致も可能です。もっとも、こうなると書きやすさは通常と大差なく、著しくリーダビリティが悪くなるので、あえてここまでする必要があるかどうかはかなり疑問ですね(;)。
前方一致: '~'||f1||'~'||f2||'~'||f3||'~' like '%~p%' 後方一致: '~'||f1||'~'||f2||'~'||f3||'~' like '%p~%' 完全一致: '~'||f1||'~'||f2||'~'||f3||'~' like '%~p~%'
|| は SQLite の文字列連結演算子です。他の DBMS では concat 関数等を使う必要があります。
フィールド f に 'p1', 'p2', 'p3' というパターンのいずれかが部分一致するレコードを検索する場合、通常
f like '%p1%' or f like '%p2%' or f like '%p3%'
という式にしますが、正規表現演算子を使うと
f regexp 'p1|p2|p3'
と簡単な式で書けます。
regexp は、SQLite の正規表現演算子です。DBMS ごとに正規表現演算子は異なりますので、システムのマニュアルを参照してください。
また、古い DBMS では、正規表現に対応していないものがあります。Windows 版の SQLite3 データベースエンジンである sqlite3.dll も標準では regexp 演算子が実装されておらず、ユーザが自分で実装する必要があります。