DB2では colum_a =” と colum_a is null は異なる意味です。 ” は「0バイトの空文字」と言う意味でNULLとは異なる概念です。
column_a | column_a = '' | column_a IS NULL |
---|---|---|
NULL | 偽 | 真 |
” | 真 | 偽 |
‘abc’ | 偽 | 偽 |
テーブルカラムのコメントを表示
SELECT COLUMN_NAME, COLUMN_TEXT FROM QSYS2.SYSCOLUMNS WHERE TABLE_SCHEMA = 'TBL_NAME' AND TABLE_NAME = 'SCHEMA_NAME';
テーブル名から保有スキーマを調べる
SELECT * FROM SYSIBM.TABLES WHERE NAME = 'TBL_NAME' ;
テーブルを構成するカラム一覧の取得
SELECT TABLE_CATALOG ,TABLE_SCHEMA ,TABLE_NAME ,COLUMN_NAME ,DATA_TYPE ,COLUMN_DEFAULT ,CHARACTER_MAXIMUM_LENGTH ,CHARACTER_OCTET_LENGTH ,NUMERIC_PRECISION ,NUMERIC_PRECISION_RADIX ,NUMERIC_SCALE ,CHARACTER_SET_NAME FROM SYSIBM.COLUMNS WHERE TABLE_SCHEMA = 'SCHEMA_NAME' AND TABLE_NAME IN( 'TBL01','TBL02','TBL03' ) ;
テーブル一覧
SELECT table_catalog,table_schema,table_name,table_type FROM SYSIBM.TABLES t where table_name like'TBL_%' ;
テーブル名からインデックスを調べる
例1 QSYS2.SYSTABLEINDEXSTAT
SELECT INDEX_NAME, COLUMN_NAMES FROM QSYS2.SYSTABLEINDEXSTAT WHERE TABLE_SCHEMA = 'SCHEMA_NAME' AND TABLE_NAME LIKE 'TBNAME_%' ORDER BY INDEX_NAME ;
例2 QSYS2.SYSINDEXSTAT
select * from QSYS2.SYSINDEXSTAT where table_name ='TBL_NAME' ;
例3 QSYS2.SYSINDEXES
select * from QSYS2.SYSINDEXES where table_name ='TBL_NAME' ;
接続先確認SQL(ホスト名出力)
SELECT HOST_NAME FROM SYSIBMADM.ENV_SYS_INFO ;