はいどうも、中小企業診断士のたかぴーです!
今回は、経営情報システムの科目の中でも、ほぼ毎年出題される超重要論点SQLをテーマに解説していきたいと思います。
SQLと聞くと、プログラミングなんてやったことないから自分には無理だと、最初から諦めてしまう受験生の方も多いのではないでしょうか。
確かに出題範囲は広いですが、ひとつひとつの内容はそこまで難しくはないので、しっかりと対策さえすれば、確実に得点源にできる、ボーナスステージのような論点です。
この記事では、診断士試験に必要なSQLの基礎のキソから応用まで一気に解説していきます。ぜひ最後までお読みください。
✓ SQLの定義と特徴
✓ SQLの基本句
✓ WHERE句で使用する代表的な比較演算子
✓ WHERE句で使用する代表的な論理演算子
SQLとは?
まず最初に、そもそもSQLとはいったい何なのかを確認してきましょう。SQLは一言で言うと、データベースを操作するための専用の言語です。
データベース、特にリレーショナルデータベースと呼ばれるものは、Excelのような表の形式でデータを管理しています。この表の中から、例えばパソコンのデータだけを取り出したい、さらにはパソコンの売上の合計を知りたい、または10万円を超える売上の店舗を抽出したい、といった場合にSQLが活躍します。
Excelに詳しい方からすると、そんなのExcelでできるのでは?と思うかもしれませんが、SQLを使って操作するデータベースは100万行を超えてるようなイメージです。そもそもExcelで開けないような膨大なデータから特定のデータを抜き出したり、集計処理を加えるのがSQLだというわけですね。


経営情報システムの頻出用語を10年分集計
IT・ネットワーク・DB用語を出題回数で可視化。AI連携もOK。
SQLの基本句
それでは、SQLの具体的な書き方を確認していきましょう。SQLでは基本的に、SELECT、FROM、WHEREの3つを使ってデータを抽出します。
SELECTは、どの列(カラム)からデータを取り出すかを指定し、FROMでは、どの表(テーブル)からデータを持ってくるかを指定し、WHEREは、どの行(レコード)に絞り込むかを指定します。

これだけだとイメージが付きにくいと思いますので、以下の社員テーブルを使って確認してみましょう。このテーブルにはNo,氏名,部署という3つの列があります。ここで、営業部の人の氏名と部署だけを知りたいという命令を作るとします。
まず、氏名と部署の情報が欲しいので、SELECT句で2つの列を指定します。
その次に、社員テーブルから探しに行きますので、FROM句でテーブルを指定します。最後に、営業部で絞り込みたいので、WHERE句で部署= ‘営業’;というように絞り込みます。
そうすると、社員テーブルから、営業部に所属する山田さんと伊藤さんだけを出力することができます。
SQLではこのような手順で必要なデータを出力します。各構文の要素が何を示しているかさえわかっていれば、やっていることはそこまで難しいものではないことが分かるかと思います。


過去問データブックで1次試験は何点取れる?
令和7年の本試験で実際に検証してみました
検証結果を読む →WHERE句で使用する代表的な比較演算子
条件を絞り込むWHERE句では、比較演算子をよく使います。比較演算子とは、条件に合うかを判別する記号ですね。
代表的な比較演算子は以下の通りです。記号自体は数学で習ったものとほぼ同じです。気を付けるのは、=が付いている符号では、その数字も含む点と、あまり見慣れない<>(等しくない)の符号を押さえておくくらいですかね。

在庫表テーブルの例で、具体的な使用例を確認しておきましょう。以下のようなSQL文を入力したとしましょう。SELECT句で商品名と在庫数を出力しようとしていることが分かりますね。今回着目して欲しいのが、WHERE句で在庫数5個以下で絞り込もうとしている点です。
このような書き方をすることで、表のオレンジを付けた行に絞り込むことができます。
結果として抽出されるのは、5個以下の牛乳とパンになるというわけですね。ここで大事なのは、<= は以下なので、5個ぴったりの牛乳も含まれるという点です。試験問題では、この境界線の数値が入るか入らないかが、正解を分けるポイントになることがありますのでご注意ください。

WHERE句で使用する代表的な論理演算子
続いて、論理演算子です。論理演算子は、条件同士をくっつけて、絞り込みをより細かく指定するための記号です。AND,OR,NOTの3つがあります。
ANDはAとBを両方とも満たすという条件、ORはAまたはBのどちらかを満たすという条件、NOTは一方を除くという条件を表しています。英単語の意味そのままなので分かりやすいですね。

具体的な使用例も見ておきたいと思います。以下のような商品テーブルで、SQL文を入力してみます。WHERE句に注目してみると、カテゴリが弁当という条件と、単価が500円以上という条件をANDで繋いでいます。
そうすると、弁当カテゴリの中で唯一500円を超えているのは、プレミアム弁当だけですので、このオレンジを付けた行だけが出力されるというわけですね。

以上、ここまでがSQLの基本的な考え方です。試験問題では、これに加えて、この次に紹介する内容も出題されますので、頑張ってついてきてください。
GROUP BY句とは?
まずはGROUP BY句を見てきましょう。これは指定した列のデータをまとめ、集計処理を行うための句です。
例えば商品テーブルがあった時に、りんごとみかんのグループに分けた上で、そのグループごとの売上の合計を知りたい、といったときにGROUP BYが活躍します。
ここで、GROUP BYで使用する代表的な集合関数を紹介したいと思います。
集合関数は、計算方法というイメージで捉えていただければ十分です。最大値、最小値を取得するMAX,MINや、平均値、合計値を取得するAVG,SUMの他、行数を取得するCOUNT関数などがあります。この辺りはExcelの関数を普段から使っている方は違和感ないかもしれませんね。

さて、具体的な使用例です。例えば、商品名ごとに、売上の合計を計算したいという場合は、以下のようなSQL文を入力することになります。
集合関数がSELECT句に記載されている点に注意ですね。最後のGROUP BYで商品名を指定していますので、出力としては、商品名が同じであればグループ化され、その商品名と合計の売上高が出てきます。
GROUP BYは指定した列の項目でまとめる命令で、まとめた上で、何を取得するのかは集合関数で指定しています。やっていることは難しいものではありませんが、SQL文のどこに何を入力するかは、少しややこしいので、立ち止まってよく確認しておいてください。

GROUP BY句に関連して、ORDER BY句も確認したいと思います。これは出力データの並び替えの話です。ASCは昇順、DESCは降順への並び替えを指定します。
先ほどのSQL文の最後にORDER BYを加えるだけです。こうすることで、合計売上の大きい順に並び替えられた状態で出力されます。SQLはデフォルトでは昇順で出力されますので、あえて大きい順で出力するためのDESCが診断士試験ではよく問われる傾向ですね。

最後にAS句です。これは列に別名をつける機能です。例えば、先ほどのSQL文で、SUM(売上) AS 売上合計 と書けば、結果の表の見出しが売上合計となって分かりやすくなります。
ORDER BYもAS句もちょっとした機能ではありますが、意外と診断士試験ではよく出てきますので、内容はしっかりと押さえておきましょう。

UNION句とは
次はUNION句です。これは2つのSELECT文の結果を縦につなげる命令です。
例えば、A支店とB支店の2つの売上表があったとします。これらの表を1つのリストにしたい場合、UNION句を使うというわけですね。
A支店の売上表から、日付、商品ID、売上の3項目を取得し、B支店の売上表からも同じ内容を取得するという内容を、UNION句で繋げていますね。
試験本番では、コードを見て読み取れるというだけでなく、自分でコードを書けるくらいの知識レベルが求められますので、書き方についてもよく確認いただければと思います。

CASE式とは?
それでは最後にCASE式です。複数の条件に応じてデータ処理を個別に分岐させる際に使用します。今回解説する中では、最も複雑な内容ですね。
例えばあるデータがあった時に、条件Aに対しては処理Aを実行し、条件Bに対しては処理Bを実施、それ以外のものには処理Cを実行する、といったように、複数条件ごとに異なる処理を実行したい場合に使用する命令文です。

具体例を確認してみましょう。例えば、社員ごとの売上のデータがあったとしましょう。ここで、SELECT句で社員名と売上の他に、CASE式で出力カラムを追加します。
CASE式の中身には、WHENとTHENを並べていきます。WHENはもし~なら、THENはその結果を書く構文なので、今回の場合は、売上が1000以上であれば、Aランクというフラグを付けるという意味になりますね。
2行目については、売上500以上であれば、Bランクにすると書いています。
最後のELSEは、それ以外という意味で、上記の条件に合致しない場合はCランクとなります。
ENDでCASE文の終了を明記していますが、”AS ランク”で、出力される列のカラム名をランクにするように指示しています。
こうして出力される内容としては、ランク列が追加されて、かつ社員の売上ごとに条件で指定したランクフラグが付いていることが分かるかと思います。

確かにSQL文は複雑ではありますが、意味が分かるとやっていることは理解できるかと思います。少なくとも構文の読み取りはできるように、よく復習いただければと思います。
過去問を解いてみよう(平成22年度 第12問 改題)
それではここまでの内容を、過去問を解いて復習してみましょう。
次のSQL文を実行した結果として、最も適切なものを下記の解答群から選べ。
SELECT 顧客ID
FROM 売上表
WHERE 商品名 LIKE ‘野菜%’
AND 単価 > 100;〔解答群〕
ア C002
イ C002, C004
ウ C001, C002, C004
エ C001, C002, C003, C004
SQL文を実行した結果として適切なものを選ぶ問題ですね。SQL文をみると、SELECT句で顧客IDを、FROM句で売上表を指定しているので、売上表から顧客IDを出力しようとしていることが読み取れます。
その後のWHERE句を見てみると、「商品名 LIKE ‘野菜%’」と記載しています。これは、商品名が”野菜”で始まるものに絞り込むことを指示しています。
さらにSQL文では、単価が100円を超えるものという条件もANDで追加されています。ですので、商品名が「野菜」で始まるものの中で、単価が100円より大きいもので絞りこまれます。符号に=が無いので、100円のものは含まれない点に注意してください。
以上から、選択肢イがこの問題の正解となりますね。
今回は解説パートで触れられなかったLIKEについても確認できる問題でしたが、SQLでは多様な内容が出題されています。ぜひ、他の年度の問題にもチャレンジして、理解を深めていただければと思います。
まとめ
今回解説したSQLは、データベースを操作するための専門言語なのでした。
基本句としては、SELECT、FROM、WHERE句の3つがあるのでしたね。試験まで時間がない方は、最低でもここだけは押さえていただければと思います。また、比較演算子と論理演算子も解説しましたが、ここまでが基本的な内容となります。
その他、GROUP BYやUNION、CASE式も解説しました。ここまで押さえておけば、少なくとも診断士試験対策としては十分だと思います。あとは過去問を解きながら細かいところを補足いただくだけですね。

ぜひ過去問とこの記事を相互に確認しながら、理解を深めていただければと思います。
それでは今回の記事はここまでとしたいと思います。ここまでお読みいただき、ありがとうございました。

経営情報システム 過去問データブック&単語帳(2026年度版)
- 頻出テクノロジー用語を出題回数で序列化
- 生成AI(NotebookLM等)連携で自作クイズ化
YouTube動画で、さらに詳しく解説中!
中小企業診断士試験の各種論点解説、学習ノウハウ、最新情報をお届けします。受験対策に役立つコンテンツを毎週更新中です。さらに隔週開催のYouTubeLIVEで受験相談会を実施中!
チャンネル登録はこちら →✉ 無料メールマガジン
試験まで、たかぴーが毎月伴走します。
中小企業診断士たかぴーが毎月届けるメールマガジン。その時期にピッタリな勉強計画・直前対策・2次試験対策に関する情報を無料でお届け。
登録無料 | 月1回配信 | 配信停止はいつでも可能






