|
| Requête SQL sur une rubrique de clés composées |
| Iniciado por g.bonnevial, 08,mar. 2020 10:41 - 7 respuestas |
| |
| | | |
|
| |
| Publicado el 08,marzo 2020 - 10:41 |
Bonjour, Quelqu'un a-t-il déjà fait une requête (SELECT par exemple) à partir d'une rubrique composée ? Je ne trouve pas la bonne syntaxe.
sReq est une requete SQL= [ SELECT * FROM TTest WHERE IDTTestCity={pCleComposee} ] sReq.pCleComposee= ????
j'ai essayé HConstruitValClé(Id, City) j'ai essayé (Id, City)
Une réponse ? Merci Georges |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 08,marzo 2020 - 17:50 |
Bonjour,
Ecris ta requête "naturelle" sans te préoccuper des clés composées.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,marzo 2020 - 11:54 |
Le 08/03/2020 à 16:50, Jean-Pierre a écrit :
Bonjour,
Ecris ta requête "naturelle" sans te préoccuper des clés composées.
-- Bon dev, Jean-Pierre Bonjour, Merci de ta réponse. Que veux-tu dire par "naturelle" ? Si cela veut dire utiliser les différentes rubriques de la clé, quelle est l'intérêt d'une clé composée ? Cordialement, Georges |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 170 mensajes |
|
| Publicado el 09,marzo 2020 - 13:29 |
Bonjour Georges,
Admettons que tu aies à gérer le parc matériel de ta commune. tu aurais une table (fichier) listant tout ton matos :
materiel(num, libelle)
Ce matériel est déplacé de salle communale en salle communale en fonction des besoins de services, => une table(fichier) salles
salle(id, libelle, rue, ...)
et tu veux pouvoir affecter du matériel à une salle à une date donnée : => table(fichier) distribution_du_materiel
distribution_du_materiel(num_materiel, id_salle, date)
En créant une clef composée maClefComposee(id_materiel, id_salle, date) et en spécifiant, par exemple, que cette clef doit être unique, tu t'assures ainsi de l'impossibilité de positionner une table ou une chaise à deux endroits différents pour la même date.
Cela te semble-t-il suffisamment intéressant pour justifier de l'utilisation de clefs composées ?
-- -- Jean-JacquesMensaje modificado, 09,marzo 2020 - 13:29 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,marzo 2020 - 14:52 |
Le 09/03/2020 à 12:29, Padbrain a écrit :
Bonjour Georges,
Admettons que tu aies à gérer le parc matériel de ta commune. tu aurais une table (fichier) listant tout ton matos :
materiel(num, libelle)
Ce matériel est déplacé de salle communale en salle communale en fonction des besoins de services, => une table(fichier) salles
salle(id, libelle, rue, ...)
et tu veux pouvoir affecter du matériel à une salle à une date donnée : => table(fichier) distribution_du_materiel
distribution_du_materiel(num_materiel, id_salle, date)
En créant une clef composée maClefComposee(id_materiel, id_salle, date) et en spécifiant, par exemple, que cette clef doit être unique, tu t'assures ainsi de l'impossibilité de positionner une table ou une chaise à deux endroits différents pour la même date.
Cela te semble-t-il suffisamment intéressant pour justifier de l'utilisation de clefs composées ?
-- -- Jean-Jacques Bonjour, merci de tes explications. C'est bien pour ça que j'ai des clés composées. Mon problème est de comment les renseigner dans une requête SQL en temps que paramètres ? Cordialement, Georges |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 09,marzo 2020 - 15:42 |
Bonjour, Comme précisé plus haut, la recherche se fait sur les membres de la clé.
... WHERE (TTest.IDCity={pIDCity} AND TTest.NomCity={pNom} ) La création de la clé composé dans ce cas sert à améliorer le temps de recherche, car elle se fera sur les paires (ID,Nom) en ne contrôlant pas les ID qui n'ont pas de nom et vice versa (pour faire simple) -- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 09,marzo 2020 - 15:46 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,marzo 2020 - 18:16 |
les clés composées sont utilisables en direct dans les ordres hxxx (hfiltre, hlitrecherche, etc...) mais PAS dans les requêtes...
Dans les requetes tu pose tes conditions sur chacun des MEMBRES de la clé composée, et -SI- le moteur SQL décide que la façon la plus rapide de faire le travail est de parcourir la clé composée, il le fera. Il décide ce genre de chose en fonction des champs sur lesquels tu place tes conditions, et des conditions elle mêmes...
Donc, l'intéret des clés composées BIEN CONCUES est de fournir un accès plus rapide à certaines informations... Tu peux grandement accélérer les chose si tu sais ce que tu fais. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,marzo 2020 - 09:26 |
Le 09/03/2020 à 17:16, Argus a écrit :
les clés composées sont utilisables en direct dans les ordres hxxx (hfiltre, hlitrecherche, etc...) mais PAS dans les requêtes...
Dans les requetes tu pose tes conditions sur chacun des MEMBRES de la clé composée, et -SI- le moteur SQL décide que la façon la plus rapide de faire le travail est de parcourir la clé composée, il le fera. Il décide ce genre de chose en fonction des champs sur lesquels tu place tes conditions, et des conditions elle mêmes...
Donc, l'intéret des clés composées BIEN CONCUES est de fournir un accès plus rapide à certaines informations... Tu peux grandement accélérer les chose si tu sais ce que tu fais. Bonjour, Merci de votre réponse très claire. Ce n'est donc pas possible. Effectivement actuellement j'utilise l'ensemble des composantes de la rubrique dans mon code SQL. Bonne journée à tous Georges |
| |
| |
| | | |
|
| | | | |
| | |
|