Weiter Zurück [Inhalt] Online Suche im Handbuch

31.2 Eingabe von Abfragen

Vergewissern Sie sich, daß Sie mit dem Server verbunden sind. Es wurde natürlich noch keine Datenbank ausgewählt, mit welcher Sie nun arbeiten könnten. Ein MySQL Server kann viele verschiedene Datenbanken für unterschiedlichste User mit unterschiedlichsten Zugriffsrechten beherrbergen. Hierzu kommen wir später

Wichtiger im Moment ist, daß Sie lernen, wie man Befehle absetzt, wie man Datenbanken anlegt, Daten in diese einlädt und Abfragen startet.

Dieses Kapitel beschreibt die einfachsten Grundlagen, wie man Eingaben tätigt

Hier nun eine einfache Eingabe, die den Server nach seiner Versionsnummer und dem Datum fragt:


mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version()    | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19   |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>

Die Ausgabe zeigt eine Reihe von Dingen:

Folgende Befehle sind gleichwertig, es erfolgt keine Unterscheidung zwischen Groß- und Kleinschreibung:


mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

Eine weitere Abfrge, die zeigt, daß MySQL auch als Taschenrechner arbeitet:


mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
|    0.707107 |      25 |
+-------------+---------+
Diese Befehle bisher waren nun besonders kurze Einzeiler. Es können aber auch mehrere Befehle gleichzeitig in einer Zeile eingegeben werden:

mysql> SELECT VERSION(); SELECT NOW();
+--------------+
| version()    |
+--------------+
| 3.22.20a-log |
+--------------+

+---------------------+
| NOW()               |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+

Wie man sieht, erfolgt die Ausgabe auf mehrere Befehle nacheinander.

Die Eingabe kann so lang sein, wie Sie wollen und durch mehrere "RETURN" in mehreren Zeilen erfolgen. Erst wenn MySQL ein Semikolon innerhalb der Eingaben erkennt, die mit "RETURN" nur bestätigt werden, werden die Befehle ausgeführt. Ein einfaches "RETURN" ohne Semikolon in der Eingabe bewirkt noch nichts. Hier eine weitere, mehrzeilige Eingabe:

mysql> SELECT
    -> USER()
    -> ,
    -> CURRENT_DATE;
+--------------------+--------------+
| USER()             | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18   |
+--------------------+--------------+

Das Beipiel zeigt, daß durchaus mehrere Zeilen eingegeben werden können. Erst mit einem Semikolon wird der Befehl gültig und abgearbeitet. Diese Tatsache ist wichtig, wenn man z.B. an WWW-Interfaces arbeitet. Die PERL oder PHP Scripte machen im Prinzip nichts anderes als den Editor so zu bedienen, wie Sie es gerade auch tun.

Wenn Sie entscheiden, das ein Befehl nicht mehr ausgeführt werden soll, während Sie noch bei der Eingabe sind, so können Sie die Eingabe durch \c abbrechen:

mysql> SELECT
    -> USER()
    -> \c
mysql>

Es passiert recht häufig, daß man bei einer komplexeren Abfrage ein Anführungszeichen einfach übersieht. Man ist zuerst der Meinung, daß alles korrekt ist, gibt zum Abschluß das Semikolon ein und drückt "RETURN":

mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;
    ">

Man sieht an dem Prompt, daß MySQL noch irgendetwas erwartet, obwohl ein Semikolon eingegeben wurde. In diesem Falle ist offensichtlich, daß das Semikolon anders interpretiert wird, als zuvor beschrieben.

Das Beste, was man dann tun kann, ist einfach \c einzugeben, damit mysql dann den Befehl abbricht.

An diesem Punkt gibt man dann folgendes ein:


mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;
    "> "\c
mysql>

MySQL zeigt nun an, daß der Befehl abgebrochen wurde. Es erscheint der normale Promt.


Weiter Zurück [Inhalt] Online Suche im Handbuch