「相関副問合せ」の見分け方:「データベーススペシャリスト試験」戦略的学習のススメ(14)
あの“津崎さん”さんも保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は、「相関副問合せの見分け方」を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「SQLで「テーブルの結合」を行う」はこちら
相関副問合せ
出題頻度 午前II:●-- 午後I:--- 午後II:---
●--:過去14年間での過去問出題数が1〜9回
●●-:過去14年間での過去問出題数が10〜19回
●●●:過去14年間での過去問出題数が20回以上
Key Word
●相関副問合せの見分け方、相関副問合せ処理の流れ
相関副問合せの見分け方
下図のように、副問合せの文中で、副問合せの外側の属性(検索結果)を利用して検索している問合せを、相関副問合せと呼びます。
相関副問合せの処理の流れ
相関副問合せでは、以下のように特殊な流れの処理が行われます。
(1)外側のSELECT文を1行分だけ実行
外側の「SELECT 社員番号, 社員名 FROM 社員」について、社員テーブルの最初の1行目分(2回目には2行目分、3回目には3行目分、…)だけ実行し、結果を取り出します。
(2)取り出した表を副問合せに代入して実行
(1)で取り出した1行を副問合せの文中のS1に代入し実行します。ここで「S1.性別」は「男」となるため、代入するとSQL文は次のようになります。
SELECT MIN(生年月日) FROM 社員 AS S2 WHERE '男' = S2.性別
この処理の結果は、「1977/4/21」となります。
(3)外側のSELECT文における、1行目のWHERE句の判定を行う
(2)により、外側のSQL文は次のようになります。
SELECT 社員番号, 社員名 FROM 社員 AS S1 WHERE 生年月日 > 1977/4/21
この処理の結果は、以下の通りとなります。
尚、以上は外側のSQL文実行における1行目の処理結果ですが、以上(1)〜(3)を全ての行について行うと、相関副問合せの結果となります。
相関副問合せは(少なくとも過去14年間は)午後試験分野について過去に1問しか出題されておらず、午前分野でも過去に2種類しか出題されていません。理解するに越したことはありませんが、割り切って以下の問題の解答だけを暗記し、学習における優先度を下げることも有効な戦略です。
本試験過去問題による類題演習 | |
---|---|
□H23 午前II問11 | 社員表から最年長社員を除く社員を抽出する相関副問合せSQL文の完成(Chance問題) |
関連記事
- 春期試験の押さえどころを総ざらい!
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。 - データベーススペシャリスト試験(Database Specialist Examination)
ITエンジニアに必要な各種資格情報を解説する「@IT自分戦略研究所 資格辞典」。今回は、IPAが実施する情報処理技術者試験の「高度試験」9区分のうちの一つ「データベーススペシャリスト試験」を紹介する。 - 真のデータベースエンジニアを目指そう!
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】
Copyright © ITmedia, Inc. All Rights Reserved.