[Résolu][SQL] Différences entre * et l'énumération des champs - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu][SQL] Différences entre * et l'énumération des champs (/showthread.php?tid=887) |
[Résolu][SQL] Différences entre * et l'énumération des champs - desgui - 01-03-2007 Voici un simple exemble d'une requête :
Par contre, si ma table à, disons 25 champs, et que j'ai besion des 25 champs, il devient long d'écrire tous les champs dans la requête. Je peux alors utilisé le symbole *. Qu'elle est la différence entre les deux méthodes ? Y'a une métohde meilleure que l'autre ? Et dans quel cas ? RE: SQL - genosite - 01-03-2007 Dans la première tu sélectionne que le champ id alors que dans la deuxième tu sélectionne tout les champ. après sa dépens de se que tu veut faire Citation :SELECT * FROM connect ORDER BY id ASC RE: SQL - desgui - 01-03-2007 Je sais ça, mais supossons que j'ai 25 champs dans la table, est-il préférable de tout les écrire, ou de mettre * ? RE: SQL - Plume - 01-03-2007 Je suis pas certain de comprendre la question, car je ne vois pas 2 méthodes différentes. Cependant, si tu es absolument sûr d'avoir besoin de tous les champs, alors tu peux employer `*`, ça ne pose aucun problème - à ma maigre connaissance. Par contre, à partir du moment où tu n'a pas besoin de tous les champs, alors là, privilégie le listing des champs nécessaires. Ca évite de prendre des données inutiles. J'espère ne pas avoir tourner autour du pot sans y répondre ^^ RE: SQL - desgui - 01-03-2007 Merci pour la réponse. Je relis ma question, et je remarque que c'est vrai qu'elle n'était pas très clair. RE: [régler] SQL - Plume - 01-03-2007 En fait, c'est juste la première car tu m'as un peu grilled sur le deuxième que tu as posté ^^ Qui soit dit en passant était déjà bien plus clair. Content de t'avoir aidé Tchu ! RE: [régler] SQL - denisc - 01-03-2007 Je veux pas vous casser la baraque, mais, même si c'est vrai que le * peut être employé, il serai préférable de mettre la liste des champs pour plusieurs raisons... 1. Ils seront facilement lisibles dans ton code 2. Ils seront plus rapidement triés dans tes order by 3. Tu peux les récupérer dans l'ordre que tu désire, même s'ils ne sont pas rangés comme tu le voudrai dans ta BD 4. Ca ira plus vite à interpréter pour le SQL (explication : lorsque tu met *, l'interpréteur SQL fait dabord une requête dans la table système regroupant les tables pour récupérer la liste des champs, puis elle remplace le * par cette liste, et enfin elle effectue la requête que tu as demandée). Si tu utilises d'autres applications, telles que MSSQL par exemple, tu notera que quand tu crée des vues de tables, il remplace automatiquement les * par la liste des champs. C'est de l'optimisation de code Maintenant, la différence est suffisemment faible en terme de temps pour s'en passer... Mais si tu fait ça sur une boucle, alors il est préférable d'optimiser. RE: [régler] SQL - Plume - 02-03-2007 Une requête dans une boucle ?! RE: [régler] SQL - denisc - 03-03-2007 bin oui, déjà vu! |