読者です 読者をやめる 読者になる 読者になる

データベース関連の最近の話題

最近といっても自分が新しく知ったとか使ってみたという感じのやつなので、全く目新しいやつではない。

PSequel

postgresqlのGUIクライアント。

ないと死ぬわけでもないし普段オペレーションするときはpsqlを使っているけど、テーブルの様子とかを見るのに便利。

  • カラムの定義(Not Nullとかディフォルト値とか型とか)、インデックス、外部キーの様子が一目で分かる
  • テーブルの一覧を絞り込み検索とかできる
  • GUI上でSQLも書ける
  • 好きなクエリをブックマークできる(これは特に使ってない)
  • CUIでもいいけど、何か考えながらやるときはGUIでやっているとやりやすいような気がする
  • めっちゃ複雑なことができるわけではない

トランザクションを張る

これもよくあるやつ(けど、あんまり自分やったことなかった)。更新処理とかをしたいんだけど、UPDATEミスってたら怖いしちゃんと反映されているかSELECTで確認してから正式に反映したい、というときにやる。些細な更新でもペアオペで一緒に見てもらいながらやると安心。

最初にトランザクション開始。

BEGIN;

更新処理をする。SQLをコピペすることが多いと思うけど、末尾のセミコロンを抜いてそこだけ手入力にすると最後に目視で確認するので安全度がちょい増す。

UPDATE hoge SET a = 0

結果を確認。

SELECT ...

よさそうだったら反映。

COMMIT;

ミスってた!!!という場合には反映しない。

ROLLBACK;

ROLLBACK前提で、UPDATEやALTER TABLEがどれくらい時間かかるのか試してみる、という用途でも使われる。時間を計測したいときには\timingとか打っておくと時間を出してくれるので便利。

CASE式

この本を読んで知ったやつ。

達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)

達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)

whereで分けて複数回クエリを発行しなくて済む。まだ読み込み足りていないけど、この本はSQL的世界観でどういうコードを書けばいいかを教えてくれるので結構参考になる。関数型で書くときには手続き型とは違った思考の方法をするけど、SQLを書くときには手続き型ではなく集合的な考えを使うあたり。