SQLの基本(その1)

2009年10月13日(火)
藤本 壱

SELECT文の基本

データベースに対する操作の中で、もっとも頻度が高いのは、テーブルからデータを取り出す操作です。データの取り出し方にはさまざまな方法がありますが、そのすべてを「SELECT」という1つの命令で表します。

SELECT命令の基本的な構文は、次のようになります。
---------------------------------------------------
SELECT 列名1, 列名2, ・・・, 列名n FROM テーブル名 WHERE 条件
---------------------------------------------------

「列名1」などの部分では、テーブルから取り出したい列を指定します(この操作は、射影(第1回:リレーショナルデータベースの基本)に当たります)。また、テーブル内のすべての列を取り出す場合は、列名として「*」を指定します。

「テーブル名」の部分には、データを取り出す元のテーブル名を指定します。そして、最後の「条件」の部分には、行を取り出す際の条件を指定します(この操作は、選択(前回記事参照)に当たります)。条件を指定せずにすべての行を取り出す場合は、「WHERE 条件」の部分を省略します。

例えば、図2-1の上半分のようなaddress(住所録)テーブルがあるとします。この時に、「sex」列の値が「男」の行を取り出し、また「name」と「sex」の列だけを取り出したいとします。この場合のSELECT文は、以下のように書きます。

---------------------------------------------------
SELECT name, sex FROM address WHERE sex = '男'
---------------------------------------------------

上の例ではSQLを1行で書きました。しかし、複雑なSQLになると、1行で書くには長くなりすぎ、読みにくくなる場合があります。その時は、途中に改行を入れて、複数の行に分けることもできます。

例えば、前述のSELECT文は、次のように書いても動作します。
---------------------------------------------------
SELECT name, sex
FROM address
WHERE sex = '男'
---------------------------------------------------

比較演算子を使って条件を指定する

SELECT文では、さまざまな方法で条件を指定することができます。その中で、もっとも基本になるのは、「比較演算子」を使って条件を指定する方法です。

比較演算子とは、「=」や「>」など、値が等しい/等しくないことや、値の大小関係などを使って、条件を表すための記号のことです。「列名 比較演算子 値」のような条件式を書いて、列と値との関係を条件として指定します。一般的なRDBMSでは、図2-2のような比較演算子を使うことができます。

比較対象の値が文字列であるときは、その文字列の前後を「'」で囲むことが一般的です。また、文字列を「>」の比較演算子で比較する場合、文字コード(個々の文字につけられた番号)の順で後ろになる文字ほど大きいとみなされることが一般的です。

2つの条件を同時に判断して、両方が満たされている行だけを取り出したいこともあります。その場合は、2つの条件の間を「AND」というキーワードで結びます。

また、2つの条件のうち、どちらか1つが満たされている行だけを取り出したいこともあります。その場合は、2つの条件の間を「OR」というキーワードで結びます。

例えば、図2-3の上半分のようなaddressテーブルがあるとします。そして、このテーブルから、「30歳以上の男性」の行を取り出し、その「name」と「age」の列を取り出したいとします。

「30歳以上の男性」を取り出すには、「『age』列の値が30以上」と「『sex』列の値が『男』」の2つの条件を同時に満たすことが必要です。したがって、この処理をSELECT文に表すと、次のようになります。
---------------------------------------------------
SELECT name, age
FROM address
WHERE age >= 30 AND sex = '男'
---------------------------------------------------

1969年生まれ。神戸大学工学部電子工学科卒。ソフトメーカー勤務後、フリーライターとして独立。現在では、パソコン関係およびマネー関係の書籍を中心に執筆活動を行っている。ブログ「The blog of H.Fujimoto」は、Movable TypeやWordPressの情報を中心に毎日更新している(http://www.h-fj.com/blog/)。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています