テーブルから検索条件を指定してレコードを取得する

検索条件を指定してレコードを取得しよう

前回はテーブルから全レコードを取得 しましたが、今回は検索条件を指定して、その条件にあったレコードのみを取得してみましょう。

サンプルデータを生成する

まだ作っていない場合は、以下のクエリーを実行して、データを取得する元のテーブルを作っておいてください。

CREATE TABLE Students (
   StudentID INT NOT NULL PRIMARY KEY,
   FirstName VARCHAR(50) NULL,
   LastName VARCHAR(50) NULL,
   Birthday SMALLDATETIME NULL,
   Gender CHAR(1) NULL
);

INSERT INTO Students
  (StudentID, FirstName, LastName, Birthday, Gender)
 VALUES
  (1, 'Taro', 'Yamada', '1980-02-15', 'M'),
  (2, 'Hanako', 'Tanaka' ,'1979-12-30', 'F'),
  (3, 'Yuko', 'Suzuki', '1979-07-07', 'F'),
  (4, 'Takao', 'Sato', '1980-03-12', 'M'),
  (5, 'Hiroki', 'Takagi', '1979-04-05', 'M');

テーブルから検索条件を指定してレコードを取得する

テーブルから検索条件を指定してレコードを取得するには WHERE 句を指定します。

WHERE 句に検索条件を指定して、レコードを取得してみましょう。

男性の学生レコードを取得する

例えば、男性 (Gender が M) の学生のレコードを取得したい場合は WHERE 句に WHERE Gender = 'M' と指定します。

次のクエリーを実行して、Gender カラムの値が 'M' のレコードを取得してみましょう。

SELECT *
FROM   Students
WHERE  Gender = 'M';

[ 実行結果 ]
Select 文の実行結果 1

5 人中、Gender が M の 3 人のレコードだけが取得できましたね。


男性で誕生日が 1980 年 1 月 1 日以降の学生レコードを取得する

では次は、男性 (Gender が M) で誕生日(Birthday) が 1980 年 1 月 1 日以降の学生のレコードを取得してみましょう。

両方を満たすレコードを取得したい場合は条件を AND でつなげればよいので、WHERE 句に WHERE Gender = 'M' AND Birthday >= '1980-01-01' と指定します。

次のクエリーを実行してみましょう。

SELECT *
FROM   Students
WHERE  Gender = 'M'
       AND Birthday >= '1980-01-01';

[ 実行結果 ]
Select 文の実行結果 2

男性で 3 人のうち、 誕生日が1 980 年 1 月 1 日以降の学生のレコードのみが取得できましたね。


次は、WHERE 句でよく使う比較・論理演算子を確認しておきましょう。

© 2010-2024 SQL Server 入門