Heim  >  Artikel  >  Datenbank  >  MySQL-Erste-Schritte-Tutorial 2 – Eingeben von Abfrage- und Beenden von Abfragebefehlen

MySQL-Erste-Schritte-Tutorial 2 – Eingeben von Abfrage- und Beenden von Abfragebefehlen

黄舟
黄舟Original
2017-02-23 11:26:131399Durchsuche

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 zu verstehen, wie MySQL funktioniert.

Dies ist ein einfacher Befehl, der den Server auffordert, ihm seine Versionsnummer und das aktuelle Datum mitzuteilen. Geben Sie den folgenden Befehl an der mysql>-Eingabeaufforderung 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 Abfrage erklärt mehrere Aspekte von mysql:

· Ein Befehl besteht normalerweise aus einem SQL Anweisung verfasst, gefolgt von einem Semikolon. (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 Senden Sie es an den Server und zeigen Sie die Ausführungsergebnisse an. Anschließend wird ein weiteres MySQL angezeigt, um zu zeigen, dass es bereit ist, andere Befehle anzunehmen.

· mysql zeigt die Abfrageausgabe in einer Tabelle (Zeilen und Spalten) an. Die erste Zeile enthält die Beschriftungen der Spalten 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 nach Eingabe der ersten Zeile der mehrzeiligen Abfrage von „mysql>“ in „->“ ändert, was genau dem entspricht, was mysql anzeigt it out Ich habe die vollständige Erklärung nicht gesehen und warte auf den 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:

提示符 含义
mysql> 准备好接受新命令。
-> 等待多行命令的下一行。
'> 等待下一行,等待以单引号(“'”)开始的字符串的结束。
"> 等待下一行,等待以双引号(“"”)开始的字符串的结束。
`> 等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
/*> 等待下一行,等待以/*开始的注释的结束。
Eingabeaufforderung
Bedeutung
mysql> ; Bereit für neue Befehle.
-> 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 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.

当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,mysql等待进一步输入:

mysql> SELECT USER()     ->

如果出现这种情况(你认为输完了语句,但是只有一个->提示符响应),很可能mysql正在等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐一会儿。输入一个分号完成语句,mysql将执行:

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

在字符串收集期间将出现 '> 和 "> 提示符(提示MySQL正等待字符串的结束)。在MySQL中,可以写由‘'’或‘"’字符括起来的字符串 (例如,'hello'或"goodbye"),并且mysql允许输入跨越多行的字符串。当看到一个 '> 或 "> 提示符时,这意味着已经输入了包含以‘'’或‘"’括号字符开始的字符串的一行,但是还没有输入终止字符串的匹配引号。这显示你粗心地省掉了一个引号字符。例如:

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的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。

 以上就是MySQL入门教程2 —— 输入查询及退出查询命令的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


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