Problème d'exécution d'une requête SQL [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 07-02-2012 à 14:07:28
Je suis d'accord avec vous.
J'ai besoin des indications si c'est possible.
Marsh Posté le 07-02-2012 à 14:19:10
1/ c'est indiqué dans le fichier de conf de mysql (' mais je ne sais pas ou ile st sous windows )
2/ une requete hors transaction n'a aps besoin d'un commit
3/ oui, dans les requetes, les procédures et la structure des table
4/ tu as fait quoi comme requetes ?µ
Marsh Posté le 07-02-2012 à 17:21:20
Citation : 1/ c'est indiqué dans le fichier de conf de mysql (' mais je ne sais pas ou ile st sous windows ) |
Pardon, je n'ai pas trouvé même le fichier conf de mysql.
Voici la liste des dossiers trouvés sous "C:\Program Files\MySQL\MySQL Server 5.5" :
Bin, include, dta, lin et share
Citation : 2/ une requete hors transaction n'a aps besoin d'un commit |
Je n'ai pas compris une requête hors transaction.
Quelle est la différence entre une requête et une transaction ?
Je suis en train d'exécuter des requêtes de LDD, LMD et LID.
Est ce que ce type de requêtes besoin de "commit" ou de "rollback" ?
Citation : 3/ oui, dans les requetes, les procédures et la structure des table |
Comment on note les commentaires en SQL ?
Exemple c'est possible ?
Citation : 4/ tu as fait quoi comme requetes ?µ |
Citation : a) Intitulé des services ayant en commande au moins une pièce de couleur rouge. |
Code :
|
Citation : b) Intitulé des services n'ayant pas en commande la pièce P5. |
Code :
|
Citation : c) Numéro des services ayant en commande toutes les pièces. |
Code :
|
Citation : d) Numéro des services ayant en commande au moins toutes les pièces commandées au service S3. |
Code :
|
Marsh Posté le 07-02-2012 à 22:22:52
En fait, une transaction, c'est une série d'instruction qui vont modifier ta base de données. Tu vas vouloir utiliser une transaction quand t'as peur qu'un souci vienne foutre le bordel dans les opérations que tu fais dessus. Un exemple :
Tu as un site de vente en ligne, et tu enregistres un nouvel article. Cela se traduit dans ta BDD par des inserts dans plusieurs tables différentes. Si en plein milieux de tes 12 inserts, t'as un problème (coupure de courant/internet), ça peut te mettre ta base de données dans un état que tu ne connais pas (et accessoirement foutre le bordel, imagines que t'enregistres une télé plasma, mais que ça plante au moment ou tu insères le prix. Tu peux te retrouver à vendre des TV gratos ). La transaction va "envelopper" toutes ces opérations, et si l'une d'entre elle échoue, alors aucune autre ne sera validée, et ta BDD restera inchangée.
Mais si tu débutes dans les BDD, je pense pas que tu voies masse de transactions.
Pour les requêtes, j'utiliserait les jointures, ça caractérise pas mal les choses déja.
Par exemple, pour la première
Code :
|
Dis nous si ça marche (et si t'as d'autres questions )
Nico
Marsh Posté le 17-02-2012 à 12:55:14
Citation : d) Numéro des services ayant en commande au moins toutes les pièces commandées au service S3. |
Voici ma proposition :
Code :
|
Mais, il n'affiche pas tous les résultats. Il y a un service qui répond au requête posée mais ce service n'apparait pas dans le résultat final.
Pourquoi ?
A mon avis, a part le nombre de pièces il faut aussi comparer entre les noms de pièces. Si oui, comment on procède ?
Merci.
Marsh Posté le 17-02-2012 à 16:16:44
flo850 a écrit : 1/ c'est indiqué dans le fichier de conf de mysql (' mais je ne sais pas ou ile st sous windows ) |
Pour le 2 c'est un peu incomplet car :
- les requêtes DDL (Data Definition Langage) n'ont jamais besoin de commit pour être effective
- les requêtes DML (Data Modification Langage) ont toujours besoin de commit pour pour être effective
Après ce n'est pas parce que les SGBD utilisent par défaut un mode "auto-commit" qu'il n'y a pas eu de transaction et de commit.
Marsh Posté le 07-02-2012 à 09:22:14
Bonjour,
Tout d'abord, merci beaucoup pour vos réponses et vos remarques.
1) Je voulais savoir l'emplacement de la base et ses tables associés après leur création.
Où se trouve exactement la base créée dans le répertoire d'installation de MySQL parce que je n'ai pas trouver dans C:\Program Files\MySQL\MySQL Server 5.5\data ?
2) Je voulais savoir le rôle d'ordre SQL "commit" puisque même sans "commit" on aura la persistance des données ou bien il faut "commit" pour valider les différentes manipulations effectuées sur la base de données créée ?
3) Est ce que on peut mettre de commentaires en SQL comme dans les autres langages de programmation ?
4) Je trouve de difficultés pour formuler les requêtes suivantes :
a) Intitulé des services ayant en commande au moins une pièce de couleur rouge.
b) Intitulé des services n'ayant pas en commande la pièce P5.
c) Numéro des services ayant en commande toutes les pièces.
d) Numéro des services ayant en commande au moins toutes les pièces commandées au service S3.
Voici le schéma relationnel :
CLIENT (NumC, NOM, ADRESSE)
SERVICE (NumS, INTITULE, LOCALISATION)
PIECE (NumP, DESIGNATION, COULEUR, POIDS)
ORDRE (#NumP, #NumS, #NumC, QUANTITE)
Merci