SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのWHERE句とは?基本構文からAND・OR条件、テーブル結合まで徹底解説

SQL Server(T-SQL)におけるWHERE句は、SELECT文やINSERT文、UPDATE文、DELETE文などの結果セットから、特定の条件に一致するレコードだけを抽出(フィルタリング)するために使用されます。データベース操作において最も頻繁に使われる句の一つであり、その使い方を正しく理解することは、効率的なクエリ作成の第一歩となります。

WHERE句の基本構文

WHERE 条件式;

条件式には、レコードが選択されるために満たすべき条件を記述します。条件がTRUEと評価された行のみが結果として返されます。

例1:単一の条件で絞り込む

SELECT *
FROM nhanvien
WHERE ten = 'Jane';

この例では、WHERE句を使ってテーブルから結果を絞り込んでいます。SELECT文は、「ten(名前)」が「Jane」である行のみを返します。SELECT文で「*」を使用しているため、結果セットには該当する行のすべての列が表示されます。

例2:AND条件を使う

SELECT *
FROM nhanvien
WHERE ho = 'Anderson'
AND nhanvien_id >= 3000;

この例では、ANDキーワードによって2つの条件を組み合わせています。このSELECT文は、「ho(姓)」が「Anderson」であり、かつ「nhanvien_id」が3000以上である従業員のレコードを返します。AND条件では、指定したすべての条件を満たす行のみが対象になります。

例3:OR条件を使う

SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Johnson'
OR ten = 'Danielle';

この例では、SELECT文は次の値を返します。すなわち、「ho(姓)」が「Johnson」または「ten(名前)」が「Danielle」である従業員のID・姓・名前です。OR条件では、いずれか一方の条件でも満たしていれば、その行が結果に含まれます。

例4:AND条件とOR条件を組み合わせる

SELECT *
FROM nhanvien
WHERE (bang = 'California' AND ho = 'Smith')
OR (nhanvien_id = 82);

この例の結果は、「bang(州)」が「California」で姓が「Smith」である従業員、または「nhanvien_id」が82である従業員のレコードです。

ここでのポイントは括弧()の使い方です。括弧を使用することで、各条件が評価される順序を明示的に制御できます(数学の演算順序と同じ考え方です)。ANDはORよりも先に評価されるため、意図した通りの組み合わせにしたい場合は括弧でグループ化するのが安全です。

例5:複数テーブルを結合して絞り込む

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien
INNER JOIN danhba
ON nhanvien.nhanvien_id = danhba.danhba_id
WHERE nhanvien.ten = 'Sarah';

このSELECT文は、「ten(名前)」が「Sarah」である行を返します。「nhanvien(従業員)」テーブルと「danhba(連絡先)」テーブルは、INNER JOINによって結合されており、結合条件は両テーブルのID(nhanvien_idとdanhba_id)が一致することです。WHERE句は結合後の結果に対してさらに絞り込みを行います。

まとめ

WHERE句は、単一条件だけでなく、AND・ORを組み合わせた複雑な条件や、JOINによる複数テーブルへの結合結果に対しても適用できます。括弧による評価順序の制御を活用すれば、より柔軟で正確なデータ抽出が可能になります。SQL Serverでデータを扱う際には、ぜひこれらのパターンをマスターしておきましょう。

  1. SQL ServerのPIVOT句とは?クロス集計で行を列に変換する方法を実例付きで解説

    SQL Server(Transact-SQL)では、PIVOT句を使用することで、クロス集計(ピボットテーブル)を作成できます。PIVOT句は、テーブル内の行データを列に変換し、集計結果を見やすい形式で表示するための強力な機能です。 下図は、合計値を計算し、行データを列に変換して表示する例です。 PIVOT句の基本構文 SELECT cot_dautien AS bidanh_cot_dautien, [giatri_chuyen1], [giatri_chuyen2], … [giatri_chuyen_n] FROM ( SELECT bang_nguon.cot1

  2. MS SQL Serverでデータベースを選択する2つの基本方法

    MS SQL Serverで操作対象となるデータベースを選択するには、主に以下の2つの方法があります。GUI操作とコマンド操作それぞれの特徴を理解し、状況に応じて使い分けることで、作業効率を高めることができます。 方法1:SQL Server Management Studio(SSMS)を使用する 視覚的に操作したい方には、SQL Server Management Studio(SSMS)を使った方法がおすすめです。 例として、msdbという名前のデータベース上でバックアップ履歴を参照するクエリを実行したい場合、ツールバーのドロップダウンリストからmsdbを選択します。 データベースのバッ