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

Langage SQL Discussion :

Questions Reponses SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Questions Reponses SQL
    Bonjour,

    J'ai quelques soucis avec le SQL. Effectivement, je suis dans une ecole d'informatique et je n'arrive pas a valider mon examen car j'ai du mal a comprendre certaines notions! J'aimerai que vous m'aidiez a resoudre ces questions svp.

    Peut on mettre un HAVING a la place d'un WHERE
    1: oui
    2: non

    >> Ma reponse serait oui car cela marche pour la plupart des requetes!
    Cependant, en faisant des recherches j'ai pu lire que WHERE se faisait apres un GROUP BY et HAVING avant!
    De ce fait, je ne sais plus ou donner de la tete...

    Quelle requete fonctionera sur l'ensemble des serveurs SQL
    (en sachant que les champs id_genre et titre sont uniques) ?
    1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre;
    2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre, titre;
    >>Comme je le disais WHERE se fait APRES un GROUP BY de ce fait, je pense que la reponse 2 serait la plus adaptee.

    Une clef primaire peut elle etre autre chose qu'un entier auto-incremente ?
    1: oui
    2: non

    >> A ce niveau la, j'ai fait des recherches mais je ne comprends pas a quoi sert l'auto incrementation d'une clef primaire!
    Je suis aller dessus http://sqlpro.developpez.com/cours/clefs/ mais cela ne m'a pas plus aider...
    mais je suppose qu'il ne peut pas etre autre chose, j'ai lu quelques parts qu'il ne fallait pas trop manipuler les clefs primaires car c'est sensible!
    Alors ce serait NON!

    J'aimerai que vous me disiez si j'ai raison pour les reponses que j'ai donnees et donc me rassurer, et dans le cas contraire, j'aurai souhaite une explication!
    Je vous remercie d'avance.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par linklerydia Voir le message
    Peut on mettre un HAVING a la place d'un WHERE
    1: oui
    2: non
    >> Ma reponse serait oui car cela marche pour la plupart des requetes!
    Pas de chance c'est non
    Et j'aimerai bien connaitre le nom du SGBD qui autorise cette syntaxe

    Citation Envoyé par linklerydia Voir le message
    Cependant, en faisant des recherches j'ai pu lire que WHERE se faisait apres un GROUP BY et HAVING avant!
    C'est le contraire !
    HAVING est un filtre qui s'applique sur le résultat du groupage, alors que WHERE est un filtre qui s'applique avant


    Citation Envoyé par linklerydia Voir le message
    Quelle requete fonctionera sur l'ensemble des serveurs SQL
    aucune, Where 1 n'est pas un filtre applicable


    Citation Envoyé par linklerydia Voir le message
    (Une clef primaire peut elle etre autre chose qu'un entier auto-incremente ?
    1: oui
    2: non
    Oui, mais la clef auto-incrémentée est une précaution car
    - concise
    - stable
    - non sémantique

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Bizaretitude - un peu perdu tout de meme...
    Citation Envoyé par escartefigue Voir le message
    Pas de chance c'est non
    Et j'aimerai bien connaitre le nom du SGBD qui autorise cette syntaxe
    => Nous sommes sur MariaDB

    Citation Envoyé par escartefigue Voir le message
    C'est le contraire !
    HAVING est un filtre qui s'applique sur le résultat du groupage, alors que WHERE est un filtre qui s'applique avant
    => ah oui, j'etais a cote de la plaque alors! Merci de m'avoir eclairci!

    Citation Envoyé par escartefigue Voir le message
    aucune, Where 1 n'est pas un filtre applicable
    => par contre, c'est bizarre car dans l'enonce il faut choisir entre la reponse 1 ou 2, et il n'y a pas de reponse 0 ou 3... Je suis un peu perdu a ce niveau la...
    Y aurait t-il une solution dans l'un ou dans l'autre?

    Quelle requete fonctionera sur l'ensemble des serveurs SQL
    (en sachant que les champs id_genre et titre sont uniques) ?
    1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre;
    2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre, titre;

    Citation Envoyé par escartefigue Voir le message
    Oui, mais la clef auto-incrémentée est une précaution car
    - concise
    - stable
    - non sémantique
    => Je ne comprends toujours pas je pense qu'il faudrait que je fasse beaucoup d'exercicses dessus, si vous en avez a me proposer je suis preneur! (avec leur correction et explications derrieres)

    Mille Merci pour ces reponses, je vois tout de meme plus clair!

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par linklerydia Voir le message
    => Nous sommes sur MariaDB
    Il me semble que mariadb ne fait pas exception à la regle : having s'applique post groupage
    Re-Edit : MariaDB assume un group by par défaut si pas de group by mentionné (et donc il n'y a qu'un seul group) : https://mariadb.com/kb/en/sql-99/having-clause/

    Citation Envoyé par linklerydia Voir le message
    Quelle requete fonctionera sur l'ensemble des serveurs SQL
    (en sachant que les champs id_genre et titre sont uniques) ?
    1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre;
    2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_genre, titre
    FROM film
    WHERE 1
    GROUP BY id_genre, titre;
    Les colonnes du group by doivent être cohérentes avec celles du select, de ce point de vue, la requete 2 est OK
    Mais le filtre where ne veut rien dire dans les 2 cas
    De plus faire un groupage alors qu'il est mentionné "sachant que les champs id_genre et titre sont uniques", n'a aucun intérêt !


    Citation Envoyé par linklerydia Voir le message
    Je ne comprends toujours pas je pense qu'il faudrait que je fasse beaucoup d'exercicses dessus, si vous en avez a me proposer je suis preneur! (avec leur correction et explications derrieres)
    Il y a des tutoriels très bien faits sur ce forum, lisez les attentivement
    Edit : ici http://www.developpez.net/forums/d68...q-langage-sql/

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut remerciements
    Merci bien! je vais faire un tour sur le site!
    Merci de tes reponses!

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

Discussions similaires

  1. [MySQL] Questions include + sql
    Par Kerweb dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/02/2006, 10h01
  2. Question sur sql et ASP
    Par claralavraie dans le forum ASP
    Réponses: 5
    Dernier message: 23/12/2005, 11h41
  3. Quelques questions sur SQL Server 2000
    Par yinyang dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/12/2005, 19h39
  4. BTS Info de Gestion passé aujourd'hui question pour SQL
    Par red210 dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 29/05/2005, 14h48
  5. [langage] pb de question reponse
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2002, 11h59

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