PREPARATION
受験対策

Silverの例題解説「開発/SQL」

このページではメルマガで紹介した例題のアーカイブを試験のレベルごとにまとめています。
是非、OSS-DBの学習にお役立てください。

修正等により、例題番号が連番ではない場合がございます。あらかじめご了承ください。

[開発/SQL - SQL コマンド(UPDATE文)] から

3.129

以下の一連のSQLを実行した。最後のsumが返す値は何か。

create table sample (id integer primary key, val integer);
insert into sample(id) values (1), (2), (3), (4), (5);
update sample set val = id;
update sample set val = val * 2 where id > 2;
update sample set val = val + 1 where val < 4;
select sum(val) from sample;


[開発/SQL - SQL コマンド(INSERT 文)] から

3.128

以下の一連のSQLコマンドを実行した。最後のSELECT文がcountとして返す値は何か。



[開発/SQL - SQL コマンド(SELECT 文)] から

3.127

以下は、売上日(sales_date)、担当者(sales_person)、売り上げ先(client)、品名(item)、売上金額(amount)などを記録するsales表の一部である。

売上金額の合計が100000より大きい担当者を一覧表示したい。以下のSELECT文の空欄x, yに入るキーワードはそれぞれ何か。

select sales_person from sales [x] sales_person [y] sum(amount) > 100000;


  1. GROUP BY
  2. HAVING
  3. JOIN
  4. ORDER BY
  5. WHERE

[開発/SQL - SQL コマンド(SELECT 文)] から

3.126

部署IDと部署名を格納したdept表、従業員ID、従業員名、生年月日、部署IDを格納したemp表があり、それぞれ以下のような構造になっている。

これらの表を結合し、従業員の一覧を表示するときに部署名を表示できるようにするSELECT文として適切なものを3つ選びなさい。

  1. select * from emp, dept join dept_id;
  2. select * from emp e, dept d where e.dept_id = d.dept_id;
  3. select * from emp natural join dept;
  4. select * from emp join dept using (dept_id);
  5. select * from emp e join dept d where e.dept_id = d.dept_id;

[開発/SQL - SQL コマンド(SELECT 文)] から

3.125

現在時刻を調べるためにpsqlを使って select current_timestamp; を実行したら、
current_timestamp
-------------------------------
2021-02-26 22:31:02.311235+09
(1 行)

という結果になったが、これを select current_timestamp from x; としたら
current_timestamp
-------------------
(0 行)

という結果になった。from xを指定したときに現在時刻が表示されない理由として最も適切なものを選びなさい。

  1. テーブルxが存在しない。
  2. テーブルxに対するSELECT権限がない。
  3. テーブルxにcurrent_timestampという列がない。
  4. テーブルxは存在するがデータが1行も入っていない。
  5. current_timestampを取得するときにfrom句を指定してはいけない。

[開発/SQL - トランザクションの概念(デッドロック)] から

3.124

デッドロックを回避する方策として適切なものを3つ選びなさい。

  1. 個々のトランザクションがなるべく短時間で終わるようにする。
  2. ロックを獲得したら、なるべく長時間それを保持する。
  3. 多数のトランザクションがなるべく同時に実行されるようにする。
  4. 複数のリソースをロックする際、ロックを獲得する順序を各トランザクションで同じにする。
  5. 不要なロックを取得しないようにする。

[開発/SQL - トランザクションの概念(トランザクション分離レベル)] から

3.123

PostgreSQLのトランザクション分離レベルについて、誤っている説明を1つ選びなさい。

  1. トランザクションの開始時に SET TRANSACTION ISOLATION LEVEL xxx などとすることで、トランザクション分離レベルを指定できる。
  2. トランザクション分離レベルとしてSERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITTED の4種類のいずれかを指定できる。
  3. デフォルトのトランザクション分離レベルは設定パラメータで指定するが、設定パラメータで指定されていないときはREPEATABLE READがデフォルトとなる。
  4. REPEATABLE READは反復不能読み取りを防ぐ分離レベルだが、ファントムリードも発生しなくなる。
  5. READ UNCOMMITTEDは確定していないデータの読み取りを許容する分離レベルだが、ダーティーリードは発生しない。

[開発/SQL - トランザクションの概念(トランザクションの構文)] から

3.122

以下の一連のSQLを実行した。最後のSELECT文が返す値は何か。
create table test(id integer);
begin;
insert into test(id) values(1);
commit;
begin;
insert into test(id) values(2);
savepoint x;
insert into test(id) values(3);
rollback to x;
insert into test(id) values(4);
commit;
begin;
insert into test(id) values(5);
savepoint x;
insert into test(id) values(6);
rollback;
commit;
select sum(id) from test;


[開発/SQL - 組み込み関数(文字列演算子・述語)] から

3.121

PostgreSQLでの文字列の処理について適切なものを3つ選びなさい。

  1. 文字列を結合するには || を使うことができる。例えば 'abc' || 'xyz' は 'abcxyz' となる。
  2. 文字列を結合するには + を使うことができる。例えば 'abc' + 'xyz' は 'abcxyz' となる。
  3. 文字列の比較に使う LIKE は大文字と小文字を区別しないので、例えば 'ABC' LIKE 'abc' は真となる。
  4. LIKEによる文字列比較では、_ と % がワイルドカードであり、例えば 'abcde' LIKE 'a_c%' は真となる。
  5. 正規表現との比較をするSIMILAR TOがサポートされているが、POSIX正規表現とは異なり、_ と % がワイルドカードである。例えば 'abcde' SIMILAR to 'a_c%' は真となる。

企業の基幹システムや業務システムでの OSS-DBの採用がますます拡大している中、 昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

応募者全員プレゼント!
オープンソース データベース標準教科書 -PostgreSQL-

関連資格