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

特定のビューで値を更新した後、MySQLはベーステーブルとそれに関連するビュー(存在する場合)で同じ値を更新しますか?


はい、MySQLは、ビュー、ベーステーブル、および関連するビューで値が更新された場合、値を更新します。これを説明するために、次のデータを持つテーブルStudent_infoの例を取り上げます-

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| NULL | Ram     | Jhansi     | Computers  |
+------+---------+------------+------------+
4 rows in set (0.00 sec)

以下は、テーブル「Student_info」に基づいて作成されたビュー「Info」です

mysql> Select * from Info;
+------+---------+------------+
| Id   | Name    | Subject    |
+------+---------+------------+
| 101  | YashPal | History    |
| 105  | Gaurav  | Literature |
| 125  | Raman   | Computers  |
| NULL | Ram     | Computers  |
+------+---------+------------+
4 rows in set (0.00 sec)

次のクエリで、ビュー「情報」を更新します-

mysql> Update info set id = 130 where Name = 'Ram';
Query OK, 1 row affected (0.88 sec)

mysql> Select * from Info;
+------+---------+------------+
| Id   | Name    | Subject    |
+------+---------+------------+
| 101  | YashPal | History    |
| 105  | Gaurav  | Literature |
| 125  | Raman   | Computers  |
| 130  | Ram     | Computers  |
+------+---------+------------+
4 rows in set (0.00 sec)

上記の結果セットは、viesの「情報」が更新されたことを示しています。

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.00 sec)

上記の結果セットは、「info」という名前のビューを更新したときに、ベーステーブルも更新されたことを示しています

以下は、ビュー「info」に基づいて作成された「info_less」という名前のビューであり、ビュー「info」を更新したときにも更新されました。

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

  1. 単一のクエリでMySQLテーブルのすべての列を特定の値に設定します

    まずテーブルを作成しましょう- mysql> create table DemoTable (    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    ClientName varchar(40),    ClientAge int,    ClientCountryName varchar(40) ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mys

  2. MySQLで異なるIDを持つ同じテーブルから共通の値を持つ行を取得します

    このために、GROUPBYHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1467    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1467 value