8797 sujets

Développement web côté serveur, CMS

Bonjour.
J'en apprends chaque jour un peu plus mais je ne suis pas au bout...
Aujourd'hui juste une "interrogation":

J'ai dans ma table SQL 6 champs.
Je lance la requête habituelle "SELECT * FROM truc WHERE id=xxx"
pour sélectionner une ligne d'enregistrement que je traite ensuite sans problème. (tout va bien, je n'ai pas de problème,mais...)

Je me disais que:
C'est peut-être pas très "bien" (ni très "productif") de faire un SELECT * alors que dans un premier temps je n'ai besoin que de considérer le champ id....
Mais, si je fais un "SELECT id FROM truc WHERE id=xxx" pourrais-je ensuite accéder et traiter les autres champs de mon enregistrement? (ou ma requête ne pourra-t-elle me renvoyer que la valeur du champ id ?)

(Je pense que c''est le genre de question qui doit énerver "ceux qui savent", mais s'il vous plaît.... Je débute, je débute... Merci d'avance)
Modifié par Mohican (06 Sep 2005 - 16:08)
Salut Mohican....

je ne suis pas certain que ce soit le bon salon pour parler SQL, un modérateur nous déplacera si tel est la cas...


Quand tu fais select * comme tu le dis tu prends tous ce qu'il y a dans la table.

Alors que si tu fais un Select ID From , ben tu ne prends que l'ID. comment veut tu pouvoir afficher des éléments que tu n'a pas selectionnés ?


Si tu souhaite faire propre et à l'économie prends ce qu'il te faut.

ex. table nomé "users"


select users.Nom, users.ID, users.Age ect.... FROM users avec ta clause where
Administrateur
En effet, c'est un "langage serveur", j'ai déplacé dans le bon Salon.

Cela n'a par contre aucun rapport avec les Standards du web, c'est une simple question à propos du langage SQL qui trouverait beaucoup mieux sa place sur un Forum consacré à (PHP/)MySQL par exemple.
Je t'invite à relire l'Annonce Bienvenue au salon "langages serveur et standards" de ce salon qui te donnera des pistes pour savoir où chercher.
Je laisse le topic ouvert le temps qu'on réponde à ta question mais merci à l'avenir de ne poser que des questions en rapport avec le sujet principal d'Alsacréations Smiley cligne

Felipe
Modifié par Felipe (06 Sep 2005 - 15:41)
Merci.
Donc si je comprends bien:
SELECT [là ma liste de champs à utiliser] (...) WHERE champ0=xxx
est "mieux" que
SELECT * WHERE champ0=xxx

Dois-je comprendre que :
( SELECT * )
lit TOUS les champs de TOUS les enregistrements
alors que
(SELECT [là ma liste de champs à utiliser] (...) WHERE champ0=xxx)
ne va lire que les champs de l'enregistrement demandé ?

(désolé de poser de telles questions de néophyte, mais c'est souvent dur de trouver des réponses à des questions qui semblent triviales...)
Désolé Felipe, j'ai envoyé trop vite...
Allez juste une réponse et on clot le sujet...
(faut dire que sur Alsa... on est si bien reçu... c'est pas partout tu sais...)
la der alors..... sinon en MP
Mohican a écrit :

Dois-je comprendre que :
( SELECT * )
lit TOUS les champs de TOUS les enregistrements
alors que
(SELECT [là ma liste de champs à utiliser] (...) WHERE champ0=xxx)
ne va lire que les champs de l'enregistrement demandé ?



SELECT * lit tous les champs de tous les enregistrement en fonction de la clause "WHERE" !

si tu écris WHERE id = 1 il lira tous les champs de l'enregistrement 1.

mais si tu as 50 champs et que tu n'a besoin que de nom et prénom, ben il est plus pertinent de ne prendre que çà...

çà répond à ta question ?
Bonsoir,
je ne sais plus où est le bllet que j'avais trouvé il y a un certain temps, mais il traitait du select *. Tout ce que je sais c'est qu'il était titré "La guerre des étoiles".

En gros, il faut éviter le select * comme la peste, même si tu as select a, b, c, d, e, f, g, ..., z from table1, table2, table3...