SQLの比較演算子について、基本的な使い方から実践的な応用まで、具体的なコード例を交えて解説します。データベース操作の効率を上げるには、比較演算子をどのように活用すればよいのでしょうか?
SQL 複数条件で絞り込むWHERE句とAND/OR演算子の使い方
SQLのWHERE句を使った複数条件での絞り込み方について、基本から応用まで詳しく解説します。AND/OR演算子の使い分けや優先順位など、実践的なテクニックを学べる記事です。あなたのSQLスキルを次のレベルに引き上げませんか?
データベースから特定の条件に合致するデータを取得する際、WHERE句は非常に重要な役割を果たします。複数の条件を指定する基本的な方法として、AND演算子とOR演算子があります。
-- AND演算子の使用例
SELECT * FROM users
WHERE age >= 20 AND prefecture = '東京'
-- OR演算子の使用例
SELECT * FROM users
WHERE job = '会社員' OR job = '自営業'
複数の条件を組み合わせる際は、演算子の優先順位に注意が必要です。ANDはORより優先して評価されます。優先順位を明確にするために、カッコ()を使用することをお勧めします。
-- カッコを使用した優先順位の制御
SELECT * FROM users
WHERE (age >= 20 AND prefecture = '東京')
OR (age >= 18 AND prefecture = '大阪')
複数のOR条件をまとめて指定する場合、IN句を使用すると記述がシンプルになります。
-- IN句の使用例
SELECT * FROM users
WHERE prefecture IN ('東京', '大阪', '神奈川')
-- 複数列でのIN句の使用
SELECT * FROM users
WHERE (prefecture, age) IN (('東京', 25), ('大阪', 30))
数値や日付の範囲を指定する場合、BETWEEN句を使用すると直感的に記述できます。
-- BETWEEN句の使用例
SELECT * FROM sales
WHERE amount BETWEEN 1000 AND 5000
-- 日付範囲の指定
SELECT * FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31'
複数条件を使用する際は、パフォーマンスも考慮する必要があります。以下のポイントに注意しましょう:
-- パフォーマンスを考慮した条件指定の例
SELECT * FROM users
WHERE status = 'active' -- インデックス列を先頭に
AND last_login >= CURRENT_DATE - INTERVAL '7 days'
AND prefecture IN ('東京', '大阪')
ORDER BY created_at DESC
LIMIT 100