Hi!
Ich halte es bei der Verwendung von "SELECT *" wie bei Berechtigungsvergaben: so wenig wie möglich, so viel wie nötig.
Nur dass hier der Vergleich hinkt. "SELECT * nicht verwenden" ist etwas absolutes, "so wenig wie möglich, so viel wie nötig" etwas relatives. Bei der Berechtigungsvergabe kannst du nicht einfach sagen, r-- reicht. Du musst die Besitzverhältnisse berücksichtigen, und wer welche Rechte benötigt. Du entscheidest also individuell/situationsabhängig, welche Rechte zu setzen sind. Und genauso individuell sollte man sich in allen anderen Situationen überlegen, ob das was man da verwendet für das zu erreichende Ziel angemessen ist.
Insbesondere Anfänger (und als solchen schätze ich hossi mal ein - wenn das nicht stimmt, möge man mir verzeihen) benutzen "SELECT *" viel zu oft viel zu unbedarft ... deswegen kann man ihnen gar nicht oft genug
... erklären, in welchen Situationen diese Vorgehensweise Nachteile bringt. Insbesondere sollte man sich selbst Gedanken machen, ob hier eine solche Situation vorliegen könnte oder ob man einfach nur seine Reflexe testet.
eintrichtern, dass sie möglichst immer darauf verzichten sollten.
Nein, nur dann, wenn man nicht alle Spalten braucht. Und dass man auch beim Ergänzen von Spalten so umsichtig agieren sollte, auch die Verwendungsstellen zu prüfen, ob immer noch alle Spalten benötigt werden oder alle außer der neuen.
Sobald ein Entwickler den Status des Anfängers verlassen hat (u.a. weil er weiß, was seine Datenbankabfragen eigentlich genau machen), dann ist es durchaus legitim, bei wenigen notwendigen Ausnahmefällen auch mal "SELECT *" zu nutzen - aber IMHO eben nur bei Leuten, die verstehen, was sie damit anrichten.
Und deswegen sollte man ihn mit echtem Wissen und Erfahrungsberichten füttern und nicht mit unerklärten "Grundsätzen".
Lo!