Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre à jour la vue dans MySQL

Les vues SQL offrent plus de sécurité et de simplicité par rapport aux tables de données. En fait, vous pouvez facilement mettre à jour la vue dans SQL de plusieurs manières. Voici les étapes pour mettre à jour la vue dans MySQL.

Comment mettre à jour la vue dans MySQL

Voici comment mettre à jour la vue dans MySQL. Il existe plusieurs façons de mettre à jour la vue dans SQL. Vous pouvez mettre à jour la requête ou les données d'une vue SQL. Nous examinerons chacune de ces façons de mettre à jour la vue dans MySQL.

Disons que vous avez la vue suivante order_view

mysql> create view order_view as
      select order_date,quantity
      from orders;

mysql> select * from order_view;
+------------+----------+
| order_date | quantity |
+------------+----------+
| 2020-05-01 |       23 |
| 2020-05-01 |       35 |
| 2020-05-02 |       45 |
| 2020-05-02 |       23 |
| 2020-05-03 |       19 |
| 2020-05-03 |       15 |
| 2020-05-04 |       34 |
| 2020-05-04 |       56 |
+------------+----------+

Lecture bonus :comment créer une vue dans MySQL

Comment mettre à jour la vue dans MySQL à l'aide de l'instruction ALTER

Vous pouvez mettre à jour la vue dans MySQL en utilisant ALTER déclaration. Cela remplacera la requête SQL pour la vue, pas les données sous-jacentes.

mysql> alter view order_view as
       select order_date,quantity
       from orders
       where quantity>30;

mysql> select * from order_view;
+------------+----------+
| order_date | quantity |
+------------+----------+
| 2020-05-01 |       35 |
| 2020-05-02 |       45 |
| 2020-05-04 |       34 |
| 2020-05-04 |       56 |
+------------+----------+

Lecture bonus :Comment obtenir le nombre total d'utilisateurs cumulés dans MySQL

Comment mettre à jour la vue dans MySQL à l'aide de CREATE OR REPLACE

Vous pouvez également mettre à jour la vue dans MySQL en utilisant CREATE OR REPLACE déclaration. Cela remplacera la requête SQL pour la vue, pas les données sous-jacentes.

mysql> create or replace view order_view as
       select order_date,product_id,quantity
       from orders;

mysql> select * from order_view;
+------------+------------+----------+
| order_date | product_id | quantity |
+------------+------------+----------+
| 2020-05-01 |          1 |       23 |
| 2020-05-01 |          2 |       35 |
| 2020-05-02 |          1 |       45 |
| 2020-05-02 |          2 |       23 |
| 2020-05-03 |          1 |       19 |
| 2020-05-03 |          2 |       15 |
| 2020-05-04 |          1 |       34 |
| 2020-05-04 |          2 |       56 |
+------------+------------+----------+

Lecture bonus :comment obtenir de nouveaux utilisateurs par jour dans MySQL

Comment mettre à jour la vue dans MySQL à l'aide de UPDATE

Vous pouvez également mettre à jour les données sous-jacentes d'une vue SQL à l'aide de l'instruction UPDATE. Cela ne mettra pas à jour la requête SQL de la vue mais les données réelles de la table.

mysql> update order_view
       set quantity=50
       where order_date>'2020-05-03';

mysql> select * from order_view;
+------------+----------+
| order_date | quantity |
+------------+----------+
| 2020-05-01 |       23 |
| 2020-05-01 |       35 |
| 2020-05-02 |       45 |
| 2020-05-02 |       23 |
| 2020-05-03 |       19 |
| 2020-05-03 |       15 |
| 2020-05-04 |       50 |
| 2020-05-04 |       50 |
+------------+----------+

Lecture bonus :comment calculer les revenus dans MySQL

L'instruction UPDATE ne fonctionne sur les vues SQL que s'il s'agit d'un sous-ensemble direct de données de table, sans aucune agrégation ni modification. Vous pouvez donc utiliser l'instruction UPDATE sur les vues si l'instruction SELECT pour la vue :

  • N'a pas de fonctions ou d'opérateurs DISTINCT, GROUP BY, HAVING, Aggregations, SET
  • Ne fait pas référence à plusieurs tables
  • N'a pas de colonnes calculées

C'est ça! Désormais, vous pouvez facilement mettre à jour la vue MySQL et l'utiliser pour l'analyse de données et la création de rapports.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !