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 :

Mes requêtes SQL sont-elles correctes ?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut Mes requêtes SQL sont-elles correctes ?
    Salut à tous,
    j'ai un exo avec des requêtes SQL à faire. J'ai la correction mais pour certaines que j'ai faites et qui ne sont pas identiques à la correction j'aimerais savoir si elles sont bonnes, autrement dit si mon raisonnement est bon.

    Il n'y en a que 3, en PJ. Vous pouvez corriger directement sur le .doc si vous voulez et le renvoyer.

    Merci de vos réponses.

    Salutations.

  2. #2
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    La meilleure façon de tester une requête c'est de voir le résultat de son exécution, réalise une petite base de données et teste directement les requêtes sur cette base

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Plutôt que tu poster un .doc, propriétaire, peu pratique et non-lisible par tout le monde, tu aurais mieux fait de le poster dur le forum directement en utilisant les balises qui vont bien.

    Je plussoie ChTiRiBi qui te conseille de tester.
    Par contre, ta dernière requête est fausse, ça se voit sans tester
    Dans la clause HAVING, tu donnes une valeur alors que tu dois donner une condition.

  4. #4
    Nouveau membre du Club Avatar de misterdi
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 31
    Points
    31
    Par défaut
    Salut,

    - En plus dans la 3e les GROUP BY ne sont pas correctes. Un moyen simple pour travailler correctement avec les GROUP BY est de se dire que les champs présents dans le SELECT doivent être un sous ensemble des champs du GROUP BY avec éventuellement des fonctions d'agrégation (MAX(), COUNT(), AVG(), ...).

    - Dans la 1er tu travaille avec DEPT.qqch alors que DEPT n'apparait pas dans le FROM.
    Il me semble aussi qu'il y a moyen de le faire qu'avec un seul sous-SELECT.

    - Dans la 2e requête, tu vas sélectionner tous les employés ayant été embauchés avant au moins 1 des employés du département 1 (or tu veux ceux qui ont été engagés avant TOUS les employés du département 1). Petit indice il me semble qu'on peut le résoudre avec une < ALL et un sous SELECT.
    En plus tu fais alors que tu renome tes tables dans le FROM. Le moteur va avoir un peu du mal à savoir de laquelle tu parles.

    L'exécution des requêtes dans un moteur SQL aurait pu te renseigner sur déjà pas mal d'erreurs synthaxiques et probablement aussi quelques erreurs de logique.
    Essaie p-ê d'utiliser Access pour tes exercices (ou d'installer mysql pour avoir une syntaxe plus souple).

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    @misterdi
    Essaie p-ê d'utiliser Access pour tes exercices (ou d'installer mysql pour avoir une syntaxe plus souple).
    Ces SGBD ne suivent pas forcément la norme SQL !

    Il faudrais que @romca détail !

  6. #6
    Nouveau membre du Club Avatar de misterdi
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Ces SGBD ne suivent pas forcément la norme SQL !
    Comme tous les SGBD (ils ont tous un peu (ou beaucoup) de SQL "dialectal"), mais il faut bien en choisir un et pour des exercices autant ne pas installer Oracle

Discussions similaires

  1. Mes requêtes SQL sont trop lentes
    Par Pgs dans le forum Langage SQL
    Réponses: 11
    Dernier message: 23/06/2008, 07h48
  2. "Blinder" mes requêtes SQL
    Par Tread dans le forum JDBC
    Réponses: 2
    Dernier message: 14/05/2008, 15h49
  3. Réponses: 1
    Dernier message: 07/03/2008, 16h07
  4. [SQL] Optimisation de mes requêtes SQL
    Par webAbsolu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/10/2007, 16h54
  5. Vérifier que mes connexions SQL sont bien fermées
    Par Guilhem_mdg dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/02/2007, 16h26

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