技術ブログ
目次
Oracle ACEの渡部です。 私が執筆したORACLE MASTER Silver DBA、Silver SQLに記載したサンプルデータを用意するためのSQL一式を掲載します。 手元のOracleデータベースまたはOracle Live SQLで、これらのSQL一式を実行すると、サンプルデータを簡単に用意できます。
サンプルデータが準備出来たら、黒本に掲載されているSQL文(SELECT文など)が実行できるようになります。
関連記事:Oracle Databaseを無償で使う方法いろいろ
DROP TABLE dept;
CREATE TABLE dept(
deptno NUMBER PRIMARY KEY,
dname VARCHAR(10),
loc VARCHAR(12));
TRUNCATE TABLE dept;
INSERT INTO dept VALUES(20, 'SALES1', 'NEW YORK');
INSERT INTO dept VALUES(30, 'SALES2', 'TRONT');
INSERT INTO dept VALUES(10, 'OPERATIONS', 'NEW YORK');
INSERT INTO dept VALUES(90, 'SPECIAL', 'HAWAII');
DROP TABLE emp;
CREATE TABLE emp(
empno NUMBER PRIMARY KEY,
ename VARCHAR(8),
job VARCHAR(10),
sal NUMBER,
comm_pct NUMBER(2,2),
bonus NUMBER,
deptno NUMBER);
INSERT INTO emp VALUES(1001, 'Tom' , 'SALESMAN' , 720, 0.50, NULL, 20);
INSERT INTO emp VALUES(1002, 'Abe' , 'ASSISTANT', 600, NULL, 1000, 20);
INSERT INTO emp VALUES(1003, 'Clark' , 'SALESMAN' , 720, NULL, 500, 20);
INSERT INTO emp VALUES(1004, 'Blake' , 'ASSISTANT', 720, NULL, 720, 10);
INSERT INTO emp VALUES(1005, 'Zakk' , 'MANAGER' , 900, NULL, 2000, 20);
INSERT INTO emp VALUES(1006, 'Bob' , 'SALESMAN' , 510, 0.25, NULL, 30);
COMMIT;
CREATE TABLE t1(ID number, name varchar2(12));
INSERT INTO t1 VALUES(1, 'Tom');
INSERT INTO t1 VALUES(2, 'O''neal');
INSERT INTO t1 VALUES(3, 'John');
COMMIT;
CREATE TABLE t_date1 ( dt date);
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';
CREATE TABLE t_date2 (dt date);
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
INSERT INTO t_date2
VALUES(TO_DATE('2021/01/02 10:11:12','YYYY/MM/DD HH24:MI:SS'));
COMMIT;
CREATE TABLE t_date3 (dt date);
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
show parameter NLS_DATE_FORMAT
INSERT INTO t_date3 VALUES(TO_DATE('2021/01/02 10:11:12'));
COMMIT;
CREATE TABLE t_date4 (dt date);
CREATE TABLE t_null2 (j NUMBER, s VARCHAR2(16));
INSERT INTO t_null2 (j, s) VALUES (1, NULL);
INSERT INTO t_null2 (j, s) VALUES (2, 'XXX');
COMMIT;
CREATE TABLE orders (
order_id NUMBER,
order_date DATE,
total NUMBER);
INSERT INTO orders VALUES(5632, TO_DATE('2021/01/05 10:11:12', 'YYYY/MM/DD HH24:MI:SS'), 1000);
INSERT INTO orders VALUES(7634, TO_DATE('2021/01/04 05:06:07', 'YYYY/MM/DD HH24:MI:SS'), 100);
INSERT INTO orders VALUES(3367, TO_DATE('2021/01/06 02:03:04', 'YYYY/MM/DD HH24:MI:SS'), 300);
COMMIT;
CREATE TABLE emp3 (empno NUMBER, ename VARCHAR2(16), sal NUMBER);
INSERT INTO emp3 VALUES(1001, 'Tom' , 720);
INSERT INTO emp3 VALUES(1002, 'Abe' , 600);
INSERT INTO emp3 VALUES(1003, 'Clark' , 720);
INSERT INTO emp3 VALUES(1004, 'Blake' , 720);
INSERT INTO emp3 VALUES(1005, 'Zakk' , 900);
INSERT INTO emp3 VALUES(1006, 'Bob' , 510);
COMMIT;
CREATE TABLE t_date(
id number,
dt DATE);
INSERT INTO t_date VALUES(1, TO_DATE('2021/01/05 10:11:12', 'YYYY/MM/DD HH24:MI:SS'));
INSERT INTO t_date VALUES(2, TO_DATE('2021/01/04 05:06:07', 'YYYY/MM/DD HH24:MI:SS'));
INSERT INTO t_date VALUES(3, TO_DATE('2021/01/06 02:03:04', 'YYYY/MM/DD HH24:MI:SS'));
COMMIT;
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';
CREATE TABLE products (
productsid NUMBER,
pname VARCHAR2(8),
list_price NUMBER,
min_price NUMBER);
INSERT INTO products VALUES(1001, 'ONIGIRI', 10, NULL);
INSERT INTO products VALUES(1001, 'TOFU', NULL, 10);
INSERT INTO products VALUES(1001, 'MILK', 100, 80);
INSERT INTO products VALUES(1001, 'OKARA', NULL, NULL);
COMMIT;
CREATE TABLE t_date (id NUMBER, dt DATE);
INSERT INTO t_date VALUES(1, '2021/01/02 10:11:12');
INSERT INTO t_date VALUES(2, '2021/01/01 08:09:10');
INSERT INTO t_date VALUES(3, '2021/01/03 15:16:17');
COMMIT;
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
create table t2 (n number);
insert into t2 values(1.4);
insert into t2 values(1.5);
insert into t2 values(1.6);
COMMIT;
create table t3 (n number);
insert into t3 values(NULL);
insert into t3 values(1);
insert into t3 values(2);
insert into t3 values(3);
COMMIT;
CREATE TABLE dept2 (deptid, deptname, location) AS SELECT * FROM dept;
DROP TABLE emp1;
DROP TABLE sal_hist;
CREATE TABLE emp1(
empno NUMBER PRIMARY KEY,
ename VARCHAR(8),
sal NUMBER);
INSERT INTO emp1 VALUES(2001, 'Jack' , 720);
INSERT INTO emp1 VALUES(2002, 'Ken' , 600);
INSERT INTO emp1 VALUES(2003, 'Maria' , 800);
COMMIT;
CREATE TABLE sal_hist (
empno NUMBER,
paydate date,
sal number
);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/06/25','YYYY/MM/DD'), 720);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/05/25','YYYY/MM/DD'), 720);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/04/25','YYYY/MM/DD'), 720);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/03/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/02/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2001, TO_DATE('2020/01/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/06/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/05/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/04/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/03/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/02/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2002, TO_DATE('2020/01/25','YYYY/MM/DD'), 600);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/06/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/05/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/04/25','YYYY/MM/DD'), 800);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/03/25','YYYY/MM/DD'),1000);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/02/25','YYYY/MM/DD'), 700);
INSERT INTO sal_hist VALUES(2003, TO_DATE('2020/01/25','YYYY/MM/DD'), 700);
create table t1 (n number, s varchar2(8));
create table t2 (a number, b varchar2(8));
INSERT INTO t1 VALUES(1, 'AAA');
INSERT INTO t1 VALUES(2, 'BBB');
INSERT INTO t1 VALUES(3, 'CCC');
INSERT INTO t2 VALUES(1, 'AAA');
INSERT INTO t2 VALUES(2, 'BBB');
INSERT INTO t2 VALUES(3, 'ZZZ');
COMMIT;
CREATE TABLE t1 (n number, s varchar2(8));
INSERT INTO t1 VALUES(1, 'AAA');
INSERT INTO t1 VALUES(2, 'BBB');
INSERT INTO t1 VALUES(3, 'CCC');
CREATE TABLE t3 (i number);
INSERT INTO t3 VALUES (1);
COMMIT;
CREATE TABLE t4 (n number, i number);
INSERT INTO t4 VALUES(1, 1);
INSERT INTO t4 VALUES(1, 2);
CREATE TABLE t5 (n number, s VARCHAR2(8));
INSERT INTO t5 VALUES(2, '1');
INSERT INTO t5 VALUES(2, '2');
COMMIT;
CREATE TABLE t3 (c1 NUMBER, c2 VARCHAR2(8), c3 c2 VARCHAR2(8));
CREATE TABLE account(id number, total number);
INSERT INTO account values(1001, 20000);
INSERT INTO account values(1002, 30000);
COMMIT;
CREATE TABLE account (
id NUMBER,
total NUMBER );
INSERT INTO account VALUES(1001, 13000);
INSERT INTO account VALUES(1002, 40000);
INSERT INTO account VALUES(1003, 20000);
COMMIT;
CREATE TABLE emp2 AS SELECT empno, ename, sal FROM emp WHERE deptno = 20;
CREATE TABLE t1 ( n NUMBER, s VARCHAR2(8), f VARCHAR2(8), x VARCHAR2(8));
INSERT INTO t1 VALUES(1,'AAA', 'SHOW', 'XXX');
INSERT INTO t1 VALUES(2,'BBB', 'HIDE', 'YYY');
INSERT INTO t1 VALUES(3,'CCC', 'SHOW', 'ZZZ');
COMMIT;
CREATE TABLE staff ( staffno NUMBER(4), staffname VARCHAR2(10), email VARCHAR2(32));
INSERT INTO staff VALUES(1, 'James', 'james@example.com');
INSERT INTO staff VALUES(2, 'Kyte', 'kyte@somewhere.net');
INSERT INTO staff VALUES(3, 'Joe', 'joe@abc.net');
INSERT INTO staff VALUES(3, 'Tim', 'tim@xyz.org');
COMMIT;
CREATE TABLE t_year_month (
year NUMBER(4),
month NUMBER(2),
CONSTRAINTS PK_YM PRIMARY KEY(year, month));
INSERT INTO t_year_month (year, month) VALUES(2021, 1);
INSERT INTO t_year_month (year, month) VALUES(2021, 2);
INSERT INTO t_year_month (year, month) VALUES(2021, 1);
COMMIT;
CREATE TABLE locations (
loc_id NUMBER PRIMARY KEY,
lname VARCHAR2(16));
INSERT INTO locations VALUES(1, 'NEW YORK');
INSERT INTO locations VALUES(2, 'TRONT');
INSERT INTO locations VALUES(3, 'HAWAII');
COMMIT;
CREATE TABLE dept1 (
deptno NUMBER(4) PRIMARY KEY,
dname VARCHAR2(10) NOT NULL,
loc_id NUMBER REFERENCES locations(loc_id)
);
INSERT INTO dept1 VALUES(10, 'OPERATIONS', 1);
INSERT INTO dept1 VALUES(20, 'SALES1', 1);
INSERT INTO dept1 VALUES(30, 'SALES2', 2);
INSERT INTO dept1 VALUES(90, 'SPECIAL', 3);
INSERT INTO dept1 VALUES(40, 'FINANCE', 4);
COMMIT;
CREATE TABLE locations (
loc_id NUMBER PRIMARY KEY,
lname VARCHAR2(16));
INSERT INTO locations VALUES(1, 'NEW YORK');
INSERT INTO locations VALUES(2, 'TRONT');
INSERT INTO locations VALUES(3, 'HAWAII');
CREATE TABLE dept1 (
deptno NUMBER(4) PRIMARY KEY,
dname VARCHAR2(10) NOT NULL,
loc_id NUMBER REFERENCES locations(loc_id)
);
INSERT INTO dept1 VALUES(10, 'OPERATIONS', 1);
INSERT INTO dept1 VALUES(20, 'SALES1', 1);
INSERT INTO dept1 VALUES(30, 'SALES2', 2);
INSERT INTO dept1 VALUES(90, 'SPECIAL',3);
COMMIT;
CREATE TABLE staff (
staffno NUMBER(4) CONSTRAINTS pk_staff PRIMARY KEY,
staffname VARCHAR2(10),
email VARCHAR2(32));
INSERT INTO staff VALUES(1, 'James', 'james@example.com');
INSERT INTO staff VALUES(2, 'Kyte', 'kyte@somewhere.net');
INSERT INTO staff VALUES(3, 'Joe', 'joe@abc.net');
COMMIT;
2020年から、ORACLE MASTER新体系が導入されています。 ORACLE MASTER新体系の大きな特徴は、試験がOracle Databaseのバージョンに1対1に対応しなくなったことです。
これにより、原則的にOracle Databaseのバージョンに依存しない本質的な内容が問われる形になっています。よって、特に理由がない限り、旧体系(Oracle 12c向け試験)ではなく、新体系の試験を受験することをお勧めします。
ORACLE MASTER 2019新資格体系とは – 18c/19c対応
コーソルでは、以下のORACLE MASTER関連書籍を執筆しています。 これらの書籍には、「PC操作すらおぼつかない新卒入社者であっても、研修開始後約3か月半でORACLE MASTER Bronzeを取得できる」教育ノウハウが注ぎこまれています。
ORACLE MASTER Bronze DBA 2019試験対策本を執筆しました
ORACLE MASTER Silver DBA 2019黒本を執筆しました
黒本著者によるORACLE MASTER Silver SQL 2019学習方法
ORACLE MASTER Gold DBA 2019試験対策本の発売日が決定しました
コーソルは、Oracle Databaseをはじめとするオラクル製品と仮想化製品に特化してプロフェッショナルサービスを提供する企業です。
コーソルは、エンジニアのスキルアップを重視する会社であり、それを十二分に踏まえて、人事制度や資格取得支援制度がつくられています。
制度面を整えるだけではなく、現場レベルで試行錯誤しながらエンジニア育成に奮闘しています。 コーソルは、会社創設3年後の2007年4月から毎年継続して新卒を採用しています。また、近年はおおむね4半期ごとに第二新卒を採用しており、 未経験者の育成には定評があります。
ORACLE MASTERの最上位試験であるPlatinumについては、Oracle Databaseについての多くの知識を問う丸2日間の実技試験であることによる有用性を高く評価し、若手エンジニアが成長するなかで取る資格として位置付けています。
その結果、コーソルはORACLE MASTER Platinumについて2016年6月以降 累計 No.1/7年連続単年 No.1を達成しています。
ORACLE MASTER Platinum取得に向けての取り組みについては、日本オラクル Oracle University様の人材育成活用事例として取り上げられています。