ANDおよびOR演算子
SQL ANDおよびOR演算子は、複数の条件を組み合わせてSQL文のデータを絞り込むために使用されます。これら2つの演算子は、連結演算子と呼ばれます。
これらの演算子は、同じSQL文で異なる演算子と複数の比較を行う手段を提供します。
AND演算子
AND演算子は、SQL文のWHERE句で複数の条件が存在することができます。
構文
WHERE句を持つAND演算子の基本構文は次のとおりです。
SELECT column1, column2, columnN FROM table_name WHERE [condition1] AND [condition2]...AND [conditionN];
AND演算子を使用してN個の条件を組み合わせることができます。SQL文がトランザクションまたは問合せのいずれであるかにかかわらず、ANDで区切られたすべての条件はTRUEでなければなりません。
例
次のレコードを持つCUSTOMERSテーブルを考えてみましょう。
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | takeshita| 32 | Ahmedabad | 2000.00 | | 2 | nakata | 25 | Delhi | 1500.00 | | 3 | takatoku | 23 | Kota | 2000.00 | | 4 | Murakami | 25 | Mumbai | 6500.00 | | 5 | Fujita | 27 | Bhopal | 8500.00 | | 6 | tsuruta | 22 | MP | 4500.00 | | 7 | hirose | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
以下は、給与が2000より大きく、年齢が25歳未満のCUSTOMERS表からID、NameおよびSalaryフィールドを抽出する例です。
QL> SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE SALARY > 2000 AND age < 25;
これは、次の結果になります
+----+-------+----------+ | ID | NAME | SALARY | +----+-------+----------+ | 6 | tsuruta| 4500.00 | | 7 | hirose | 10000.00 | +----+-------+----------+
OR演算子
OR演算子は、SQL文のWHERE句で複数の条件を結合するために使用されます。
構文
WHERE句を持つOR演算子の基本構文は次のとおりです。
SELECT column1, column2, columnN FROM table_name WHERE [condition1] OR [condition2]...OR [conditionN]
OR演算子を使用してN個の条件を組み合わせることができます。SQLステートメントによって実行されるアクションがトランザクションまたは照会のいずれであっても、ORで区切られた条件のうちの1つだけがTRUEでなければなりません。
例
次のレコードを持つCUSTOMERSテーブルを考えてみましみましょう
+—-+———-+—–+———–+———-+
| ID | NAME | AGE | ADDRESS | SALARY |
+—-+———-+—–+———–+———-+
| 1 | takeshita| 32 | Ahmedabad | 2000.00 |
| 2 | nakata | 25 | Delhi | 1500.00 |
| 3 | takatoku | 23 | Kota | 2000.00 |
| 4 | Murakami | 25 | Mumbai | 6500.00 |
| 5 | Fujita | 27 | Bhopal | 8500.00 |
| 6 | tsuruta | 22 | MP | 4500.00 |
| 7 | hirose | 24 | Indore | 10000.00 |
+—-+———-+—–+———–+———-+
以下は、
次のコードブロックは、給与が2000より大きく、年齢が25歳未満のCUSTOMERSテーブルからIDフィールド、名前フィールド、および給与フィールドを取得するクエリを持っています。
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE SALARY > 2000 OR age < 25;
これは、次の結果になります-
+----+----------+----------+ | ID | NAME | SALARY | +----+----------+----------+ | 3 | takatoku | 2000.00 | | 4 | Murakami | 6500.00 | | 5 | Fujita | 8500.00 | | 6 | tsuruta | 4500.00 | | 7 | hirose | 10000.00 | +----+----------+----------+