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

MySQLビュー作成時に論理演算子(AND・OR・NOT)を使う方法を実例で解説

MySQLでは、ANDORNOTといった論理演算子を活用することで、条件に応じた柔軟なビュー(VIEW)を作成できます。本記事では、具体的なサンプルコードとともに、それぞれの演算子の使い方をわかりやすく解説します。

AND演算子を使ったビューの作成

論理AND演算子は、2つの式を比較し、両方の式がTRUEの場合にのみTRUEを返します。つまり、複数の条件をすべて満たす行だけを抽出したい場合に使用します。

まず、ベースとなるテーブル「Student_info」には以下のデータが格納されているものとします。

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
6 rows in set (0.00 sec)

次に、「Subject」が「Computers」かつ「Address」が「Delhi」という2つの条件をAND演算子で組み合わせたビューを作成します。

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE (Subject = 'Computers' AND ADDRESS = 'DELHI');
Query OK, 0 rows affected (0.13 sec)

mysql> Select * from Info;
+------+-------+---------+-----------+
| ID   | Name  | Address | Subject   |
+------+-------+---------+-----------+
| 133  | Mohan | Delhi   | Computers |
+------+-------+---------+-----------+
1 row in set (0.00 sec)

結果を見ると、両方の条件を満たす「Mohan」のレコードのみが返されていることがわかります。

OR演算子を使ったビューの作成

論理OR演算子は、2つの式を比較し、少なくとも一方の式がTRUEであればTRUEを返します。複数の条件のうち、どれか一つでも満たしていればよい場合に便利です。

ここでは、「Subject」が「Computers」または「Address」が「Amritsar」という条件をOR演算子で指定したビューを作成します。

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE (Subject = 'Computers' OR ADDRESS = 'Amritsar');
Query OK, 0 rows affected (0.06 sec)

mysql> Select * from Info;
+------+---------+----------+-----------+
| ID   | Name    | Address  | Subject   |
+------+---------+----------+-----------+
| 101  | YashPal | Amritsar | History   |
| 125  | Raman   | Shimla   | Computers |
| 130  | Ram     | Jhansi   | Computers |
| 133  | Mohan   | Delhi    | Computers |
+------+---------+----------+-----------+
4 rows in set (0.00 sec)

このように、いずれかの条件に該当する4件のレコードが取得できました。

NOT演算子を使ったビューの作成

NOTは、唯一単一のオペランド(被演算子)しか取らない演算子です。オペランドがTRUEの場合は0(FALSE)を、FALSEの場合は1(TRUE)を返します。条件を否定したい場合に使用します。

次の例では、「Subject」が「Computers」ではないレコードを抽出するビューを、比較演算子 != を使って作成しています。

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE Subject != 'Computers';
Query OK, 0 rows affected (0.06 sec)

mysql> Select * from info;
+------+---------+------------+------------+
| ID   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 132  | Shyam   | Chandigarh | Economics  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

まとめ

MySQLのビュー作成において、論理演算子を適切に使い分けることで、複雑な条件でのデータ抽出が可能になります。ANDは全条件一致、ORはいずれかの条件一致、NOTは条件の否定を表現できます。これらを組み合わせれば、より実用的なビューを構築できるでしょう。

  1. MySQLでテーブルを作成するときに波括弧{}は使える?正しい構文を解説

    結論:波括弧 {} は使用できませんいいえ、MySQLでテーブルを作成する際に波括弧 {} を使用することはできません。テーブルの列定義は、必ず丸括弧 ( ) で囲む必要があります。誤って {} を使うと構文エラーが発生するため、注意しましょう。テーブル作成の基本的な構文は以下の通りです。CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType1, . . . N );実際にテーブルを作成してみようそれでは、丸括弧を使って実際にテーブルを作成してみましょう。ここでは、顧客情報を

  2. MySQLのUPDATE文の中でSELECTステートメントを使う方法

    MySQLでUPDATEコマンドを実行する際に、同じテーブルを参照するSELECTステートメントを組み合わせたいケースはよくあります。しかし、UPDATE文の中で直接サブクエリとして対象テーブルを指定するとエラーになるため、工夫が必要です。解決策:サブクエリとWHERE句を組み合わせるこの問題を回避するには、WHERE句とともにサブクエリを使用し、さらにそのサブクエリを別のSELECT文でラップ(派生テーブル化)します。これにより、MySQLは一時的なテーブルとして扱うため、更新中のテーブルへの参照エラーを防ぐことができます。実際の手順を順番に見ていきましょう。1. テーブルを作成するまず、サ