Firebird の有用なクエリ

日頃 Firebird を利用していて、有用なクエリを自力で調査したり、どこかのサイトで書いてあったクエリの備忘録。
今まで、PCローカルに記録していたものです、ちょっとずつ追加して行きます。
基本は Firebird 1.5 / 2.1 / 3.0 で確認しています。2.5 は環境を作っていないので、はっきりとは言えませんが、多分動作すると思います。

ここに書いたことは、間違っている可能性もあります。
利用する場合は、ご自身で確認してからお願いします。

テーブル名一覧の取得

・取得できるテーブル名は、大文字です。

テーブルに張られているインデックス名の取得

・テーブル TBLXXX に張られている、インデックス名一覧を取得。TBLXXXは大文字で指定します
・主キー名も取得できます。主キー名は RDB$PRIMARYn の様な名前です。n は数字
・unique 制約がある場合も、RDB$n の様な名前のインデックスが張られる様です

文字列 varchar(n) または char(n)フィールドの n を取得

・テーブル TBLXXX 文字列フィールド FIELDXXX の文字列長を取得。TBLXXX、FILEDXXX は大文字で指定します
・文字列以外のフィールドを指定すると、結果は null となります
・character set によって実際に格納できる文字数が異なります。SJIS_0208 の場合は、半角文字を格納する場合は、2n文字格納可能。UTF8の場合は、全角、半角に関わらず、n文字格納可能となります

テーブルの主キー名称を取得、主キーの削除

・テーブル TBLXXX の主キーの名称を取得します。この名前はテーブルを作成した時に自動的に付けられ、INTEG_XX (XXは数字)の様なものになる。
・この名称を使用して↓のクエリで、主キーを削除することもできる。

主キーを構成する、フィールド名を取得

・テーブル TBLXXX の主キーを構成するフィールド名を取得します。
PRIMARY KEY (FIELD1, FIELD2) だとすると、取得できる結果は、2レコードです。

ドメインを使用しているテーブル、フィールド名を取得

・ドメイン DOMAINNAME を使用している、テーブル名とフィールド名の一覧を取得します。