LoginSignup
1
0

More than 5 years have passed since last update.

Db2:Netteza/PostgreSQL互換データ型(INT2,INT4,INT8,FLOAT4,FLOAT8)

Posted at

Db2 11.1には、Oracle, Netteza, PostgreSQLなど他のデータベース製品で使用されるSQLも簡単にDb2環境で実行できるようにするSQLの互換性の機能拡張がいろいろ含まれています。

シノニム・データ・タイプ

Db2は、CHAR, INTEGER, DECIMALといった標準データ・タイプをサポートしています。
Db2 11.1では、NettezaやPostgreSQLで使われている、以下のデータ・タイプも、シノニムとして扱えるようになっています。

これらのデータ・タイプです。

タイプ   Db2のどのデータ・タイプか
-------- ---------------------------------
INT2         SMALLINT データ・タイプの別名
INT4         INTEGER データ・タイプの別名
INT8         BIGINT データ・タイプの別名
FLOAT4       REAL データ・タイプの別名
FLOAT8       DOUBLE データ・タイプの別名

シノニム・データ・タイプでテーブルを作成してみる

Db2 11.1のSAMPLEデータベースに接続し、これらのデータ・タイプを使ったテーブルを作ってみます。

CREATE TABLE SYNONYM_EMPLOYEE
  (
  NAME VARCHAR(20),
  SALARY     INT4,
  BONUS      INT2,
  COMMISSION INT8,
  COMMISSION_RATE FLOAT4,
  BONUS_RATE FLOAT8
  )

INT4, INT2などのデータ・タイプを使ってテーブルの列を定義しましたが、この「シノニム・データ・タイプ名」がそのままシステム・カタログに入っているわけではありません。

シノニム・データ・タイプのかわりに、Db2の本来のデータタイプで定義情報は保管されています。

DESCRIBEコマンドを使ってテーブルの列情報を表示すると、Db2の本来のデータ・タイプで表示されました。


DESCRIBE TABLE SYNONYM_EMPLOYEE

                                データ・タイ データ・         列の       スケ
列名                            プ・スキーマ タイプ名         長さ       ール  NULL
------------------------------- --------- ------------------- ---------- ----- ------
NAME                            SYSIBM    VARCHAR                     20     0 はい
SALARY                          SYSIBM    INTEGER                      4     0 はい
BONUS                           SYSIBM    SMALLINT                     2     0 はい
COMMISSION                      SYSIBM    BIGINT                       8     0 はい
COMMISSION_RATE                 SYSIBM    REAL                         4     0 はい
BONUS_RATE                      SYSIBM    DOUBLE                       8     0 はい

  6 レコードが選択されました。

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0