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 レコードが選択されました。