SQLite

SQLite で正規表現を使う

【環境】 CentOS 7 CentOS 7 の SQLite(標準パッケージ)単体では、正規表現を使えない。以下からモジュールのソースを入手して、.so ライブラリをロードすれば使えるようになる。 https://github.com/ralight/sqlite3-pcre ビルド ビルドには、sqlite-deve…

ORDER BY で CASE文を使って特定の行を上位に表示する

CentOS 6.x の PostgreSQL 8.4 と SQLite3 で動作確認。何らかのデータをソートして表示する際、特定の行だけは上位に表示したい事がある。例えば、国マスタをコード順でソートした時に、日本を一番上に表示し、他はコードでソートして表示したい、等々。 単…

SQLiteでIPソート

SQLite でIPアドレスを意図した順にソートする話。複雑なわりには、使いどころが微妙(´・ω・`) PostgreSQL では inet 型にCASTすると簡単なものの、SQlite には inet型は無い。0詰めしてソートしようとしても、PostgreSQL の「split_part」や「lpad」に相…

SQLiteの自動インクリメント

<環境> CentOS 6.5/64bit sqlite 3.6.20 SQLiteで自動インクリメントするには、integerにPRIMARY KEYを指定すれば良い。 $ sqlite3 test.db SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CR…

SQLiteのコマンドラインでSELECTした結果を見やすくする

SQLiteのコマンドラインでSELECTを発行した結果表示が見にくいので、見やすくしてみる。 環境; CentOS 6.5 SQLite 3.6.20 まずはテストDBを作成。 $ sqlite3 test.db SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminate…

テーブル名やカラム名にSQLの予約語を使う方法

SQLの可読性が下がる上にバグになりやすいけど、こんな事もできるという程度のメモ。 PostgreSQLの場合、テーブル名やカラム名で予約語を使うには、ダブルクォートで囲う。 文字列にダブルクォートが入っている場合は、重ねてエスケープする。 psql=> CREATE…