Maison >base de données >tutoriel mysql >qu'est-ce que la vue MySQL

qu'est-ce que la vue MySQL

藏色散人
藏色散人original
2023-04-04 10:39:044216parcourir

La vue MySQL est une table virtuelle dont le contenu est défini par une requête ; la vue contient une série de données de colonnes et de lignes nommées, et les données de lignes et de colonnes proviennent de la table référencée par la requête qui personnalise la vue, et est dynamiquement généré lorsque la vue est référencée. En termes simples, une vue est un tableau composé de résultats sélectionnés.

qu'est-ce que la vue MySQL

L'environnement d'exploitation de ce tutoriel : système Windows 10, MySQL version 5.7, ordinateur Dell G3.

Que sont les vues MySQL ? Analyse de la signification et de l'utilisation de la vue

Qu'est-ce qu'une vue

  • Une vue est une table virtuelle dont le contenu est défini par une requête.
  • Comme une vraie table, une vue contient une série de données de colonnes et de lignes nommées.
  • Les données des lignes et des colonnes proviennent de la table référencée par la requête de la vue personnalisée et sont générées dynamiquement lorsque la vue est référencée.
  • Pour faire simple, une vue est un tableau composé de résultats sélectionnés.

Par exemple
Utilisez la commande query table

SELECT * FROM 表名 ;

Vous pouvez voir une table et ce que vous voyez s'appelle une vue.

Caractéristiques des vues

  • Une vue est une référence à plusieurs tables de base, une table virtuelle et le résultat de l'exécution d'une instruction de requête.
  • Il ne stocke pas de données spécifiques (si les données de base du tableau changent, la vue changera également).
  • Il peut effectuer des opérations d'ajout, de suppression, de modification et de requête tout comme la table de base (il existe des restrictions conditionnelles sur les opérations d'ajout, de suppression et de modification).

Le rôle de la vue

  • Améliorer la sécurité : Créez une vue et définissez les données exploitées par la vue. Liez ensuite les autorisations utilisateur à la vue. Cette méthode utilise une fonctionnalité : l'instruction Grant peut accorder des autorisations à la vue.
    Par exemple : les données interrogées par l'administrateur contiennent les mots de passe de chaque utilisateur, et l'administrateur ne veut pas que l'utilisateur voie le mot de passe, il peut créer une vue pour permettre à l'utilisateur de voir uniquement ce que l'administrateur veut qu'il voie . Performances des requêtes Data
  • améliorées.
  • Amélioration de l’indépendance des données. "Créez une vue" vient de créer
Le contenu du tableau est le contenu requis

En fonction de la vue, nous pouvons continuer à interroger le contenu souhaité, par exemple interroger des personnes nommées ls qui ont plus de 21 ans. Une requête basée sur la vue peut améliorer l'efficacité et. réduire les coûts d’exploitation.

Modifier la vue

CREATE VIEW stu_age_view 
AS(SELECT * FROM stu WHERE age>20);

Par exemple : la vue "stu_age_view" créée ci-dessus est destinée aux étudiants de plus de 20 ans, et maintenant elle est modifiée pour tous les étudiants. quest-ce que la vue MySQL
CREATE OR REPLACE VIEW 视图名  AS(SELECT  [...]  FROM [...] );

Supprimer la vuequest-ce que la vue MySQL

CREATE OR REPLACE VIEW stu_age_view 
AS(SELECT * FROM stu );
quest-ce que la vue MySQL

Mécanisme d'affichage

Remplacement

Lors de l'utilisation d'une vue, le nom de la vue est directement remplacé par la définition de la vue

Réification

mysq | Le résultat de l'exécution de la vue est d'abord obtenu, et le résultat forme un résultat intermédiaire et est temporairement stocké en mémoire. L'instruction de sélection externe appelle ces résultats intermédiaires (tableaux temporaires)

La différence entre le remplacement et la réification


Remplacement

 : Méthode de remplacement, après avoir remplacé la formule de vue, traitez-la comme un tout carré| Traité.

Spécification

 : Méthode concrète, traitez d'abord les résultats de la vue, puis traitez les exigences de requête externe.




Donnons un exemple pour approfondir notre compréhension

Lors de la création de la vue ci-dessus, nous avons déjà créé une vue qui nécessite des étudiants de plus de 20 ans

  • Vérifions ensuite cette vue
    DROP VIEW 视图名称;
    Si c'est le cas
  • Remplacez
  • , alors sa logique de fonctionnement interne est
    SELECT * FROM (SELECT *FROM stu WHERE age >20) tihuan;

    直接将stu_age_view的代码替换出来;
    如果是具化式,那么它就是先把符合条件的查询出来放在一张表(内存)里,然后直接查询这张表。

    (SELECT * FROM stu WHERE age >20) AS TEMPTABLE;SELECT * FROM TEMPTABLE;

    上面这两条语句无法运行,只是为了方便举例提出

    那么我们再说回创建视图

    ALGORITHM参数(三个)

    merge TEMPTABLE UNDEFINED
    处理方式替换式,可以进行更新真实表中的数据 具化式,由于数据存储在临时表中,所以不可以进行更新操作 没有定义ALGORITHM参数,mysq更倾向于选择替换方式,因为它更加有效。

    用参数创建视图

    CREATE ALGORITHM = MERGE VIEW stu_age_viewAS(SELECT * FROM stu WHERE age >20);

    还有两个需要注意的东西是

    • WITH CHECK OPTION

    更新数据时不能插入或更新不符合视图限制条件的记录。
    比如上面我们查询了一张年龄大于20的视图,那么在这张视图里面更新数据时如果年龄小于20则会报错。

    • LOCAL和CASCADED

    为可选参数,决定了检查测试的范围,默认值为CASCADED

    视图不可更新部分

    • 聚合函数
    • DISTINCT关键字
    • GROUP BY子句
    • HAVING子句
    • UNION运算符
    • FROM子句中包含多个表
    • SELECT语句中引用了不可更新视图
    • 只要视图当中的数据不是来自于基表,就不能够直接修改

【相关推荐:mysql视频教程

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Quel fichier est mysql.frm ?Article suivant:Quel fichier est mysql.frm ?