テーブルから検索条件を指定してレコードを取得する
検索条件を指定してレコードを取得しよう
前回はテーブルから全レコードを取得 しましたが、今回は検索条件を指定して、その条件にあったレコードのみを取得してみましょう。
サンプルデータを生成する
まだ作っていない場合は、以下のクエリーを実行して、データを取得する元のテーブルを作っておいてください。
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';
[ 実行結果 ]
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';
[ 実行結果 ]
男性で 3 人のうち、 誕生日が1 980 年 1 月 1 日以降の学生のレコードのみが取得できましたね。
次は、WHERE 句でよく使う比較・論理演算子を確認しておきましょう。