Heim  >  Artikel  >  Datenbank  >  MySQL-Eingabeabfrage- und Exit-Abfragebefehle

MySQL-Eingabeabfrage- und Exit-Abfragebefehle

伊谢尔伦
伊谢尔伦Original
2016-11-23 13:36:521902Durchsuche

Stellen Sie sicher, dass Sie mit dem Server verbunden sind, wie im vorherigen Abschnitt beschrieben. Durch die Verbindung zum Server wird keine Datenbank ausgewählt, aber das ist in Ordnung. Es ist wichtiger, die Grundlagen der Abfrage zu kennen, als direkt mit der Erstellung von Tabellen zu beginnen, sie mit Daten zu laden und Daten daraus abzurufen. In diesem Abschnitt werden die Grundprinzipien der Befehlseingabe beschrieben. Mithilfe einiger Abfragen können Sie versuchen, die Funktionsweise von MySQL zu verstehen.

Dies ist ein einfacher Befehl, der den Server auffordert, ihm seine Versionsnummer und das aktuelle Datum mitzuteilen. Geben Sie an der MySQL>-Eingabeaufforderung den folgenden Befehl ein und drücken Sie die Eingabetaste:

mysql> SELECT VERSION(), CURRENT_DATE; 
+-----------------+--------------+
| VERSION()    | CURRENT_DATE |
+-----------------+--------------+
| 5.1.2-alpha-log | 2005-10-11  |
+-----------------+--------------+
1 row in set (0.01 sec)
mysql>

Diese Frage erklärt mehrere Aspekte von MySQL:

· Ein Befehl besteht normalerweise aus einer SQL-Anweisung, gefolgt von einem Unterabschnitt Nummer. (Es gibt einige Ausnahmen, die kein Semikolon erfordern. Das zuvor erwähnte QUIT ist ein Beispiel. Weitere Beispiele sehen wir später.)

· Wenn ein Befehl ausgegeben wird, sendet MySQL ihn an den Server und führt ihn aus explizit Das Ergebnis wird dann mit einem anderen MySQL angezeigt, das anzeigt, dass es bereit ist, andere Befehle anzunehmen.

· MySQL zeigt die Abfrageausgabe in einer Tabelle (Zeilen und Spalten) an. Die erste Zeile enthält die Spaltenbeschriftungen und die nachfolgenden Zeilen enthalten die Abfrageergebnisse. Typischerweise ist die Spaltenbezeichnung der Name der Spalte, die Sie der Datenbanktabelle entnehmen. Wenn Sie einen Ausdruck und nicht den Wert einer Tabellenspalte abrufen (wie im vorherigen Beispiel), markiert MySQL die Spalte mit dem Ausdruck selbst.

· MySQL zeigt an, wie viele Zeilen zurückgegeben wurden und wie lange die Abfrage gedauert hat, was Ihnen einen allgemeinen Überblick über die Serverleistung gibt. Da sie die Uhrzeit (nicht die CPU- oder Maschinenzeit) darstellen und von Faktoren wie Serverlast und Netzwerklatenz beeinflusst werden, sind diese Werte ungenau. (Der Kürze halber werden „Zeilen in Sammlung“ in anderen Beispielen in diesem Kapitel nicht mehr angezeigt.)

Möglichkeit, Schlüsselwörter in Groß- und Kleinschreibung einzugeben (Groß- und Kleinschreibung wird nicht berücksichtigt). Die folgenden Abfragen sind äquivalent:

mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE; 
这是另外一个查询,它说明你能将mysql用作一个简单的计算器:
mysql> SELECT SIN(PI()/4), (4+1)*5; +------------------+---------+
| SIN(PI()/4)      | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 |      25 |
+------------------+---------+
1 row in set (0.02 sec)

Die bisher angezeigten Befehle sind relativ kurze einzeilige Anweisungen. Sie können mehrere Anweisungen in einer Zeile eingeben, indem Sie die einzelnen Anweisungen durch ein Semikolon trennen:

mysql> SELECT VERSION(); SELECT NOW(); 
+-----------------+
| VERSION()       |
+-----------------+
| 5.1.2-alpha-log |
+-----------------+
1 row in set (0.00 sec)
+---------------------+
| NOW()               |
+---------------------+
| 2005-10-11 15:15:00 |
+---------------------+
1 row in set (0.00 sec)

Es ist nicht notwendig, einen Befehl alle in einer Zeile einzugeben. MySQL bestimmt, wo eine Anweisung endet, indem es nach dem abschließenden Semikolon und nicht nach dem Ende der Eingabezeile sucht. (Mit anderen Worten, MySQL akzeptiert Eingaben in freier Form: Es sammelt Eingabezeilen, führt sie jedoch erst aus, wenn ein Semikolon angezeigt wird.)

Hier ist ein Beispiel für eine einfache mehrzeilige Anweisung:

mysql> SELECT     -> USER()     -> , -> CURRENT_DATE; 
+---------------+--------------+
| USER()     | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2005-10-11  |
+---------------+--------------+

Beachten Sie in diesem Beispiel, dass sich die Eingabeaufforderung von mysql> nach Eingabe der ersten Zeile der mehrzeiligen Abfrage ändert. Dies ist genau die Art und Weise, wie mysql angibt, dass es die vollständige Anweisung nicht gesehen hat und darauf wartet der Rest. Die Eingabeaufforderung ist Ihr Freund, denn sie liefert wertvolles Feedback, und wenn Sie sie verwenden, wissen Sie immer, worauf MySQL wartet.

Wenn Sie entscheiden, dass Sie einen eingegebenen Befehl nicht ausführen möchten, geben Sie c ein, um ihn abzubrechen:

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

Beachten Sie auch die Eingabeaufforderung hier, nachdem Sie c eingegeben haben , wechselt es zurück zu MySQL> und gibt eine Rückmeldung, um anzuzeigen, dass MySQL bereit ist, einen neuen Befehl anzunehmen.

Die folgende Tabelle zeigt die verschiedenen Eingabeaufforderungen, die angezeigt werden können, und beschreibt kurz den Status von MySQL, den sie darstellen:

Eingabeaufforderungsbedeutung

MySQL> Bereit, neue Befehle anzunehmen.

-> Warten Sie auf die nächste Zeile eines mehrzeiligen Befehls.

'> Warten Sie auf die nächste Zeile und das Ende der Zeichenfolge, die mit einem einfachen Anführungszeichen ("'") beginnt.

"> Warten Sie auf die nächste Zeile und warten Sie auf das Ende der Zeichenfolge, die mit doppelten Anführungszeichen (""") beginnt.

`> Warten Sie auf die nächste Zeile und warten Sie auf das Ende des Bezeichners, der mit einem Backslash-Punkt („`“) beginnt.

/*> Warten Sie auf die nächste Zeile und das Ende des Kommentars, der mit /* beginnt.

Wenn Sie beabsichtigen, einen Befehl in einer einzelnen Zeile auszuführen, kommt es oft „zufällig“ vor, dass eine mehrzeilige Anweisung erscheint, jedoch ohne abschließendes Semikolon. In diesem Fall wartet MySQL auf weitere Eingaben:

mysql> SELECT USER()     ->

Wenn dies passiert (Sie glauben, dass Sie mit der Eingabe der Anweisung fertig sind, aber nur eine ->-Eingabeaufforderung antwortet), ist es wahrscheinlich, dass MySQL wartet für ein Semikolon . Wenn Sie die Aufforderung nicht bemerken, sitzen Sie möglicherweise eine Weile da, bevor Sie erkennen, was Sie tun müssen. Geben Sie ein Semikolon ein, um die Anweisung zu vervollständigen, und MySQL führt Folgendes aus:

mysql> SELECT USER()    -> ; 
+---------------+
| USER()    |
+---------------+
| jon@localhost |
+---------------+

Während der Zeichenfolgenerfassung werden die Eingabeaufforderungen „>“ und „>“ angezeigt (die darauf hinweisen, dass MySQL auf das Ende der Zeichenfolge wartet). In MySQL können Sie Zeichenfolgen schreiben, die von „“- oder „““-Zeichen umgeben sind (z. B. „Hallo“ oder „Auf Wiedersehen“), und MySQL ermöglicht die Eingabe von Zeichenfolgen, die sich über mehrere Zeilen erstrecken. Wenn Sie die Eingabeaufforderung „>“ oder „>“ sehen, bedeutet dies, dass eine Zeile eingegeben wurde, die eine Zeichenfolge enthält, die mit einem „“ oder „““-Klammerzeichen beginnt, aber kein passendes Anführungszeichen, das die Zeichenfolge beendet. Dies zeigt, dass Sie ein Anführungszeichen fahrlässig weggelassen haben. Zum Beispiel:

mysql> SELECT * FROM my_table WHERE name = &#39;Smith AND age < 30;     &#39;>

如果你输入SELECT语句,然后按Enter(回车)键并等待结果,什么都没有出现。不要惊讶,“为什么该查询这么长呢?”,注意">提示符提供的线索。它告诉你mysql期望见到一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串"Smith丢掉了第二个引号。)

走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入\c,因为mysql作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样mysql知道你完成了字符串),然后输入\c:

mysql> SELECT * FROM my_table WHERE name = &#39;Smith AND age < 30;     &#39;> '\c mysql>

提示符回到mysql>,显示mysql准备好接受一个新命令了。

`> 提示符类似于 '> 和"> 提示符,但表示你已经开始但没有结束以`> 开始的识别符。

知道'>和">提示符的含义很重要,因为如果你错误地输入一个未终止的字符串,任何后面输入的行将要被mysql忽略--包括包含QUIT的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn