Einfache Abfrage mit Eingabeaufforderung

Hallo,
folgende Situation:
Ich habe lediglich eine große Tabelle mit Daten über verschiedene PKW’s gesammelt. Jetzt möchte ich eine Abfrage erstellen, wo der Benutzer z.B. den Fahrzeugtyp (z.B. Astra, Golf, Passat usw.) eingeben kann und dann lediglich alle Spalten mit diesen Inhalten angezeigt werden.
Ich denke mal das sollte mittels SQL ja möglich sein.
Die Frage ist nur eben mit welchem Befehl ?

Für eure Hilfe wäre ich sehr dankbar.

Das klingt nach … “nicht normalisiert”.

Jetzt möchte ich eine Abfrage erstellen, wo der Benutzer z.B. den Fahrzeugtyp (z.B. Astra, Golf, Passat usw.) eingeben kann und dann lediglich alle Spalten mit diesen Inhalten angezeigt werden.

Die anzuzeigenden Spalten legt man beim SELECT in der Select-Liste an, das Suchkriteriem im WHERE. Das Resultat sind dann 0 oder mehr Zeilen. Offensichtlich solltest Du erst einmal diese Begriffe auseinanderhalten.

Ich denke mal das sollte mittels SQL ja möglich sein.
Die Frage ist nur eben mit welchem Befehl ?

Für eure Hilfe wäre ich sehr dankbar.

SELECT hersteller, typ, baujahr, tachostand FROM autos WHERE hersteller=‘VW’ and typ in (‘Golf’,‘Passat’) ORDER BY baujahr;


Könnte vielleicht Dir helfen, falls Dein Tabellendesign haargenau zu meiner Vermutung paßt.

Andreas

Erstmal vielen Dank.
Die Abfrage ist soweit richtig, nur möchte ich ja, dass der jeweilige Nutzer der Datenbank sozusagen den WHERE befehl definiert.
Ich möchte ja ungern hunderte Abfragen schreiben, die die Nutzer dann ausführen können. Sondern ich möchte mittels Eingabebox beim Starten der Datenbank den Benutzer bitten z.B. den Fahrzeughersteller einzugeben, welcher dann gesucht werden soll.
Und genau dort hängt es bei mir, da ich keinen Befehl für eine solche Eingabebox mit anschließender Verarbeitung kenne.

SQL kennt sowas nicht. Du brauchst also ein Client-Programm, was das übernimmt. Schnellschuß:

test=> create table auto (marke text, baujahr int);
CREATE TABLE
test=*> copy auto from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> trabbi       1970
>> vectra       2001
>> \.
test=*> commit;
COMMIT
test=> \q
kretschmer@pegasus:~$ cat frage.sh
#!/bin/sh
echo "Marke:"
read marke
echo "select baujahr from auto where marke='$marke';" | psql test

kretschmer@pegasus:~$ ./frage.sh
Marke:
trabbi
 baujahr
---------
    1970
(1 row)

kretschmer@pegasus:~$ ./frage.sh
Marke:
vectra
 baujahr
---------
    2001
(1 row)

Andreas