更新日:2026/07/28
先の記事では基幹業務ソフトウェアで最も採用されているリレーショナルデータベース(RDB)を解説しSQLの紹介をしました。当記事では、SQLの初級編として最も利用頻度の高いSELECTを主に解説します。
SQLは、構造化照会言語(Structured Query Language)と呼ばれ、RDBを操作する命令となります。SQL命令文の役割に応じて3つに大別されます。
この中で、1.がデータ操作に関わる命令文で主に以下のデータ操作の命令文があります。
SELECT文にも様々な句を付けることが出来ますが、先ずは最も基本的なSELECT文について説明します。
検索の対象となる表(テーブル)名を指定します。複数の表の場合は、各表名を ,(カンマ)で区切る。例:表名1, 表名2
検索の対象となる表の列(カラム)名を指定します。複数の場合は、各列名を ,(カンマ)で区切る。
表リストの複数の表で同じ列名が存在する場合は、どの表のどの列かを示すために、列名の前に「表名.」を付けて指定します。
例:表名1.列名1, 表名2.列名2, 表名1.列名3
また、表リストの全ての列という意味で、*(アスタリスク)を指定することもできます。列名を把握していない時などは非常に便利です。
これが最も基本的なSELECT文です。表リストで指定した表から、列リストで指定した列のデータを取得します。検索条件を指定していないため、表に存在するすべての行(全件)が検索結果として返されます。
最も基本的なSELECT文では、表に存在するすべての行(全件)が検索結果となります。 必要なデータだけを取得したい場合は、検索条件を指定する「WHERE句」を使用します。
WHERE句の主な用途は次の2つです。
例:WHERE 列名1 = 1、WHERE 列名2 <> 'A'、WHERE 列名3 <= '2026-07-01'、WHERE 列名4 <= 列名5
指定する列に対し比較演算子を使って条件式を指定します。各条件式に論理演算子(AND、OR、NOT)を付与することもできます。
比較演算子には、=(等式)、<>(不等式)、<(小なり)、>(大なり)、<=(以下)、>=(以上)が使用できます。
例:WHERE 表名1.列名1 = 表名2.列名2
表リストに複数の表を指定する場合は、表同士をどのように結び付けるかを指定する必要があります。
ORDER BY句は、検索したデータを指定の列を基準として並び替えるための条件指定です。
列名の指定だけでなく、加えて昇順(小さい順 ASC)または降順(大きい順 DESC)も指定することができます。
例:列名1 ASC, 列名2 DESC, 列名3
ORDER BY句を指定しない場合の検索結果の並び順は、不定となります。
今まで述べてきた句を列挙すると、下図のようになります。
SQL初級編では、SELECT文の構造を理解しやすいよう、基本的な内容に絞って説明しました。
例えば、表の結合にはWHERE句ではなくJOIN句を使用する方法などもあります。
SQL中級編以降では、より高度なSELECT文について解説する予定です。
高度なSELECT文の前に、最後に補足的な説明をいたします。