+ All Categories
Home > Documents > ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver...

ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver...

Date post: 22-Jan-2021
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
38
ORACLE MASTER Silver SQL 1Z0-071-JPN 受験準備ガイド オラクルユニバーシティ 2020 年 9 月 6 日
Transcript
Page 1: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

ORACLE MASTER Silver SQL

1Z0-071-JPN受験準備ガイド

オラクルユニバーシティ

2020年 9月 6日

Page 2: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

目次

0章 はじめに ................................................................................................ 5

0.0 資料の構成 .......................................................................................... 5

0.1 動作確認 ............................................................................................ 5

1章 リレーショナル・データベースの概要 .................................................................... 6

1.1 リレーショナル・データベースの理論的および物理的な側面の説明 ............................... 6

1.2 ERDのコンポーネントへの SQL SELECT文内の句の関連づけ ................................ 6

1.3 データベースと SQL の関係の説明................................................................. 6

2章 SQL SELECT文を使用したデータの取得 ...................................................... 6

2.1 列別名の使用 ...................................................................................... 6

2.2 SQL SELECT文の使用 .......................................................................... 6

2.3 連結演算子、リテラル文字列、代替引用符演算子、DISTINCT キーワードの使用 ......... 6

2.4 SELECT文での算術式と NULL値の使用 ...................................................... 6

3章 データの制限とソート .................................................................................. 7

3.1 式の演算子に対する優先順位規則の適用 ...................................................... 7

3.2 SQL で返される行の制限 .......................................................................... 7

3.3 置換変数の使用 ................................................................................... 7

3.4 DEFINE および VERIFY コマンドの使用 ......................................................... 7

4章 単一行関数を使用した出力のカスタマイズ .......................................................... 7

4.1 SQL SELECT およびWHERE句での文字関数を使用した文字列の操作 .................. 7

4.2 日付データを含む算術演算の実行 ................................................................ 7

4.3 ROUND、TRUNC および MOD関数を使用した数値の操作 ................................. 7

Page 3: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

4.4 日付関数を使用した日付の操作 .................................................................. 7

5章 変換関数と条件式の使用 ........................................................................... 8

5.1 データへの NVL、NULLIF および COALESCE関数の適用 ................................... 8

5.2 暗黙的および明示的なデータ型変換の理解 ..................................................... 8

5.3 TO_CHAR、TO_NUMBER および TO_DATE変換関数の使用 ........................... 8

5.4 複数の関数のネスト ................................................................................ 8

6章 グループ関数を使用した集計データのレポート....................................................... 8

6.1 グループ結果の制限 ................................................................................ 8

6.2 データ・グループの作成 .............................................................................. 8

6.3 グループ関数の使用 ................................................................................ 9

7章 複数の表からのデータの表示 ......................................................................... 9

7.1 自己結合の使用 ................................................................................... 9

7.2 様々なタイプの結合の使用....................................................................... 10

7.3 非等価結合の使用 ............................................................................... 12

7.4 外部結合の使用 ................................................................................. 12

7.5 デカルト積の理解と使用 .......................................................................... 13

8章 副問合せを使用した問合せの解決 ................................................................ 13

8.1 単一行の副問合せの使用 ....................................................................... 13

8.2 複数行の副問合せの使用 ....................................................................... 13

8.3 相関副問合せを使用した行の更新および削除................................................. 14

9章 集合演算子の使用 ................................................................................. 14

9.1 SELECT文の照合 ............................................................................... 14

Page 4: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

9.2 集合演算での ORDER BY句の使用 .......................................................... 15

9.3 INTERSECT演算子の使用 ................................................................... 15

9.4 MINUS演算子の使用 .......................................................................... 16

9.5 UNION および UNION ALL演算子の使用 .................................................. 16

10章 DML文を使用した表の管理 .................................................................... 16

10.1 データベース・トランザクションの管理 ............................................................ 16

10.2 トランザクションの制御 ........................................................................... 17

10.3 挿入、更新および削除操作の実行 ........................................................... 17

10.4 複数の表の挿入 ................................................................................ 17

10.5 MERGE文の実行 .............................................................................. 20

11章 DDL による表とその関係の管理 ................................................................. 21

11.1 表の説明と操作 ................................................................................. 21

11.2 列およびデータ型の説明と操作 ................................................................ 21

11.3 表の作成 ........................................................................................ 21

11.4 列の削除と UNUSED列の設定 .............................................................. 22

11.5 表の切り捨て .................................................................................... 22

11.6 一時表の作成と使用 ........................................................................... 22

11.7 外部表の作成と使用 ........................................................................... 24

11.8 制約の管理 ..................................................................................... 24

12章 ビューの管理 ....................................................................................... 25

12.1 ビューの管理 ..................................................................................... 25

13章 索引とシノニムとシーケンスの管理 ................................................................ 26

Page 5: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

13.1 索引の管理 ..................................................................................... 26

13.2 シノニムの管理 .................................................................................. 27

13.3 シーケンスの管理 ................................................................................ 28

14章 ユーザー・アクセスの制御 .......................................................................... 29

14.1 システム権限とオブジェクト権限との差別化 .................................................... 29

14.2 表に対する権限の付与 ......................................................................... 30

14.3 権限の付与とロールの付与の区別 ............................................................. 32

15章 データ・ディクショナリ・ビューを使用したオブジェクトの管理 ....................................... 33

15.1 データ・ディクショナリ・ビューの使用 .............................................................. 33

16章 異なるタイムゾーンでのデータの管理 ............................................................. 34

16.1 CURRENT_DATE, CURRENT_TIMESTAMP および LOCALTIMESTAMP の使用 34

16.2 INTERVALデータ型の使用 ................................................................. 36

Page 6: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

0章 はじめに

この資料は、ORACLE MASTER Silver SQL 2019 を取得するための試験である 1Z0-071-JPN

Oracle Database SQL試験の受験準備の参考資料です。

1Z0-071-JPN Oracle Database SQL試験の詳細についてはこちらをご確認ください。

0.0 資料の構成

試験内容チェックリストの各項目について、現在刊行されている 1Z0-061-JPN 12c SQL基礎 [12c

SQL] 試験用の試験対策書籍※でカバーしているか、カバーしていない場合は簡単な説明と製品ドキュ

メントへのリンクを記載しています。また、1Z0-061-JPN 試験と大きく出題傾向が変わっている項目につ

いては例題を掲載しています。

0.1 動作確認

SQL の動作確認をするには Oracle Live SQL が便利です。Oracle Live SQLはブラウザから無償

で使用できる SQL のテスト環境です。HR スキーマの EMPLOYEES表などのサンプルスキーマも使用で

きます。

※ 以下の書籍を対象としています(順不同)。

「オラクルマスター教科書 Bronze Oracle Database 12c SQL 基礎」 翔泳社

「【オラクル認定資格試験対策書】ORACLE MASTER Bronze[12c SQL基礎](試験番号:1Z0-

061)完全詳解+精選問題集 (オラクルマスタースタディガイド)」 SB クリエイティブ

「徹底攻略 ORACLE MASTER Bronze 12c SQL基礎問題集[1Z0-061]対応」 インプレス

Page 7: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

1章 リレーショナル・データベースの概要

1.1 リレーショナル・データベースの理論的および物理的な側面の説明

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。併せて、主キー、一意キー、外部

キーといった用語を押さえておくとよいでしょう。

1.2 ERDのコンポーネントへの SQL SELECT文内の句の関連づけ

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。併せて、エンティティ、リレーションシ

ップ、1対多、多対多、ERDといった用語を押さえておくとよいでしょう。

1.3 データベースと SQLの関係の説明

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。併せて、SQL、ACIDといった用

語を押さえておくとよいでしょう。

2章 SQL SELECT文を使用したデータの取得

2.1 列別名の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

2.2 SQL SELECT文の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。併せて、DUAL表について確認し

ておくとよいでしょう。

DUAL表からの選択

2.3 連結演算子、リテラル文字列、代替引用符演算子、DISTINCT キーワードの使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

2.4 SELECT文での算術式と NULL値の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 8: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

3章 データの制限とソート

3.1 式の演算子に対する優先順位規則の適用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

3.2 SQLで返される行の制限

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

3.3 置換変数の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

3.4 DEFINEおよび VERIFY コマンドの使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

4章 単一行関数を使用した出力のカスタマイズ

4.1 SQL SELECT およびWHERE句での文字関数を使用した文字列の操作

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

4.2 日付データを含む算術演算の実行

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

4.3 ROUND、TRUNCおよびMOD関数を使用した数値の操作

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

4.4 日付関数を使用した日付の操作

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 9: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

5章 変換関数と条件式の使用

5.1 データへの NVL、NULLIF および COALESCE関数の適用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

5.2 暗黙的および明示的なデータ型変換の理解

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

暗黙的なデータ変換について確認しておくとよいでしょう。

暗黙的なデータ変換の例

試験では、NLS_LANGUAGEがAMERICAN、NLS_DATE_FORMATがDD-MON-RRという前提

での出題が多いです。

5.3 TO_CHAR、TO_NUMBERおよび TO_DATE変換関数の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

5.4 複数の関数のネスト

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

6章 グループ関数を使用した集計データのレポート

6.1 グループ結果の制限

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。グループ結果の制限とは

HAVING句による制限のことです。

6.2 データ・グループの作成

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 10: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

6.3 グループ関数の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

7章 複数の表からのデータの表示

7.1 自己結合の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

学習は1Z0-061-JPN試験用の試験対策書籍をお使い頂きたいのですが、出題傾向が少し異なりま

す。1Z0-071-JPNでは、具体的なSELECT文を提示しての出題は比較的少なく、正誤問題が多くな

っています。例題を挙げておきます。

例題)自己結合に関して正しい記述はどれですか。

A. NATURAL JOIN句を使用する必要がある。

B. 列別名をつける必要がある。

C. 非等価結合にすることができる。

D. 二つの表の間での結合である。

正解:C

解説:自己結合は等価結合・非等価結合どちらでも記述できます。自己結合は一つの表に対して

二つの別名を付けてあたかも二つの表であるかのように見なして結合します。自己結合では表別名を

付ける必要がありますが、列別名は関係ありません。NATURAL JOIN句ではなくON句などを使いま

す。

Page 11: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

7.2 様々なタイプの結合の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

加えて、Oracle結合構文について、構文自体を覚える必要はありませんが、ANSI結合構文との比較

として、次のような特徴を押さえておきましょう。

Oracle結合構文とはOracle独自の結合構文です。Oracle 8iまではOracleではANSIの結合構文

をサポートしておらず、Oracle独自の結合構文で記述する必要がありました。9i以降はANSIの結合構

文、Oracle結合構文、どちらでも記述できます。なお、試験対策書籍に書かれているJOIN句を使った

構文はANSI結合構文です。

Oracle結合構文の例

等価結合

SELECT employee_id, first_name, department_name

FROM employees e, departments d

WHERE e.department_id=d.department_id ←結合条件をWHERE句で書きます

AND e.employee_id=100;

外部結合(従業員のいない部署も表示する)

SELECT department_id, department_name, first_name

FROM departments d, employees e

WHERE e.department_id(+)=d.department_id;

Page 12: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

ポイント

Oracle結合構文で記述しても、ANSIの結合構文で記述してもパフォーマンスは同じです。どち

らの構文を使った方がパフォーマンスが良い、悪いといったことはありません。

Oracle結合構文では、完全外部結合は記述できません。

Oracle結合構文には、自然結合に相当する構文はありません。(同じことを記述はできます

が、自然結合用の構文はありません。)

Oracle結合構文でもデカルト積を生成することは可能です。WHERE句で結合条件を書かな

ければデカルト積になります。

例題)Oracle結合構文およびANSI結合構文に関して正しい記述はどれですか。

A. Oracle結合構文はSQL:1999準拠のANSI結合構文よりもパフォーマンスが良い。

B. Oracle結合構文では完全外部結合をサポートしている。

C. SQL:1999準拠のANSI結合構文ではデカルト積の構文がある。

D. Oracle結合構文では非等価結合をサポートしていない。

正解:C

解説:SQL:1999準拠のANSI結合構文ではCROSS JOINでデカルト積を生成できます。

Oracle結合構文とSQL:1999準拠のANSI結合構文とでパフォーマンスは変わりません。Oracle結

合構文では左側外部結合、右側外部結合はサポートしていますが、完全外部結合(FULL

OUTER JOIN)はサポートしていません。Oracle結合構文では等価結合・非等価結合ともに記述

できます。

Page 13: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

7.3 非等価結合の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

学習は1Z0-061-JPN試験用の試験対策書籍をお使い頂きたいのですが、出題傾向が少し異なりま

す。1Z0-071-JPNでは、具体的な問合せを提示しての出題は比較的少なく、正誤問題が多くなって

います。例題を挙げておきます。

例題)非等価結合について正しい記述はどれですか。

A. SQL:1999準拠のANSI結合構文で記述できない。

B. 結合条件としてBETWEEN条件を記述することはできない。

C. Oracle結合構文では記述できない。

D. 表の別名は使用する必要はない。

正解:D

解説:非等価結合では表の別名は使用しても使用しなくてもどちらでも問題ありません。ただ、表の

別名をつけ、列を表別名で修飾した方がパフォーマンスは向上します。

非等価結合をANSI構文で記述する場合はON句に非等価の条件を記述します。非等価結合で

BETWEENを使用できますし、不等号も使用できます。Oracle結合構文でもWHERE句で非等価

の条件を指定することで記述できます。

7.4 外部結合の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 14: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

学習は1Z0-061-JPN試験用の試験対策書籍をお使い頂きたいのですが、出題傾向が少し異なりま

す。1Z0-071-JPNでは、具体的な問合せを提示しての出題は比較的少なく、正誤問題が多くなって

います。例題を挙げておきます。

例題)外部結合について正しい記述はどれですか。

A. 完全外部結合では結合条件が一致しない行のみを返す。

B. 内部結合と外部結合では、常に内部結合の方が返す行数が多くなる。

C. 外部結合が返す行は、内部結合が返す全ての行を含む。

D. 右側外部結合と左側外部結合は、常に同じ結果を返す。

正解:C

解説:内部結合では結合条件を満たす行だけが返されます。対して外部結合では結合条件を満た

す行に加えて、結合条件を満たさない、欠けている行も返します。

7.5 デカルト積の理解と使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

8章 副問合せを使用した問合せの解決

8.1 単一行の副問合せの使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

8.2 複数行の副問合せの使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 15: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

8.3 相関副問合せを使用した行の更新および削除

相関副問合せとは、主問合せで処理される行ごとに副問合せを評価するようなイメージです。(実際の

実行計画は必ずしもそうとは限りません。)

相関副問合せの例

UPDATE orders o

SET list_price =

(SELECT price FROM products

WHERE product_id=o.product_id)

WHERE order_date >='01-SEP-20'

この例では、20年9月1日以降のオーダーについて、list_priceの値をproducts表の値で更新していま

す。

EXISTS/NOT EXISTSを使った副問合せも相関副問合せです。

副問合せの使用方法

相関副問合せの使用方法: 例

9章 集合演算子の使用

9.1 SELECT文の照合

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

書籍によっては、副問合せの章に入っていることもあります。

UNION、UNION ALL、INTERSECT、MINUSの使い方です。

Page 16: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

9.2 集合演算での ORDER BY句の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

学習は1Z0-061-JPN試験用の試験対策書籍をお使い頂きたいのですが、出題傾向が少し異なりま

す。1Z0-071-JPNでは、具体的な問合せを提示しての出題は比較的少なく、正誤問題が多くなって

います。例題を挙げておきます。

例題)UNIONが含まれている複合問合せでのソートについて正しい記述はどれですか(2つ選択し

てください)。

A. ORDER BY句では、ソート列は列の位置で指定できる。

B. ORDER BY句では、ソート列は複合問合せの最後のSELECT文の列別名で指定できる。

C. 複合問合せの各SELECT文にORDER BY句を書くことができるが、最後のORDER BY句

のみが使用され、それ以外のORDER BY句は無視される。

D. ORDER BY句を記述しない場合、デフォルトでは1列目でソートされる。

正解:A、D

解説:複合問合せ(UNIONなどを含む問合せ)では、複合問合せの各SELECT文にORDER

BY句を書くことはできません。複合問合せの末尾に1回だけORDER BY句を書くことができ、ソート列

の指定は、列の位置、もしくは複合問合せの一番初めに出てくるSELECT文の列名や列別名で指

定します。

9.3 INTERSECT演算子の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 17: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

学習は1Z0-061-JPN試験用の試験対策書籍をお使い頂きたいのですが、出題傾向が少し異なりま

す。1Z0-071-JPNでは、具体的な問合せを提示しての出題は比較的少なく、正誤問題が多くなって

います。例題を挙げておきます。

例題)INTERSECT演算子について正しい記述はどれですか。

A. 複合問合せに含まれる各SELECT文の列名が同じでなければならない。

B. 複合問合せに含まれる各SELECT文の順番を入れ替えても結果は同じである。

C. NULLは無視して処理される。

D. ORDER BY句を指定しない場合、出力はソートされない。

正解:B

解説:INTERSECTは複合問合せに含まれる各SELECT文に共通のデータを返します。複合問合

せでは列数、データ型を揃える必要があります。

9.4 MINUS演算子の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

9.5 UNIONおよび UNION ALL演算子の使用

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

10章 DML文を使用した表の管理

10.1 データベース・トランザクションの管理

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 18: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

加えて、トランザクションの開始と終了について押さえておくとよいでしょう。

トランザクション

トランザクションの開始

トランザクションの終了

10.2 トランザクションの制御

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

10.3 挿入、更新および削除操作の実行

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

10.4 複数の表の挿入

「マルチテーブル・インサート」と呼ばれる機能です。「無条件のマルチテーブル・インサート」と「条件付きマ

ルチテーブル・インサート」があります。

条件付きマルチテーブル・インサート例

全顧客データが入ったCUSTOMERS表があるのですが、この表とは別に、東京圏の顧客データを入れる

CUSTOMERS_TOKYO表と大阪圏の顧客データを入れるCUSTOMERS_OSAKA表、更にそれ以

外のデータを入れるCUSTOMERS_OTHER表を作ることにしました。

CUSTOMERS表からそれぞれの表にデータをコピーします。

Page 19: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

INSERT ALL

WHEN region IN ('TOKYO','KANAGAWA','SAITAMA','CHIBA') THEN

INTO customers_tokyo VALUES(customer_id, first_name, region)

WHEN region IN ('OSAKA','KYOTO','HYOGO') THEN

INTO customers_osaka VALUES(customer_id, first_name, region)

ELSE

INTO customers_other VALUES(customer_id, first_name, region)

SELECT customer_id, first_name, region FROM customers;

WHENの条件を満たしたらそのINTO句で指定している表にデータを挿入します。ELSEでは、WHEN

の条件を満たさなかったデータが対象となります。

条件付きマルチテーブル・インサート例 INSERT FIRST

全顧客データが入ったCUSTOMERS表があるのですが、この表とは別に、生年が1960年以前の顧客

データを入れる表CUOTOMERS1960、生年が1961年から1980年の顧客データを入れる表

CUSTOMERS1980、生年が1981年から2000年の顧客データを入れる表CUSTOMERS2000を

作ることにしました。

CUSTOMERS表からそれぞれの表にデータをコピーします。

Page 20: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

INSERT FIRST

WHEN birthday<'01-JAN-1961' THEN

INTO customers1960 VALUES(customer_id, first_name, birthday)

WHEN birthday<'01-JAN-1981' THEN

INTO customers1980 VALUES(customer_id, first_name, birthday)

WHEN birthday<'01-JAN-2001' THEN

INTO customers2000 VALUES(customer_id, first_name, birthday)

SELECT customer_id, first_name, birthday FROM customers;

INSERT FIRSTの場合は、上から順にWHEN句が評価され、条件を満たした最初のWHEN句の

INTO句のみが実行され、後続のWHEN句はスキップされます。上記の例でINSERT ALLで記述して

しまうとCUSTOMERS1980には生年が1980年以前の顧客がすべて挿入されてしまうため、意図通り

になりません。

例題)マルチテーブル・インサートに関して正しい記述はどれですか(2つ選択してください)。

A. リモート表に対してマルチテーブル・インサートは実行できない。

B. ビューに対してマルチテーブル・インサートを実行できる。

C. 条件付きINSERT FIRSTで条件の順を変えても結果は変わらない。

D. ソース表で1行のデータを複数のターゲット表にコピーできる。

正解:A、D

Page 21: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

解説:リモート表に対してマルチテーブル・インサートは実行できません。また、ビューに対してマルチテー

ブル・インサートは実行できません。INSERT ALLを使用するとソース表で1行のデータを複数のターゲ

ット表にコピーできます。条件付きINSERT FIRSTでは条件の順が重要です。

INSERT ※「マルチテーブル・インサート」というキーワードで検索してください。

10.5 MERGE文の実行

MERGE文を使用すると、1つ以上のソースから行を選択し、表またはビューに対して更新および挿入を

行えます。

MERGE例

EMPLOYEES表のデータを元に、EMPLOYEES_TARGET表を更新します。

MERGE INTO employees_target t

USING employees e

ON (e.employee_id=t.employee_id)

WHEN MATCHED THEN

UPDATE SET t.first_name=e.first_name, t.salary=e.salary

WHEN NOT MATCHED THEN

INSERT (t.employee_id, t.first_name, t.salary)

VALUES (e.employee_id, e.first_name, e.saraly);

Page 22: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

例題)MERGE文に関して正しい記述はどれですか(2つ選択してください)。

A. WHEN MATCHED句を使用して、削除を指定できる。

B. 1つのMERGE文で複数の表を更新、挿入できる。

C. 複数の表を結合してソース行を生成できる。

D. ビューを使用してソース行を生成することはできない。

正解:A、C

解説:WHEN MATCHED句で削除を指定することもできます。複数の表を結合してソース行を生

成できます。1つのMERGE文で更新、挿入できる対象は1つの表です。ソース行の生成にビューを使

用することもできます。

MERGE

11章 DDL による表とその関係の管理

11.1 表の説明と操作

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

11.2 列およびデータ型の説明と操作

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

11.3 表の作成

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 23: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

11.4 列の削除と UNUSED列の設定

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

11.5 表の切り捨て

TRUNCATEというDDLを使用すると、表からすべての行を切り捨てることができます。TRUCATEは

DDLなのでロールバックはできません。また、FLASHBACK TABLEで取り戻すこともできません。DMLで

あるDELETEで全行を削除するのに比べて高速です。また、DROP TABLEと異なり、索引や制約など

の依存オブジェクトは削除されません。

例題)TRUNCATEについて正しい説明はどれですか。

A. WHERE句を指定することで、特定の行だけを切り捨てることができる。

B. FLASHBACK TO BEFORE DROP文を使って取り戻すことができる。

C. 拡張されたエクステントを解放できる。

D. 表に作成されていた索引は削除される。

正解:C

解説:TRUNCATEのデフォルトの動きでは、拡張されたエクステントは解放されます。TRUNCATE

は常に全行切り捨てとなります。FLASHBACK TO BEFORE DROPで取り戻すことはできません。

TRUNCATE TABLE

11.6 一時表の作成と使用

「グローバル一時表」について押さえておきましょう。

グローバル一時表は、表の定義自体は通常の表と同様に維持されますが、グローバル一時表に含まれ

るデータはセッション固有またはトランザクション固有となります。(平たく言うと、グローバル一時表に含ま

Page 24: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

れるデータは、データを挿入したセッションでのみ参照できます。そして、データは、セッションが切れると無く

なる、または、トランザクションが終了すると無くなります。)

グローバル一時表の作成

CREATE GLOBAL TEMPORARY TABLE 表名 (列定義)

ON COMMIT [DELETE|PRESERVE] ROWS

例題)グローバル一時表に関して正しい記述はどれですか(2つ選択してください)。

A. グローバル一時表に対するトランザクションはコミットできない。

B. 同じユーザーの別のセッションで同じグローバル一時表を参照すると同じデータを見られる。

C. セッションを切断した後も、グローバル一時表の定義は維持される。

D. グローバル一時表にビューや索引を作成できる。

正解:C、D

解説:グローバル一時表の定義は、セッションを切断した後も、通常の表のように維持されます。グロ

ーバル一時表にビューや索引などを作成できます。グローバル一時表に対するトランザクションは、コミッ

トもロールバックもできます。UNDOも生成されます。データはセッション固有もしくはトランザクション固

有なので、別のセッションからデータを参照することはできません。

一時表の概要

CREATE TABLE ※「GLOBAL TEMPORARY」キーワードで検索してください。

Page 25: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

11.7 外部表の作成と使用

外部表を使用すると、あたかもデータベースの表であるかのように外部ソースのデータにアクセスできます。

たとえば、カンマ区切りのデータのファイルがあったとして、わざわざSQL*Loaderでそのデータをデータベー

ス上の表にロードしなくても、外部表を使えば、あたかも表であるかのようにSQLでアクセスできます。(選

択、結合、ソートは行えますが、DMLは実行できません。)また、ORACLE_DATAPUMPアクセス・ドラ

イバを使用すると、データのロードだけでなくアンロードも可能です。

例題)外部表について正しい記述はどれですか(2つ選択してください)。

A. ORACLE_LOADERアクセス・ドライバを使用すると、CREATE TABLE AS SELECTを使

用してデータベース内の表のデータをアンロードできる。

B. メタデータはデータベース内に格納される。

C. フラット・ファイルからロードするときは、ORACLE_DATAPUMPアクセス・ドライバを使用する。

D. 外部表には索引を作成することはできない。

正解:B、D

解説:CREATE TABLE ・・・ ORGANIZED EXTERNALLYを使用して定義するのでメタデータ

はデータベースに格納されます。データそのものは外部ファイルです。

外部表のデータは外部ファイルに存在しているので索引は作成できません。データのアンロードを行う場

合はORACLE_DATAPUMPアクセス・ドライバを使用します。フラット・ファイルからロードするときは、

ORACLE_LOADERアクセス・ドライバを使用します。

外部表の概要

11.8 制約の管理

1Z0-061-JPN試験用の試験対策書籍をご参考になさってください。

Page 26: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

12章 ビューの管理

12.1 ビューの管理

ビューは仮想表とも呼ばれ、平たく言えばSELECT文に名前をつけて保存したものです。ビューを使うこと

で問合せを簡単にしたり、問合せでの列単位でのアクセス制御をしたりすることが可能となります。

次の例では、部門10に所属する社員の社員番号と名前のみを参照できるビューを作成しています。

CREATE VIEW emp10 AS SELECT employee_id, first_name FROM employees

WHERE department_id=10;

ビュー経由での更新も一部制限付きで可能です。実際の更新は実表に対して行われます。

例えばGROUP BY句を使用しているようなビュー経由での実表の更新は不可能です。

例題)ビューについて正しい記述はどれですか(2つ選択してください)。

A. 定義問合せにGROUP BY句が含まれているビュー経由でデータを更新することは可能であ

る。

B. WITH CHECK OPTIONを指定したビュー経由では、すべてのDMLが禁止されている。

C. まだ存在しない表に対してビューを作成することができる。

D. WITH CHECK OPTIONはDELETE文には意味がない。

正解:C、D

解説:存在しない表に対してビューを作成するにはFORCEオプションを使用します。WITH CHECK

OPTIONは、DMLの結果をビュー経由で確認できないDMLを許可しないという制約です。INSERT

やUPDATEには意味がありますが、DELETEには意味がありません。

Page 27: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

GROUP BY やDISTINCTが含まれるようなビュー経由でデータを更新することは不可能です。すべ

てのDMLを禁止するにはWITH READ ONLY句を付けます。

ビューの管理

13章 索引とシノニムとシーケンスの管理

13.1 索引の管理

索引を作成すると必要なデータにピンポイントでアクセスできるようになることで問合せを高速化できる可

能性があります。ただし、索引アクセスになるかどうかはオプティマイザが統計情報を元に決めています。ま

た、索引をつけると、索引列の列値が更新される度に索引エントリにも更新が行われます。なので、沢山

索引を作ればいいというものではありません。

例題)索引について正しい記述はどれですか(2つ選択してください)。

A. CREATE TABLE文の中でFOREIGN KEY制約を定義すると、その列に自動的に索引が

作成される。

B. 表の所有者と索引の所有者が異なることもある。

C. 索引のついている表を削除し、FLASHBACK TABLE 表名 TO BEFORE DROPでリカ

バリすると、索引もリカバリされる。

D. 索引をINVISIBLEに設定すると、その索引セグメントが削除される。

正解:B、C

Page 28: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

解説:INDEXオブジェクト権限を持っていれば他のスキーマの表に対して索引を作成できます。その

場合、表の所有者と索引の所有者が異なります。

索引のついている表を削除しRECYCLEBINに入ると、索引も同時に削除されRECYCLEBINに入り

ます。表をFLASHBACK TABLE TO BEFORE DROPでリカバリすると、表と同時に削除された索

引もリカバリされます。

CREATE TABLE文の中でPRIMARY KEY制約およびUNIQUE制約を定義すると、その列に自

動的に一意索引が作成されます。一意性を保証するために内部的に使用するためです。FOREIGN

KEY制約では索引は使用されません。

索引をINVISIBLEに設定すると索引セグメントはそのまま、索引エントリも維持されたまま、オプティマ

イザから不可視(=アクセスパスとして使われない)の状態になります。何故このような設定があるの

かというと、索引を実際に削除してしまう前のテスト用途です。INVISIBLE化でその索引を使用しな

いことでパフォーマンス劣化した場合は、一瞬でVISIBLEに戻すことができます。

索引の管理

13.2 シノニムの管理

シノニムはオブジェクトの別名です。所有者のみが使用できるプライベート・シノニムと全ユーザーが使用で

きるパブリック・シノニムとがあります。シノニムを使うことでオブジェクト名が変更されてもアプリケーションの改

修が不要となります。またシノニムを使うことで、オブジェクトをスキーマで修飾する必要もなくなります。ユー

ザーはシノニムなのか表なのかを意識せずに使用することができます。

Page 29: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

例題)シノニムについて正しい説明はどれですか(2つ選択してください)。

A. 表を削除すると、その表のシノニムも同時に削除される。

B. DROP SYNONYM文でシノニムを削除すると、そのシノニムが指しているオブジェクトも同時

に削除される。

C. パブリック・シノニムを作成するには、CRAETE PUBLIC SYNONYMシステム権限が必要で

ある。

D. PL/SQLパッケージに対してシノニムを作成することができる。

正解:C、D

解説:パブリック・シノニムはデータベースの全ユーザーから使用できるシノニムなので、作成にはそれな

りのシステム権限が必要です。シノニムは表、ビュー、シーケンス、PL/SQLパッケージ、別のシノニムなど

に対して作成できます。表を削除してもシノニムは削除されません。その逆も同じです。

シノニムの管理

13.3 シーケンスの管理

シーケンスは順序とも呼ばれ、主キーのような番号を生成するのに便利です。値を予めキャッシュしておく

ことで高速に値を発行できます。

CREATE SEQUENCE文で作成します。CREATE SEQUENCE文のオプションも念のため確認してお

くとよいでしょう。

Page 30: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

例題)シーケンスについて正しい記述はどれですか(2つ選択してください)。

A. トランザクションをロールバックしたとき、シーケンス番号も元に戻される。

B. 複数のセッションから同一のシーケンスを同時に使うことができる。

C. 新しいシーケンス番号を発番するときは、シーケンス名.NEXTVALという疑似列を使用する。

D. 2, 4, 6, 8 のような偶数だけのシーケンス番号を発行することはできない。

正解:B、C

解説:複数のセッションで主キー値を発番する必要があるような場合もシーケンスを使用できます。シ

ーケンス番号を発番するときはシーケンス名.NEXTVALです。INSERT文のVALUES句にも記述で

きます。CREATE SEQUENCE文のINCREMENT BY句でシーケンス番号の増分を指定できま

す。トランザクションをロールバックすると、発行済のシーケンス番号は欠番となります。またインスタンス

障害が発生した場合、キャッシュされていたシーケンス番号はすべて欠番となります。

CREATE SEQUENCE

14章 ユーザー・アクセスの制御

14.1 システム権限とオブジェクト権限との差別化

権限を持っていないとユーザーはデータベースに接続することすらできません。表を作成するのも権限が必

要です。データベースに接続するにはCREATE SESSIONシステム権限、表を作成するにはCREATE

TABLEシステム権限が必要です。通常はデータベース管理者がシステム権限を付与します。

自分が所有している表(自分のスキーマの表)はSELECTもINSERTもDELETEもできますが、他の

ユーザーが所有している表(他のスキーマの表)にアクセスするには、その表の所有者から権限を付与さ

れている必要があります。その表のSELECTオブジェクト権限やINSERTオブジェクト権限です。

Page 31: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

例題)次の操作を行うための権限は、システム権限、オブジェクト権限、どちらですか。正しい組合せ

を選択してください。

あ:データベース内の任意のスキーマの表に対してUPDATEを行う。

い:別のスキーマのシーケンスを使って番号を発番する。

う:PUBLIC SYNONYMを作成する。

え:別のスキーマの表に索引を作成する。

A. システム権限・・・あ、う オブジェクト権限・・・い、え

B. システム権限・・・あ、い オブジェクト権限・・・う、え

C. システム権限・・・あ、え オブジェクト権限・・・い、う

D. システム権限・・・い、え オブジェクト権限・・・あ、う

正解:A

解説:任意のスキーマの表に対してUPDATEを行うには、UPDATE ANY TABLEシステム権限が

必要です。PUBLIC SYNONYMを作成するにはCREATE PUBLIC SYNONYMシステム権限が

必要です。

別のスキーマのシーケンスを使って番号を発番するのは、そのシーケンスのSELECTオブジェクト権限が

必要です。別のスキーマの表に索引を作成するのは、その表に対してINDEXオブジェクト権限が必要

です。

ユーザー権限とロール

14.2 表に対する権限の付与

権限を付与するにはGRANT文、取り消すにはREVOKE文を使用します。(データ制御言語に分類さ

れます。)

Page 32: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

HRユーザーが、SCOTTユーザーにHR.EMPLOYEES表のSELECT権限を与えるには次のようなコマン

ドを発行します。

GRANT SELECT ON hr.employees TO scott;

もし、HRユーザーが、SCOTTユーザーに対して、その権限をまた別のユーザーに与えることを許すのであ

れば、

GRANT SELECT ON hr.employees TO scott WITH GRANT OPTION;

のようにWITH GRANT OPTIONをつけます。

例題)次のコマンドでHRユーザーがSCOTTユーザーに権限を付与しました。

GRANT SELECT ON hr.departments TO scott WITH GRANT OPTION;

正しい説明はどれですか(2つ選択してください)。

A. SCOTTユーザーはKINGユーザーにWITH GRANT OPTION付でこの権限をまた付与で

きる。

B. SCOTTユーザーはKINGユーザーにこの権限をまた付与できるが、そのときにWITH

GARNT OPTIONは付けられない。

C. SCOTTユーザーはhr.department表をSELECTすることができる。

D. SCOTTユーザーがhr.department表をSELECTするには、hr.departments表の索引

へのアクセス権限も付与される必要がある。

正解:A、C

Page 33: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

解説:WITH GRANT OPTION付きで付与されたオブジェクト権限は、別のユーザーにまた付与で

きますが、そのときにWITH GRANT OPTIONを付けることも可能です。なお、システム権限の場合

は、権限受領者が第三者にまた付与することを許す場合は、WITH ADMIN OPTIONを付けま

す。索引へのアクセス権限というものはありません。

GRANT

14.3 権限の付与とロールの付与の区別

ロールとは、英語で役割、役目という意味がありますが、まさに役割を果たすために必要な権限をまとめた

ものがロールです。ロールには、システム権限、オブジェクト権限、他のロールを含めることができます。

例題)ロールについて正しい記述はどれですか(2つ選択してください)。

A. すべてのロールはSYSTEMユーザーによって所有される。

B. ロールにオブジェクト権限を付与するときにWITH GRANT OPTIONを付けることはできな

い。

C. ロールをPUBLICに付与することはできない。

D. 一つのGRANT文でシステム権限とオブジェクト権限の両方をロールに付与することはできな

い。

正解:B、D

解説:WITH GRANT OPTIONを付けることができるのは、ユーザーまたはPUBLICに付与する場

合だけです。一つのGRANT文でシステム権限とオブジェクト権限の両方をロールに付与することはでき

ません。

ロールはシステム・オブジェクトなので、所有という概念はありません。ロールをPUBLICに付与すると、す

べてのユーザーがそのロールを使用できます。

Page 34: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

CREATE ROLE

15章 データ・ディクショナリ・ビューを使用したオブジェクトの管理

15.1 データ・ディクショナリ・ビューの使用

データ・ディクショナリはSYSスキーマにあるデータベースに関する管理メタデータの表の集合で、DDLが実

行されるたびに内部で更新されます。表などのオブジェクトの情報や権限の付与の情報などはデータ・ディ

クショナリに格納されており、操作を行う際に内部的に参照されています。このデータ・ディクショナリを参照

するためのビューがDBA_*やALL_*、USER_*といった名前のデータ・ディクショナリ・ビューです。

例題1)データ・ディクショナリについて正しい記述はどれですか。

A. DBAは定期的に手動でデータ・ディクショナリを更新する必要がある。

B. データ・ディクショナリはSYSTEMユーザーに所有されている。

C. ALL_*で始まるデータ・ディクショナリ・ビューにはDBAロールを持つユーザーのみがアクセスでき

る。

D. データ・ディクショナリはSYSTEM表領域に格納されている。

正解:D

解説:データ・ディクショナリはSYSユーザーに所有され、SYSTEM表領域に格納されています。

ALL_*で始まるデータ・ディクショナリ・ビューはそのユーザーがアクセスできるオブジェクト(自分が所有

しているオブジェクト、および、アクセス権限を付与されている他人の所有オブジェクト)について表示し

ます。データ・ディクショナリは内部的に更新されるので、手動で更新することはできません。

データ・ディクショナリの概要

Page 35: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

16章 異なるタイムゾーンでのデータの管理

16.1 CURRENT_DATE, CURRENT_TIMESTAMP および LOCALTIMESTAMPの使用

例えばロンドンにあるデータベース・サーバーにサンフランシスコからアクセスすることを考えてみましょう。時

刻を入力するときに、それぞれの場所のタイムゾーンでデータを入力しつつ、データベース上では一貫性の

ある正確な時刻で格納したいですよね。このような複数のタイムゾーンにまたがる環境で簡単に日時デー

タを扱うための仕組みが用意されています。

たとえば、Live SQLで以下の問合せを発行してみると、タイムゾーンについて簡単に試せます。

Live SQLのデータベース・タイムゾーン・オフセットは+00:00、セッションのタイムゾーンはデフォルトでは

US/Pacificになっています。

SELECT DBTIMEZONE FROM dual;➡データベースのタイムゾーンの確認

+00:00

SELECT SESSIONTIMEZONE FROM dual;➡セッションのタイムゾーンの確認

US/Pacific

ALTER SESSION SET TIME_ZONE='+09:00';➡セッション・タイムゾーンを変更

SELECT SESSIONTIMEZONE FROM dual;➡セッションのタイムゾーンの確認

+09:00

SELECT SYSDATE FROM dual;➡DBTIMEZONEで返す

05-SEP-20

SELECT SYSTIMESTAMP FROM dual;➡DBTIMEZONEで返す

05-SEP-20 08.49.59.366301 PM +00:00

Page 36: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

SELECT CURRENT_DATE FROM dual;➡SESSIONTIMEZONEで返す

06-SEP-20

SELECT CURRENT_TIMESTAMP FROM dual;➡SESSIONTIMEZONEで返す

06-SEP-20 05.50.00.223637 AM +09:00

例題1)現行セッションのタイムゾーンを返す関数はどれですか。

A. DBTIMEZONE

B. SYSTIMEZONE

C. CURRENT_TIMEZONE

D. SESSIONTIMEZONE

正解:D

解説:現行セッションのタイムゾーンはSESSIONTIMEZONE、データベース・サーバーのタイムゾーン

はDBTIMEZONEで確認できます。

SYSTIMEZONE, CURRENT_TIMEZONEという関数はありません。

SESSIONTIMEZONE

DBTIMEZONE

時刻データを格納するときに使うデータ型についても押さえておきましょう。

Page 37: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

DATEデータ型は年、月、日、時、分、秒を格納することができます。TIMESTAMPデータ型はDATE

型の拡張で小数秒まで格納することができます。TIMESTAMP WITH TIME ZONEデータ型は

TIMESTAMP型のバリアントで、値にタイムゾーン・リージョン名またはタイムゾーン・オフセットが含まれま

す。TIMESTAMP WITH LOCAL TIME ZONEデータ型もTIMESTAMP型のバリアントですが、こち

らはデータベース・タイムゾーンで正規化した値をデータベースに格納します。

TIMESTAMPデータ型

TIMESTAMP WITH TIME ZONEデータ型

TIMESTAMP WITH LOCAL TIME ZONEデータ型

16.2 INTERVAL データ型の使用

期間データを格納するときに使用します。分析関数との親和性が高いので、INTEVALデータを使うと移

動平均などの算出が容易になります。

何年何か月といった期間を格納するINTERVAL YEAR TO MONTHデータ型と何日何時間何分何

秒(小数秒まで)といった期間を格納するINTERVAL DAY TO SECONDデータ型とがあります。

例題)INTERVALデータ型について正しい記述はどれですか。

A. INTERVAL YEAR TO MONTH列は月次間隔のみをサポートしている。

B. INTERVAL YEAR TO MONTH列のYEARフィールドに負の値を入れることができる。

C. INTERVAL DAY TO SECOND列には小数秒は入れることができない。

D. INTERVAL DAY TO SECOND列には1日以内の時間間隔のみをサポートしている。

正解:B

Page 38: ORACLE MASTER Silver SQL 1Z0-071-JPN受験準備ガイド...この資料は、ORACLE MASTER Silver SQL 2019を取得するための試験である1Z0-071-JPN Oracle Database SQL試験の受験準備の参考資料です。

Copyright © 2020, Oracle and/or its affiliates

解説:INTERVAL YEAR TO MONTHデータ型は月次間隔のみでなく、年次間隔もサポートして

います。また、YEARやMONTHフィールドには正の値も負の値も入れることができます。

INTERVAL DAY TO SECONDデータ型は何日何時間何分何秒(小数秒まで)という期間を

格納することができます。

例題)あなたは保険会社の契約管理の表を設計しています。保険の契約期間ごとの利率を設定す

る必要があります。保険の契約期間の列には次の要件を満たす必要があります。

・契約の最小単位は月である。

・変換関数を使用せずに日付演算をサポートできるようにする。

どのデータ型を使用しますか。

A. INTERVAL DAY TO SECOND

B. INTERVAL YEAR TO MONTH

C. TIMESTAMP

D. TIMESTAMP WITH LOCAL TIMEZONE

正解:B

解説:契約の最小単位が月ということから、何年何か月という期間を扱うと想定されます。

INTERVAL YEAR TO MONTHデータ型

INTERVAL DAY TO SECONDデータ型


Recommended