100日でPostgreSQLをマスター(14日目)~情報の取得~

PostgreSQL
※アフィリエイト広告を利用しています

 

Yukiです。

今日は情報の取得方法について学びます。

 

PostgreSQLを管理する上でいろいろと情報を取得したくなるものです。

ここの設定はどうなっているんだろうとか、

セッションの情報はどうなっているとか、

その方法について学びました。

広告

情報の取得

情報の取得方法によって、3つに分けます。

システム情報取得関数

システム情報を取得する関数です。

ややこしいのが、カッコが付くのと付かないのがあるんですよね。

この違いは何なんでしょう?

どうやらSQL規格で決まっているものは付かないらしいです。

カッコが付かないほうが少数派のようなので、こちらを暗記します。

ユーザ系は付かないみたいですね。

current_dateが付かないのはなんででしょう?

ある・なしクイズみたいです。

引数があるのは付くとして、どうやって見分ければいいのか。

丸暗記しかないんですかね…

カッコが付かない

  • user
  • current_user
  • current_role
  • current_date ★

★のcurrent_dateだけ仲間外れですね。

current_timeやcurrent_timestampは精度の引数を持つので、カッコが付くパターンもありますが、current_dateには精度がないからでしょうか。

カッコが付く

  • version()関数
  • current_database()関数
  • clock_timestamp()関数

両方ある

  • current_time, current_time( integer )
  • current_timestamp, current_timestamp( integer )
  • localtime, localtime( integer )
  • current_schema, current_schema() ★

★のcurrent_schemaが両方あるのが謎です。

マニュアルは、「9.26. システム情報関数と演算子」と「9.9. 日付/時刻関数と演算子」を参照しました。

情報スキーマ

標準SQLで規定されているビューです。

information_schemaというスキーマにあります。

標準SQLで規定されているので、ほかのDBMSと互換性がありますが、PostgreSQL固有の情報は取れません。

互換性と言いますが、Oracleにはないですね。

私が知らないだけでしょうか?

システムカタログ

PostgreSQL固有の情報も取るならシステムカタログから取得します。

pg_~で始まるテーブル群です。

もしかしたら、例外もありますかね? pg_~で始まらないのとか。

pg_classで表やビューの情報が見られるのが有名ですね。

まとめ

今日は、PostgreSQLから情報を取得する方法を学びました。

多分、今日挙げたものだけだと全然足りないですね。

管理するうちに、いろいろな関数やテーブル/ビューを覚えていくのだと思います。

Oracleはリファレンスで調べなくても、よく使うビューはある程度覚えてますし。

先が楽しみです。

 

<13日目 | 目次 | 15日目>

<<1日目から読む

Photo by Sneha Cecil on Unsplash

 

 

コメント

タイトルとURLをコピーしました