PREPARATION
受験対策

Silverの例題解説
「S3.1 SQL コマンド(UPDATE文)」

今回は、Silverの「S3 開発/SQL - S3.1 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;

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2021年月27日

解答と解説

各SQLを順に見ていきましょう。

1行目のcreate tableはid列が主キー、整数型のval列があるsampleテーブルを作成しています。
2行目のinsertはidの値が、1, 2, 3, 4, 5の5行のデータを作成しています。valにはすべてnullが入ります。
3行目のupdateは各行のval列をidと同じ値に設定しています。この時点で(id, val)の値はそれぞれ(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)となります。
4行目のupdateはvalの値を2倍にしていますが、where句でidの値が2より大きい列だけを更新の対象にしています。更新後の(id, val)の値はそれぞれ(1, 1), (2, 2), (3, 6), (4, 8), (5, 10)となります。
5行目のupdateはvalの値に1を加えていますが、where句でvalの値が4より小さい列だけを更新の対象にしています。更新後の(id, val)の値はそれぞれ(1, 2), (2, 3), (3, 6), (4, 8), (5, 10)となります。

最後のselect文のsum(val)はvalの値の合計ですので、2+3+6+8+10 すなわち29となります。

したがって、正解は29です。
 

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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