首記のご質問をいただきました。
サンプルとしてよく利用されるテーブル、ライブラリーとしては、古くからQEOLライブリラリーがありますが、現在、QEOLはアイ・ラーニング社の研修を受講しないと所持していないユーザーさんも増えているかもしれません。
という事で、最近(IBM i 7.xなど)であれば、以下のようなIBM i 標準提供のサンプルがあります。DBCSカラムが含まれませんが、ユーザーで追加する等もできますし、利用できそうです。
Db2 for i のサンプルテーブル(IBM i OS標準提供)
以下のような様々なサンプルテーブルがIBM i OSに付属しています。
Db2 for i サンプルテーブルの使い方(作成方法)
以下のSQLストアードプロシージャーで、任意のライブラリー名を指定して実行するとそのライブラリにサンプルテーブルが生成されます。(以下の例ではCORPDATAライブラリーを作成してテーブルを生成)
CALL QSYS.CREATE_SQL_SAMPLE ('CORPDATA')
とあり、IBM i Information Center ではライブラリー名は CORPDATA と想定していることが分かります。ですのでこの記事のシリーズでも上記をパーソナライズした、CORPDATA_G としてみます。
サンプル表を生成してみる
以下のストアードプロシージャーを5250, ACS SQLスクリプト実行画面などから実行します。今回は後者で実行します。
CALL QSYS.CREATE_SQL_SAMPLE ('CORPDATA_G')
ライブラリー CORPDATA_G を見ると、テーブルの他にもビュー(LF)、DDMFなど様々なオブジェクトが生成されています。
サンプル表
サンプル表のリスト
Db2 for i のテーブルとしては以下が生成されました。
ACT 活動表
CL_SCHED クラススケジュール表
DEPARTMENT 部門マスター
EMP_PHOTO 従業員写真マスター
EMP_RESUME 従業員履歴表
EMPLOYEE 従業員マスター
EMPPROJACT 従業員対プロジェクト活動表
IN_TRAY イン・トレイ表
ORG 組織マスター
PROJACT プロジェクトアクティビティー表
PROJECT プロジェクトマスター
SALES 売上表
STAFF スタッフマスター
ACT 活動表
-- SQLの生成
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 14:10:07
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.ACT (
ACTNO SMALLINT NOT NULL ,
ACTKWD CHAR(6) CCSID 1399 NOT NULL ,
ACTDESC VARCHAR(20) CCSID 1399 NOT NULL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_ACT_ACTNO_00001 PRIMARY KEY( ACTNO ) )
RCDFMT ACT ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.ACT TO GOMA2 WITH GRANT OPTION ;
CL_SCHED クラススケジュール表
-- SQLの生成
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 14:50:37
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.CL_SCHED (
CLASS_CODE CHAR(7) CCSID 1399 DEFAULT NULL ,
"DAY" SMALLINT DEFAULT NULL ,
"STARTING" TIME DEFAULT NULL ,
"ENDING" TIME DEFAULT NULL )
RCDFMT CL_SCHED ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.CL_SCHED TO GOMA2 WITH GRANT OPTION ;
DEPARTMENT 部門マスター
-- SQLの生成
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 14:52:38
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.DEPARTMENT (
DEPTNO CHAR(3) CCSID 5123 NOT NULL ,
DEPTNAME VARCHAR(36) CCSID 1399 NOT NULL ,
MGRNO CHAR(6) CCSID 1399 DEFAULT NULL ,
ADMRDEPT CHAR(3) CCSID 5123 NOT NULL ,
"LOCATION" CHAR(16) CCSID 1399 DEFAULT NULL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_DEPARTMENT_DEPTNO_00001 PRIMARY KEY( DEPTNO ) )
RCDFMT DEPARTMENT ;
ALTER TABLE CORPDATA_G.DEPARTMENT
ADD CONSTRAINT CORPDATA_G.ROD
FOREIGN KEY( ADMRDEPT )
REFERENCES CORPDATA_G.DEPARTMENT ( DEPTNO )
ON DELETE CASCADE
ON UPDATE NO ACTION ;
ALTER TABLE CORPDATA_G.DEPARTMENT
ADD CONSTRAINT CORPDATA_G.RDE
FOREIGN KEY( MGRNO )
REFERENCES CORPDATA_G.EMPLOYEE ( EMPNO )
ON DELETE SET NULL
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.DEPARTMENT TO GOMA2 WITH GRANT OPTION ;
EMP_PHOTO 従業員写真マスター
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 14:55:59
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.EMP_PHOTO (
EMPNO CHAR(6) CCSID 1399 NOT NULL ,
PHOTO_FORMAT FOR COLUMN PHOTO00001 VARCHAR(10) CCSID 1399 NOT NULL ,
PICTURE BLOB(102400) DEFAULT NULL ,
EMP_ROWID CHAR(40) CCSID 1399 NOT NULL DEFAULT '' ,
DL_PICTURE DATALINK(1000) ALLOCATE(50) CCSID 1399 DEFAULT NULL NO LINK CONTROL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_EMP_PHOTO_EMPNO_00001 PRIMARY KEY( EMPNO , PHOTO_FORMAT ) )
RCDFMT EMP_PHOTO ;
ALTER TABLE CORPDATA_G.EMP_PHOTO
ADD CONSTRAINT CORPDATA_G.Q_CORPDATA_G_EMP_PHOTO_EMPNO_00002
FOREIGN KEY( EMPNO )
REFERENCES CORPDATA_G.EMPLOYEE ( EMPNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.EMP_PHOTO TO GOMA2 WITH GRANT OPTION ;
このテーブルに関連した画像ファイルGIF,BMPもIFSに生成されています。
EMP_RESUME 従業員履歴表
-- SQLの生成
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:13:37
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.EMP_RESUME (
EMPNO CHAR(6) CCSID 1399 NOT NULL ,
RESUME_FORMAT FOR COLUMN RESUM00001 VARCHAR(10) CCSID 1399 NOT NULL ,
RESUME CLOB(5120) CCSID 1399 DEFAULT NULL ,
EMP_ROWID CHAR(40) CCSID 1399 NOT NULL DEFAULT '' ,
DL_RESUME DATALINK(1000) ALLOCATE(50) CCSID 1399 DEFAULT NULL NO LINK CONTROL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_EMP_RESUME_EMPNO_00001 PRIMARY KEY( EMPNO , RESUME_FORMAT ) )
RCDFMT EMP_RESUME ;
ALTER TABLE CORPDATA_G.EMP_RESUME
ADD CONSTRAINT CORPDATA_G.Q_CORPDATA_G_EMP_RESUME_EMPNO_00002
FOREIGN KEY( EMPNO )
REFERENCES CORPDATA_G.EMPLOYEE ( EMPNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.EMP_RESUME TO GOMA2 WITH GRANT OPTION ;
EMPLOYEE 従業員マスター
-- SQLの生成
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:19:02
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.EMPLOYEE (
EMPNO CHAR(6) CCSID 1399 NOT NULL ,
FIRSTNME VARCHAR(12) CCSID 1399 NOT NULL ,
MIDINIT CHAR(1) CCSID 5123 NOT NULL ,
LASTNAME VARCHAR(15) CCSID 1399 NOT NULL ,
WORKDEPT CHAR(3) CCSID 5123 DEFAULT NULL ,
PHONENO CHAR(4) CCSID 1399 DEFAULT NULL ,
HIREDATE DATE DEFAULT NULL ,
JOB CHAR(8) CCSID 1399 DEFAULT NULL ,
EDLEVEL SMALLINT NOT NULL ,
SEX CHAR(1) CCSID 5123 DEFAULT NULL ,
BIRTHDATE DATE DEFAULT NULL ,
SALARY DECIMAL(9, 2) DEFAULT NULL ,
BONUS DECIMAL(9, 2) DEFAULT NULL ,
COMM DECIMAL(9, 2) DEFAULT NULL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_EMPLOYEE_EMPNO_00001 PRIMARY KEY( EMPNO ) )
RCDFMT EMPLOYEE ;
ALTER TABLE CORPDATA_G.EMPLOYEE
ADD CONSTRAINT CORPDATA_G.RED
FOREIGN KEY( WORKDEPT )
REFERENCES CORPDATA_G.DEPARTMENT ( DEPTNO )
ON DELETE SET NULL
ON UPDATE NO ACTION ;
ALTER TABLE CORPDATA_G.EMPLOYEE
ADD CONSTRAINT CORPDATA_G.NUMBER
CHECK( PHONENO >= '0000' AND PHONENO <= '9999' ) ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.EMPLOYEE TO GOMA2 WITH GRANT OPTION ;
EMPPROJACT 従業員対プロジェクト活動表
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:32:15
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.EMPPROJACT (
EMPNO CHAR(6) CCSID 1399 NOT NULL ,
PROJNO CHAR(6) CCSID 1399 NOT NULL ,
ACTNO SMALLINT NOT NULL ,
EMPTIME DECIMAL(5, 2) DEFAULT NULL ,
EMSTDATE DATE DEFAULT NULL ,
EMENDATE DATE DEFAULT NULL )
RCDFMT EMPPROJACT ;
ALTER TABLE CORPDATA_G.EMPPROJACT
ADD CONSTRAINT CORPDATA_G.REPAPA
FOREIGN KEY( PROJNO , ACTNO , EMSTDATE )
REFERENCES CORPDATA_G.PROJACT ( PROJNO , ACTNO , ACSTDATE )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.EMPPROJACT TO GOMA2 WITH GRANT OPTION ;
IN_TRAY イン・トレイ表
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:34:19
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.IN_TRAY (
RECEIVED TIMESTAMP DEFAULT NULL ,
"SOURCE" CHAR(8) CCSID 1399 DEFAULT NULL ,
SUBJECT CHAR(64) CCSID 1399 DEFAULT NULL ,
NOTE_TEXT VARCHAR(3000) CCSID 1399 DEFAULT NULL )
RCDFMT IN_TRAY ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.IN_TRAY TO GOMA2 WITH GRANT OPTION ;
ORG 組織マスター
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:36:41
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.ORG (
DEPTNUMB SMALLINT NOT NULL ,
DEPTNAME VARCHAR(14) CCSID 1399 DEFAULT NULL ,
MANAGER SMALLINT DEFAULT NULL ,
DIVISION VARCHAR(10) CCSID 1399 DEFAULT NULL ,
"LOCATION" VARCHAR(13) CCSID 1399 DEFAULT NULL )
RCDFMT ORG ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.ORG TO GOMA2 WITH GRANT OPTION ;
PROJACT プロジェクトアクティビティー表
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:39:36
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.PROJACT (
PROJNO CHAR(6) CCSID 1399 NOT NULL ,
ACTNO SMALLINT NOT NULL ,
ACSTAFF DECIMAL(5, 2) DEFAULT NULL ,
ACSTDATE DATE NOT NULL ,
ACENDATE DATE DEFAULT NULL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_PROJACT_PROJNO_00001 PRIMARY KEY( PROJNO , ACTNO , ACSTDATE ) )
RCDFMT PROJACT ;
ALTER TABLE CORPDATA_G.PROJACT
ADD CONSTRAINT CORPDATA_G.RPAP
FOREIGN KEY( PROJNO )
REFERENCES CORPDATA_G.PROJECT ( PROJNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
ALTER TABLE CORPDATA_G.PROJACT
ADD CONSTRAINT CORPDATA_G.RPAA
FOREIGN KEY( ACTNO )
REFERENCES CORPDATA_G.ACT ( ACTNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.PROJACT TO GOMA2 WITH GRANT OPTION ;
PROJECT プロジェクトマスター
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:41:40
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.PROJECT (
PROJNO CHAR(6) CCSID 1399 NOT NULL ,
PROJNAME VARCHAR(24) CCSID 1399 NOT NULL DEFAULT '' ,
DEPTNO CHAR(3) CCSID 5123 NOT NULL ,
RESPEMP CHAR(6) CCSID 1399 NOT NULL ,
PRSTAFF DECIMAL(5, 2) DEFAULT NULL ,
PRSTDATE DATE DEFAULT NULL ,
PRENDATE DATE DEFAULT NULL ,
MAJPROJ CHAR(6) CCSID 1399 DEFAULT NULL ,
CONSTRAINT CORPDATA_G.Q_CORPDATA_G_PROJECT_PROJNO_00001 PRIMARY KEY( PROJNO ) )
RCDFMT PROJECT ;
ALTER TABLE CORPDATA_G.PROJECT
ADD CONSTRAINT CORPDATA_G.Q_CORPDATA_G_PROJECT_DEPTNO_00001
FOREIGN KEY( DEPTNO )
REFERENCES CORPDATA_G.DEPARTMENT ( DEPTNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
ALTER TABLE CORPDATA_G.PROJECT
ADD CONSTRAINT CORPDATA_G.Q_CORPDATA_G_PROJECT_RESPEMP_00001
FOREIGN KEY( RESPEMP )
REFERENCES CORPDATA_G.EMPLOYEE ( EMPNO )
ON DELETE RESTRICT
ON UPDATE NO ACTION ;
ALTER TABLE CORPDATA_G.PROJECT
ADD CONSTRAINT CORPDATA_G.RPP
FOREIGN KEY( MAJPROJ )
REFERENCES CORPDATA_G.PROJECT ( PROJNO )
ON DELETE CASCADE
ON UPDATE NO ACTION ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.PROJECT TO GOMA2 WITH GRANT OPTION ;
SALES 売上表
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:43:40
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.SALES (
SALES_DATE DATE DEFAULT NULL ,
SALES_PERSON FOR COLUMN SALES00001 VARCHAR(15) CCSID 1399 DEFAULT NULL ,
REGION VARCHAR(15) CCSID 1399 DEFAULT NULL ,
SALES INTEGER DEFAULT NULL )
RCDFMT SALES ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.SALES TO GOMA2 WITH GRANT OPTION ;
STAFF スタッフマスター
-- バージョン: V7R5M0 220415
-- 生成: 25/05/22 15:45:48
-- リレーショナル・データベース: IBMI75
-- 規格オプション: Db2 for i
CREATE TABLE CORPDATA_G.STAFF (
"ID" SMALLINT NOT NULL ,
NAME VARCHAR(9) CCSID 1399 DEFAULT NULL ,
DEPT SMALLINT DEFAULT NULL ,
JOB CHAR(5) CCSID 1399 DEFAULT NULL ,
"YEARS" SMALLINT DEFAULT NULL ,
SALARY DECIMAL(7, 2) DEFAULT NULL ,
COMM DECIMAL(7, 2) DEFAULT NULL )
RCDFMT STAFF ;
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
ON CORPDATA_G.STAFF TO GOMA2 WITH GRANT OPTION ;