Maison  >  Article  >  base de données  >  Quels sont les concepts et les fonctions opérationnelles des vues MySQL ?

Quels sont les concepts et les fonctions opérationnelles des vues MySQL ?

王林
王林avant
2023-05-27 22:17:08880parcourir

Objets communs de base de données

vue (VIEW)Affichage logique des données dans une ou plusieurs tables de données, la vue ne stocke pas les donnéesIndex (INDEX) est utilisé pour améliorer les performances des requêtes, équivalent à la table des matières du bookprocédure stockée (PROCEDURE) est utilisée pour effectuer un traitement métier complet. Il n'y a pas de valeur de retour, mais plusieurs valeurs peuvent être transmises à l'environnement appelant via les paramètres sortants Fonction stockée (. FUNCTION) est utilisé pour effectuer un calcul spécifique. , a une valeur de retour Trigger (TRIGGER) est équivalent à un écouteur d'événement Lorsqu'un événement spécifique se produit dans la base de données, le déclencheur est déclenché et le correspondant. le traitement est terminé

Le concept de vue

Une vue est une table virtuelle qui ne possède pas de données elle-même et occupe très peu d'espace mémoire.

Les vues sont construites sur des tables existantes, et ces tables sur lesquelles les vues sont construites sont appelées tables de base.

La création et la suppression de vues n'affectent que la vue elle-même et n'affectent pas la table de base correspondante. Lorsque des opérations d'ajout, de suppression, de modification (DML) sont effectuées sur la vue, les données de la vue seront mises à jour en conséquence, et vice versa, les données de la table de données changeront également.

L'instruction selon laquelle la vue fournit le contenu des données est l'instruction SELECT. La vue peut être comprise comme une instruction SELECT stockée

Dans la base de données, la vue n'enregistre pas le contenu des données. données, les données sont en fait enregistrées dans la feuille de données. Si vous ajoutez, supprimez ou modifiez des données dans la table de données, les données de la vue changeront en conséquence. vice versa.

View est une autre forme d'expression qui fournit aux utilisateurs des données de table de base. Dans des circonstances normales, la base de données des petits projets n'a pas besoin d'utiliser des vues, mais dans les grands projets et lorsque les tables de données sont relativement complexes, la valeur des vues devient importante. améliorer l'efficacité de l'utilisation. Il est très simple à comprendre et à utiliser.

Créer une vue

L'alias du champ dans l'instruction de requête apparaîtra comme un alias de la vue

CREATE VIEW vu_emps
AS 
SELECT employee_id,last_name,salary
FROM emps;
CREATE VIEW vu_emps2(emp_id,name,monthly_sal)
AS 
SELECT employee_id,last_name,salary
FROM emps;

Création de vue pour plusieurs tables

CREATE VIEW vu_emp_dept
AS
SELECT employee_id,e.department_id,department_name
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
SELECT * FROM vu_emp_dept;

Utiliser des vues pour formater les données

CREATE VIEW vu_emp_dept1
AS
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;

Créer des vues basées sur des vues

CREATE VIEW vu_emp4
AS 
SELECT department_id,department_name FROM vu_emp_dept;
SELECT * FROM vu_emp4;

Afficher les vues

Afficher la table de la base de données objets, vues Objet

SHOW TABLES;

Afficher la structure de la base de données

DESC vu_emp4;

Afficher les informations d'attribut des données

mysql> SHOW TABLE STATUS LIKE 'vu_emp4'\G;
*************************** 1. row ***************************
           Name: vu_emp4
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW
1 row in set (0.00 sec)
ERROR: 
No query specified

Afficher les informations de définition détaillées de la vue

mysql> SHOW CREATE VIEW vu_emp4\G;
*************************** 1. row ***************************
                View: vu_emp4
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `vu_emp4` AS select `vu_emp_dept`.`department_id` AS `department_id`,`vu_emp_dept`.`department_name` AS `department_name` from `vu_emp_dept`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)
ERROR: 
No query specified
#🎜🎜 #Mettre à jour les données de la vue

La mise à jour des données dans la vue entraînera la modification des données dans la table de base

La mise à jour des données dans la table entraînera également à la modification des données dans la vue# 🎜🎜#

Pour qu'une vue soit actualisable, chaque ligne de la vue doit correspondre à une ligne de la table sous-jacente et il doit y avoir un one-to-one relation entre les deux. De plus, la vue ne prend pas en charge les opérations de mise à jour lorsque les conditions suivantes se produisent dans la définition de la vue :

    Si "ALGORITHM = TEMPTABLE" est spécifié lors de la définition de la vue, le la vue ne prendra pas en charge les opérations INSERT et DELETE ;
  • La vue ne contient pas toutes les colonnes de la table de base qui sont définies comme non vides et n'ont aucune valeur par défaut spécifiée, et la vue ne prendra pas en charge l'opération INSERT ; #🎜🎜 #
  • Si une requête conjointe JOIN est utilisée dans l'instruction SELECT qui définit la vue, la vue ne prendra pas en charge INSERT et DELETE. opérations;
  • #🎜🎜 #Si des expressions mathématiques ou des sous-requêtes sont utilisées dans la liste de champs après l'instruction SELECT qui définit la vue, la vue ne prendra pas en charge INSERT, ni UPDATE. valeurs de champ qui utilisent des expressions mathématiques ou des sous-requêtes ;

    #🎜🎜 #
  • Utilisez DISTINCT, la fonction d'agrégation, GROUP BY, HAVING, UNION, etc. dans la liste de champs après l'instruction SELECT ; qui définit la vue, la vue ne prendra pas en charge INSERT, UPDATE, DELETE ;

    #🎜 🎜#

  • Si l'instruction SELECT qui définit la vue contient une sous-requête et que la sous-requête fait référence à la table après FROM, la vue ne prendra pas en charge INSERT, UPDATE et DELETE ;
  • #🎜🎜 #

    La définition de la vue est basée sur une vue non modifiable ;
  • Bien que les vues puissent mettre à jour les données, en général, les vues en tant que tables virtuelles sont principalement utilisées pour faciliter les requêtes, et il n'est pas recommandé de mettre à jour les données des vues. Les modifications apportées aux données de vue sont effectuées en exploitant les données dans la table de données réelle.
  • Modifier la vue

    Méthode 1 : Utiliser la clause CREATE OR REPLACE VIEW pour modifier la vue
  • CREATE OR REPLACE VIEW empvu80
    (id_number, name, sal, department_id)
    AS
    SELECT employee_id, first_name || ' ' || last_name, salary, department_id
    FROM employees
    WHERE department_id = 80;
    CREATE OR REPLACE VIEW vu_emp4
    AS 
    SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
    FROM emps e JOIN depts d
    ON e.department_id = d.department_id;
Description : Alias ​​pour chaque colonne du Clause CREATE VIEW Doit correspondre à chaque colonne de la sous-requête.

Méthode 2 : ALTER VIEW

La syntaxe pour modifier la vue est :

ALTER VIEW view name

AS #🎜 🎜#Requête de requête

ALTER VIEW vu_emp4
AS 
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;

Supprimer la vue

DROP VIEW vu_emp4;
DROP VIEW IF EXISTS vu_emp1;
Avantages et inconvénients de la vue


Avantages :
# 🎜🎜#

Opération facile

Réduire la redondance des données

  • Sécurité des données #🎜 🎜#

  • Adaptation aux besoins flexibles et changeants
  • Capable de décomposer une logique de requête complexe
  • #🎜 🎜#

    Inconvénients :
  • Coût de maintenance élevé
  • Mauvaise lisibilité # 🎜🎜#
Objet Description
Table (TABLE) La table est une unité logique de stockage de données, qui existe sous la forme de lignes et de colonnes. Les colonnes sont des champs et les lignes sont. records
Dictionnaire de données est une table système, une table qui stocke les informations relatives à la base de données. Les données de la table système sont généralement conservées par le système de base de données. Les programmeurs ne doivent généralement pas les modifier. Ils ne peuvent afficher que les règles de
contraintes (CONSTRAINT) pour effectuer la vérification des données et les règles pour garantir l'intégrité des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer