07
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
LATEST ENTRY
CATEGORY
ARCHIVE
PROFILE
SEARCH
RECENT COMMENT
  • 【情報】Excel で スクレイピング 【ぶっこ抜き】
    縫部尚登 (06/17)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/05)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    まこ (05/05)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/03)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    まこ (05/03)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/03)
  • エクセルファイルのパスワードを忘れたら・・・
    里奈 (09/09)
MOBILE
qrcode
OTHERS
<< 【全テーブル】Oracle -> CSV -> Excel【抽出】 | top | 【いつでも】Android で 放送大学【勉強】 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |
【はじめての】PostgreSQL【データベース】
ひょんなことから PostgreSQL を使うことになりました。。

Oracle は得意!(いちおうプラチナ持ってますカラ)
でも PostgreSQL は、はじめて。。。

ちょっとしたことが、こんなにも出来ないとは。。
やっぱしオラクルは素晴らしい!!!


でも、使わなくちゃいけないから。。勉強です!!


と、いうわけで、勉強ついでに覚えたちょっとしたことをメモメモ


◎いろんな情報は pg_xxxxx に眠っているよ

◎¥d テーブル名 が、 desc テーブル名 の代わりだよ

◎¥dt  で、所有テーブル一覧が出るよ (ちょっとだけ便利)

◎¥p で、直前のリストが見れるよ


◎簡単にテーブル一覧を見るにはこんな感じ

select 
       c.relname
  from pg_class c
 where c.relkind = 'r'::"char"
 order by
       c.relname
;



◎同じようにインデックス一覧を見るにはこんな感じ

 select 
        c.relname
   from pg_class c
  where c.relkind = 'i'::"char"
  order by
        c.relname
 ;


この、relkind  は以下が指定可能
  r  テーブル
  i  インデックス
  S  シーケンス
  v  ビュー
  c  複合型
  t  TOASTテーブル

TOASTって何ぞや?
まぁまた調べよう。。


この pg_class が重要みたい


◎テーブルのカラム一覧はこんな感じ

 select 
        c.relname
      , a.attnum
      , a.attname
   from pg_class c
      , pg_attribute a
  where c.oid = a.attrelid
    and c.relkind = 'r'::"char"
  order by
        c.relname
      , a.attnum
      , a.attname
 ;


追加した pg_attribute は、どーやらカラム情報が入っている模様



◎ついでにインデックスのカラム一覧はこんな( dba_ind_columns )

select 
c.relname
, a.attnum
, a.attname
from pg_class c
, pg_attribute a
where c.oid = a.attrelid
and c.relkind = 'i'::"char"
order by
c.relname
, a.attnum
, a.attname
;

’r’ を ’i’ に変えただけ。

まぁ、インデックスが効いているテーブル名が無いけど、それはまた別の手段で


◎また新たに pg_type  を追加して、カラムのデータ型も取得してみる

select
c.relname
, a.attnum
, a.attname
, t.typname
, a.atttypmod
, a.attnotnull
from pg_class c
, pg_attribute a
, pg_type t
where c.oid = a.attrelid
and c.relkind = 'r'::"char"
and a.atttypid = t.typelem
and a.attnum > 0
order by
c.relname
, a.attnum
, a.attname
;


◎これをもうちょっと見やすく整形したテーブルカラム一覧はこんな感じ

select
c.relname
, a.attnum
, a.attname
, CASE a.atttypmod
WHEN -1 THEN t.typname
ELSE t.typname||'('||a.atttypmod - 4||')'
END
, CASE a.attnotnull
WHEN true THEN 'NOT NULL'
ELSE NULL
END
from pg_class c
, pg_attribute a
, pg_type t
where c.oid = a.attrelid
and c.relkind = 'r'::"char"
and a.atttypid = t.typelem
and a.attnum > 0
order by
c.relname
, a.attnum
, a.attname
;

Oracle の decode は、postgres だと CASE − WHEN − THEN − ELSE − END になるみたい。


CHAR とかのサイズを取るのに −4 してるけど、これは管理用のサイズを引いているから
でも、−4に固定なのは 8.2までで、8.3からは可変で、1から4までらしい
どーやって何バイトか調べるのかは不明。
使うことになったのが 8.2 だから、とりあえずはこれで十分だし、まぁいいでしょう。


しっかし、データ型がいっぱいあるなぁ。。
_bpchar ってなんぞ? CREATE TABLE xxx ( xx char )  って指定したカラムが 
_bpchar ってなってたけど。。

基本的なデータ型は一通り調べておかないとな。。。

勉強することいっぱいだ

次はデフォルト値とか、UNIQUEやPK、FK のついたカラムと相手テーブルとかも調べてみよう。。。


まこ | 開発 | 01:27 | comments(0) | trackbacks(0) |
スポンサーサイト
スポンサードリンク | - | 01:27 | - | - |
Comment









Trackback
URL: