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

MySQLで条件に基づいてテーブルから値を取得するビューを作成する方法

MySQLにおいて、特定の条件に基づいてテーブルから値を取得するビュー(VIEW)を作成したい場合は、ビューを作成する際にWHERE句を使用します。WHERE句で指定した条件に一致する行だけがビューに格納され、以降そのビューを参照するたびに条件に合致したデータのみが表示されます。

基本構文

WHERE句付きのMySQLビューを作成する構文は以下のとおりです。

Create View view_name AS Select_statements FROM table WHERE condition(s);

具体例

それでは、実際のデータを使ってこの概念を確認してみましょう。ここでは次のような 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  |
+------+---------+------------+------------+
4 rows in set (0.08 sec)

WHERE句を使ったビューの作成

このテーブルから、「Subject(科目)が Computers である行だけ」を格納する Info という名前のビューを作成します。そのためには、ビュー作成時に以下のようにWHERE句を指定します。

mysql> Create OR Replace VIEW Info AS Select Id, Name, Address, Subject from student_info WHERE Subject = 'Computers';
Query OK, 0 rows affected (0.46 sec)

ビューの内容を確認する

ビューを作成したら、通常のテーブルと同じようにSELECT文で内容を確認できます。

mysql> Select * from info;
+------+-------+---------+-----------+
| Id   | Name  | Address | Subject   |
+------+-------+---------+-----------+
| 125  | Raman | Shimla  | Computers |
| 130  | Ram   | Jhansi  | Computers |
+------+-------+---------+-----------+
2 rows in set (0.00 sec)

このように、元のテーブルには4件のレコードがありますが、ビュー Info を参照すると、WHERE句の条件(Subject = 'Computers')に一致する2件のレコードのみが返されていることがわかります。

ポイントまとめ

  • ビューは仮想テーブルであり、実データを持たず、ベースとなるテーブルへのクエリ結果を提供します。
  • Create OR Replace View を使うことで、同名のビューが存在する場合でもエラーにならず上書きできます。
  • WHERE句の条件はビュー定義の一部として保存されるため、ベーステーブルのデータが更新されれば、ビューの結果も自動的に反映されます。
  1. MySQLのビューからテーブルを作成する方法を徹底解説!基本構文と実行手順

    ビューからテーブルを作成する基本構文 MySQLでは、ビュー(VIEW)をもとに新しいテーブルを簡単に作成できます。基本となる構文は以下の通りです。 create table yourTableName select * from yourViewName; このように「CREATE TABLE ... SELECT」構文を使うことで、ビューの構造とデータをそのまま新しいテーブルへ复制できます。以下、具体的な手順を見ていきましょう。 ステップ1:サンプルテーブルを作成する まず、元となるテーブルを作成します。 mysql> create table DemoTable830(Name

  2. MySQLでNOT IN()を使ってテーブルから特定の値を除外する方法

    MySQLでは、NOT IN()句を使用することで、テーブルから特定の値を除外してデータを取得できます。条件に含めたくない値をリストで指定するだけで、それらを除いたレコードを簡単に抽出できます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable791 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(100) ); Query OK, 0 rows affected (0.61 sec)テストデータの挿入次に、INSERTコマ