IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

J'ai créé une vue mais je ne sais pas comment l'utiliser


Sujet :

Requêtes MySQL

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut J'ai créé une vue mais je ne sais pas comment l'utiliser
    Bonjour tout le monde,

    Je débute avec MYSQL.

    J'ai plus tôt dans la journée créé une requête qui me permet de sélectionner une liste d'étudiant où l'adresse email est manquante.

    J'ai voulu reprendre la requête mais je ne l'a retrouve plus, est-ce que MYSQL enregistre les requêtes que l'on crée ?

    Est-ce que la vue est à ce utile ?

    J'aimerais créer une vue sur ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT `Email_Et`, `Nom_Et`, `Prenom_Et` 
     
    FROM 
            `etudiants`
    WHERE
             LEFT( Email_Et, 3 ) = ''
    J'obtiens donc un résultat qui me convient, les étudiants sans email sont affichés.

    J'essaie de créer une vue "Create View"

    Je donne un nom à ma vue "Email_Manquant"
    Nom des colonnes : dois-je citer le nom des colonnes séparés par des , ?

    as : je mets la chaine sql ci dessus.

    Voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE  ALGORITHM = UNDEFINED VIEW Email_Manquant(
    Email_ET,
    Nom_Et,
    Prenom_Et
    ) AS SELECT `Email_Et` , `Nom_Et` , `Prenom_Et`
    FROM `etudiants`
    WHERE LEFT( Email_Et, 3 ) = ''
    J'ai choisis "Undefined" par défaut car je ne sais pas à quoi cela sert.

    Comment maintenant puis-je utiliser ma requête pour la relancer sur une table mise à jour ?

    Je vous remercie d'avance pour votre aide.

    beeges

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Execute View email_manquant( 'email_et', 'nom_et', 'prenom_et')

    Mais ce qui m'intrigue, est ce que tu as déjà un email prédéfini pour les personnes qui n'ont pas encore des emails, dans ce cas tu devrais créer une autre vue qui créée les emails si ce dernier n'existe pas.

  3. #3
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Citation Envoyé par beegees Voir le message
    J'ai plus tôt dans la journée créé une requête qui me permet de sélectionner une liste d'étudiant où l'adresse email est manquante.

    J'ai voulu reprendre la requête mais je ne l'a retrouve plus, est-ce que MYSQL enregistre les requêtes que l'on crée ?
    Il est possible que le client garde un historique, mais par défaut le serveur se contente d'exécuter les requêtes. Il est cependant possible d'activer le log général (qui garde en clair tout ce qui est demandé au serveur, y compris les requêtes invalides) ou le log binaire (pas fait à la base pour les humains et ne conserve que les modifications apportées aux données). Ils ne sont pas activés par défaut pour des raisons de place et de performances.

    Citation Envoyé par beegees Voir le message
    Est-ce que la vue est à ce utile ?
    Heu... vous pouvez répéter la question ?


    Citation Envoyé par beegees Voir le message
    Nom des colonnes : dois-je citer le nom des colonnes séparés par des , ?
    Facultativement. Si les colonnes ne sont pas précisées elles prendront les noms de celles du résultat du SELECT qui définit la vue.

    Citation Envoyé par beegees Voir le message
    J'ai choisis "Undefined" par défaut car je ne sais pas à quoi cela sert.
    Cela sert à préciser comment MySQL doit gérer la vue en interne car il y a plusieurs implémentations possibles (2 pour MySQL). La mention peut être retirée car "Undefined" est la valeur par défaut et laisse le serveur choisir selon ses préférences et possibilités. Voir la doc pour plus de détails.

    Citation Envoyé par beegees Voir le message
    Comment maintenant puis-je utiliser ma requête pour la relancer sur une table mise à jour ?
    Je ne suis pas certain d'avoir compris la question... Une vue ne se met généralement pas à jour (sauf pour en changer la définition). On se contente de l'interroger comme n'importe quelle table, hormis que celle-ci est virtuelle. Bref un bon gros "SELECT * [...]" ?

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Un super grand merci à vous deux pour vos explications très utiles.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. J'ai une idée et je ne sais pas comment la réaliser
    Par bm1990 dans le forum Débuter
    Réponses: 2
    Dernier message: 15/05/2012, 22h14
  2. [AC-2007] Requête sur 2 tables mais je ne sais pas comment la faire ?
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/01/2012, 00h01
  3. [MySQL] Insérer des données dans une table, mais ce n'est pas une table USER
    Par amerex dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/08/2008, 00h01
  4. Réponses: 13
    Dernier message: 05/05/2008, 13h45
  5. Réponses: 4
    Dernier message: 07/01/2008, 23h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo