MySQL 5 : Les vues — (part 2/7)

novembre 26, 2008
Tags: ,

(<- précédent)

Syntaxe d’une vue

CREATE VIEW


La commande MySQL pour créer une vue est assez proche de la syntaxe du standard SQL.


Après avoir créé la table etudiant, on crée la vue v_etudiant_liste qui contient le nom et le prénom des étudiants.


Il est possible d’ajouter d’autres informations lors de la création de la vue:


Voici dans le détail les différentes clauses.

OR REPLACE

Si une vue du même nom existe, elle est alors supprimée et remplacée par la nouvelle.

ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}

Clause non standard, qui prend les valeurs suivantes:

  • UNDEFINED : C’est la valeur par défaut. MySQL décide lui-même quel algorithme choisir entre MERGE et TEMPTABLE.
  • MERGE : utilise la requête SQL ayant servie à la création de la vue comme base d’opération. En d’autres termes, faire une requête sur la vue revient à faire la même requête sur la ou les tables sous-jacentes.
  • TEMPTABLE : utilise une table temporaire créée pour stocker (temporairement) les résultats. Un intérêt de cet algorithme est de libérer plus rapidement les verrous sur les tables sous-jacentes. Les autres requêtes sont alors moins pénalisées.

Il faut noter également qu’une vue avec pour valeur MERGE sera modifiable alors qu’avec la valeur TEMPTABLE elle ne le sera pas.

DEFINER = { user | CURRENT_USER }

Clause non standard qui permet d’assigner un créateur à la vue. Par défaut, le créateur de la vue est DEFINER = current_user, c’est-à-dire, l’utilisateur qui exécute la commande CREATE VIEW. Il est cependant possible d’assigner la vue à un autre compte utilisateur, à condition d’avoir le droit SUPER.

SQL SECURITY { DEFINER | INVOKER }

Clause non standard qui permet de définir quels seront les droits de l’utilisateur, lors de l’exécution de la vue. Deux valeurs sont possibles:

  • DEFINER qui permet d’exécuter la vue avec les droits du créateur. C’est la valeur par défaut.
  • INVOKER qui permet d’exécuter la vue avec ses propres droits.

WITH [CASCADED | LOCAL] CHECK OPTION

Permet de vérifier les contraintes spécifiées dans la clause WHERE d’une vue modifiable lorsque l’on y modifie ses données. Deux valeurs sont possibles:

  • CASCADED, la valeur par défaut. Elle permet de vérifier la contrainte pour la vue ainsi que pour les vues sous-jacentes dont elle dérive.
  • LOCAL qui permet de vérifier seulement la contrainte de la vue.

ALTER VIEW


Une fois la vue créée, il est bien évidement possible de la modifier avec la commande ALTER VIEW.

Cette commande modifie la clause DEFINER en lui assignant le compte secretaire@localhost et modifie la définition de la vue en rajoutant le champ cursus.

DROP VIEW


Permet d’effacer une vue.

Supprime les vues v_etudiant_liste et v_prof_liste. Il est possible d’ajouter la clause IF EXISTS qui retourne un avertissement au lieu d’une erreur si la vue à effacer n’existe pas.

(à suivre… les restrictions pour créer une vue)

2 Responses to “MySQL 5 : Les vues — (part 2/7)”

  1. […] (à suivre… syntaxe d’une vue) […]

  2. […] (<- précédent) […]