(QA) IBM i (Db2 for i)のサンプル・テーブルはありませんか？

首記のご質問をいただきました。

サンプルとしてよく利用されるテーブル、ライブラリーとしては、古くからQEOLライブリラリーがありますが、現在、QEOLは[アイ・ラーニング社の研修](https://www.i-learning.jp/service/it/iseries.html)を受講しないと所持していないユーザーさんも増えているかもしれません。

という事で、最近（IBM i 7.xなど）であれば、以下のようなIBM i 標準提供のサンプルがあります。DBCSカラムが含まれませんが、ユーザーで追加する等もできますし、利用できそうです。

## Db2 for i のサンプルテーブル（IBM i OS標準提供）

[**Db2 for i サンプル表**](https://www.ibm.com/docs/ja/i/7.5.0?topic=tables-sample)

以下のような様々なサンプルテーブルがIBM i OSに付属しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/e395e526-6c05-4607-853a-7ca0c5acfc8a.png)

## Db2 for i サンプルテーブルの使い方（作成方法）

以下のSQLストアードプロシージャーで、任意のライブラリー名を指定して実行するとそのライブラリにサンプルテーブルが生成されます。(以下の例ではCORPDATAライブラリーを作成してテーブルを生成)
```
CALL QSYS.CREATE_SQL_SAMPLE ('CORPDATA')
```

また、上記マニュアルページを見ますと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/6e9e98bc-ca5a-400c-b95d-721439ed0e9a.png)

とあり、IBM i Information Center ではライブラリー名は CORPDATA　と想定していることが分かります。ですのでこの記事のシリーズでも上記をパーソナライズした、CORPDATA_G としてみます。

### サンプル表を生成してみる

以下のストアードプロシージャーを5250, ACS SQLスクリプト実行画面などから実行します。今回は後者で実行します。
```
CALL QSYS.CREATE_SQL_SAMPLE ('CORPDATA_G')
```
以下のように正常に完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/2951f39c-6795-4a01-b350-294f89ac3ba5.png)

ライブラリー CORPDATA_G を見ると、テーブルの他にもビュー（LF）、DDMFなど様々なオブジェクトが生成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/1871ec5b-0a9c-43c6-bc37-a53a760152d4.png)

## サンプル表

### サンプル表のリスト
Db2 for i のテーブルとしては以下が生成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/04fb8846-1d9d-4f30-9ea9-3cb038847568.png)

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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c5730e12-844d-40d8-8327-0a0ff5565914.png)

### 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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/011e534c-9ee3-40a5-a10a-b91ed6ea286d.png)

### 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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/b5baac80-e6c8-4158-9a4c-fed894ef736f.png)

### EMP_PHOTO　　従業員写真マスター
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/ad1e4035-4fe9-4ded-8595-1f08e2d8f3a9.png)
このテーブルに関連した画像ファイルGIF,BMPもIFSに生成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/4e82fc0d-3d1d-4b1f-a28f-659a8115cede.png)

### 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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/cf411ad5-8f85-436a-8b6e-ece76d193b27.png)

### 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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/d6967f3e-6dde-4e14-aeb1-f5471ce00e59.png)

### EMPPROJACT　従業員対プロジェクト活動表
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c71c57b5-89ca-41e1-8e92-c716a6832950.png)
73行ありました。

### IN_TRAY　　　イン・トレイ表
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/aade818d-f3f9-4e9f-92a2-75617e89b5a7.png)

### ORG　　　　　組織マスター
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/97b59944-2027-49bb-9fa8-4c3376eb9c59.png)

### PROJACT　　　プロジェクトアクティビティー表
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/aef9497e-c3b3-4694-9077-41783a412e1f.png)
65行ありました。

### PROJECT　　　プロジェクトマスター
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/80913253-7f8c-471a-8cf3-c8ca38c76736.png)

### SALES　　　　売上表
```--  SQLの生成 
--  バージョン:                   	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 ; 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c26d1746-0925-4cd7-95ec-6c461841afdf.png)

### STAFF　　　　スタッフマスター
```--  SQLの生成 
--  バージョン:                   	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 ;
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c9a3bab0-f2b5-4646-a85f-8481fc9e2126.png)