EMP サンプル表および DEPT サンプル表に対する作業表の作成
DSN8C10. EMP および DSN8C10. DEPT サンプル テーブルで行を挿入、更新、および削除する SQL ステートメントをテストする前に、これらのテーブルの複製を作成する必要があります。 この複写は、元のサンプル表を元のままの状態で残しておくために作成します。 これらの複写表は、作業表 と呼ばれます。
このタスクについて
このトピックでは、部門と従業員の作業表を作成し、作業表に別の表の内容を挿入する方法を説明します。
これらの各トピックでは、ユーザー自身の許可 ID を使用してログオンすることを前提としています。 許可 ID は、作成される各オブジェクトの名前に付けられます。 例えば、許可 ID が SMITH であり、表 YDEPT を作成する場合、 表の名前は SMITH.YDEPT になります。 表 DSN8C10. DEPT にアクセスする場合は、完全な名前で参照する必要があります。 ユーザー独自の表 YDEPT にアクセスする場合に唯一必要なことは、 その表を YDEPT と呼ぶことです。
CREATE TABLE YDEPT
LIKE DSN8C10.DEPT; CREATE UNIQUE INDEX YDEPTX
ON YDEPT (DEPTNO);サンプル表と同様に DEPTNO を主キーにする場合は、
そのキーを明示的に定義してください。 以下の例のように、ALTER TABLE ステートメントを使用します。ALTER TABLE YDEPT
PRIMARY KEY(DEPTNO);INSERT INTO YDEPT
SELECT *
FROM DSN8C10.DEPT;INSERT文の使用方法については、「INSERT文を使用して行を挿入する」 を参照してください。
CREATE TABLE YEMP
(EMPNO CHAR(6) PRIMARY KEY NOT NULL,
FIRSTNME VARCHAR(12) NOT NULL,
MIDINIT CHAR(1) NOT NULL,
LASTNAME VARCHAR(15) NOT NULL,
WORKDEPT CHAR(3) REFERENCES YDEPT
ON DELETE SET NULL,
PHONENO CHAR(4) UNIQUE NOT NULL,
HIREDATE DATE ,
JOB CHAR(8) ,
EDLEVEL SMALLINT ,
SEX CHAR(1) ,
BIRTHDATE DATE ,
SALARY DECIMAL(9, 2) ,
BONUS DECIMAL(9, 2) ,
COMM DECIMAL(9, 2) );このステートメントは、また、YEMP (WORKDEPT) の外部キー と YDEPT (DEPTNO) の主キーとの間の参照制約も作成します。 さらに、すべての電話番号が固有の番号になるよう制限します。
すでに作成されている表の定義を変更したい場合は、RENAME 文節を指定した ALTER TABLE ステートメントを使用してください。 また、すでに作成されている表名を変更したい場合は、 RENAME ステートメントを使用してください。
ある種の方法に限って、ALTER TABLE ステートメントを使用して表定義を変更可能です。 例えば、ある表の列に対して制約を追加およびドロップすることができます。 また、文字データ・タイプ、数値データ・タイプ、およびグラフィック・データ・タイプの範囲内で 列のデータ・タイプを変更することもできます。 列を表に追加できます。 ただし、ALTER TABLE ステートメントを使用して表から列をドロップすることはできません。