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

MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説

MySQLビューでWHERE句を使用する方法

MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。

select * from yourViewName where yourColumnName='yourValue';

それでは、実際にサンプルを使って手順を確認していきましょう。

1. サンプルテーブルを作成する

まず、学生情報を格納するテーブルを作成します。

mysql> create table DemoTable1432
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20),
    -> StudentBranchName varchar(20)
    -> );
Query OK, 0 rows affected (1.26 sec)

2. レコードを挿入する

INSERT文を使って、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('Chris','CS');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('David','CE');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('Mike','ME');
Query OK, 1 row affected (0.20 sec)

3. テーブルの中身を確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from DemoTable1432;

実行すると、次のような結果が得られます。

+-----------+-------------+-------------------+
| StudentId | StudentName | StudentBranchName |
+-----------+-------------+-------------------+
|         1 | Chris       | CS                |
|         2 | David       | CE                |
|         3 | Mike        | ME                |
+-----------+-------------+-------------------+
3 rows in set (0.00 sec)

4. ビューを作成する

続いて、このテーブルをもとにビューを作成します。CREATE VIEW文を使用します。

mysql> create view DemoTable1432_View as select * from DemoTable1432;
Query OK, 0 rows affected (0.17 sec)

5. ビューに対してWHERE句を使って検索する

ビューは仮想テーブルとして扱えるため、WHERE句を付けて特定の条件に合致する行だけを取得できます。ここでは、学部名(StudentBranchName)が「CS」の学生だけを抽出してみます。

mysql> select * from DemoTable1432_View where StudentBranchName='CS';

実行結果は以下の通りです。

+-----------+-------------+-------------------+
| StudentId | StudentName | StudentBranchName |
+-----------+-------------+-------------------+
|         1 | Chris       | CS                |
+-----------+-------------+-------------------+
1 row in set (0.03 sec)

まとめ

このように、MySQLのビューは通常のテーブルと同様にSELECT文やWHERE句を組み合わせて利用できます。よく使う検索条件や複雑なJOINをあらかじめビューとして定義しておけば、クエリがシンプルになり、コードの再利用性も高まります。なお、WHERE句でフィルタリングした場合でも、MySQLは内部的に元のテーブルへ効率的にアクセスするため、パフォーマンス面でも安心して使えます。

  1. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&

  2. MySQLでCURDATE()とLIKE句を使った部分一致検索の方法

    MySQLにはCONTAINS()という名前の関数は存在しません。そのため、現在の日付(CURDATE())に関連する文字列で部分一致検索を行いたい場合は、CONCAT()関数とLIKE句を組み合わせる方法が有効です。本記事では、実際にサンプルテーブルを作成しながら、その手順を順番に解説していきます。現在の日付を確認するまず、CURDATE()関数を使って現在の日付を取得してみましょう。mysql> select curdate();実行結果は以下の通りです。+------------+ | curdate() | +------------+ | 2019-11-28 | +----