データベースの中身が見えない?「psql」の魔法の呪文で覗いてみよう!
PostgreSQLを使い始めたばかりの皆さん、こんにちは!
データベースの世界に足を踏み入れると、最初にぶつかる壁が「今、自分は何を作ったんだっけ?」という迷子状態ですよね。テーブルを作ったはずなのに名前を忘れちゃったり、関数を作ったけどどこに消えたかわからなくなったり……。
そんな時、多くの初心者が「SQLを書いて、システムカタログという難しい表を検索しなきゃ!」と身構えてしまいます。でも、ちょっと待ってください。そんなの、イチイチ巨大な辞書をめくるようなものですよ。
実は、PostgreSQLの黒い画面(psql)には、「魔法の呪文」が用意されています。これを使えば、データベースの中身を瞬時に、しかもめちゃくちゃ簡単に覗くことができるんです。
今日は、僕が現場で毎日使っている、一番便利な「基本の呪文」たちを紹介しますね。
—
1. 「今、何がある?」を知る魔法:`\dt`
まずは一番よく使うのがこれ。`\dt` です。
これは、「今、このデータベースの中にどんなテーブル(箱)があるの?」と聞くためのコマンドです。
\dt
「t」は「table」の頭文字。これさえ打てば、自分が作ったテーブルの一覧がパッと出てきます。もし何も表示されなければ、「あ、まだ一つもテーブルを作っていないんだな」とすぐに気づけるはず。これを知っているだけで、迷子になる回数が激減しますよ。
2. 「目次」を探す魔法:`\di`
次に便利なのが `\di` です。
これは「インデックス(索引)」の一覧を見せてくれます。「i」は「index」。
本に目次があるように、データベースも大量のデータから目的のものを探すために「インデックス」という仕組みを使います。自分で作った覚えがなくても、PostgreSQLが気を利かせて作っていることもあるので、たまに覗いてみると「お、こんな所に索引があるのか!」と発見があって面白いですよ。
3. 「どんな道具がある?」を知る魔法:`\df`
プログラムを書いていると、「あれ?あんな計算をする機能、前にも作ったよな?」となることがありますよね。そんな時は `\df` の出番です。「f」は「function(関数)」のこと。
自分で定義した複雑な計算式や、便利な処理を「関数」として登録しておくと、後から何度も使い回せます。`\df` を打てば、今使える「マイ道具箱」の中身が全部見えるので、ぜひ試してみてください。
4. 「部屋分け」を確認する魔法:`\dn`
最後は `\dn` です。「n」は「namespace(スキーマ)」の頭文字。
PostgreSQLには「スキーマ」という、いわば「本棚の棚」のような整理整頓の仕組みがあります。プロジェクトごとに棚を分けたい時などによく使うのですが、自分が今どの棚(スキーマ)にいるのか、他にどんな棚があるのかを確認したい時に `\dn` を打つと、一発で整理状況がわかります。
—
魔法を使いこなすコツ
これらのコマンドを使う時に、一つだけ覚えておいてほしいことがあります。それは、コマンドの後に「」をつけると、より詳しく教えてくれるということ。
例えば、ただの `\dt` だと名前だけですが、`\dt ` と打つと、それぞれのテーブルの細かい情報まで表示してくれたりします。
「なんだかよくわからないけど、とりあえず現状を確認したい!」という時は、まずは気楽に `\dt` や `\df` を叩いてみてください。データベースは壊れません。むしろ、中身をたくさん覗いてあげることで、だんだんと「あ、ここにはこれがあるんだな」という地図が頭の中に出来上がってくるはずです。
データベースは、最初は冷たい機械のように感じるかもしれません。でも、こうしたコマンドで対話を重ねていくと、だんだん愛着が湧いてくるものですよ。
皆さんのデータベースライフが、今日から少しだけ楽に、そして楽しくなりますように!また気になることがあったら、いつでも聞きに来てくださいね。
コメント