首頁  >  文章  >  資料庫  >  MySQL入門教學2 —— 輸入查詢與退出查詢指令

MySQL入門教學2 —— 輸入查詢與退出查詢指令

黄舟
黄舟原創
2017-02-23 11:26:131393瀏覽

確保你連接上了伺服器,如在上一章節討論的。連接上伺服器並不代表選擇了任何資料庫,但這樣就可以了。知道關於如何查詢的基本知識,比馬上跳至建立表格、給他們裝載資料並且從他們檢索資料更重要。本節描述輸入指令的基本原則,使用幾個查詢,你能試著去了解mysql是如何運作的。

這是一個簡單的命令,要求伺服器告訴它的版本號碼和目前日期。在mysql>提示輸入如下指令並按下回車鍵:

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

這詢問說明mysql的幾個面向:

· 一個指令通常由SQL語句組成,隨後跟著一個分號。 (有些例外不需要分號。早先提到的QUIT是一個例子。後面我們將看到其它的例子。)

· 當發出一個命令時,mysql將它發送給伺服器並顯示執行結果,然後顯示另一個mysql>顯示它準備好​​接受其它命令。

· mysql用表格(行和列)方式顯示查詢輸出。第一行包含列的標籤,隨後的行是查詢結果。通常,列標籤是你取自資料庫表的欄位的名字。如果你正在檢索一個表達式而非表格列的值(如剛才的例子),mysql用表達式本身標記列。

· mysql顯示傳回了多少行,以及查詢花了多長時間,它給你提供伺服器效能的一個大致概念。因為他們表示時鐘時間(不是 CPU 或機器時間),並且因為他們受到諸如伺服器負載和網路延遲的影響,因此這些值是不精確的。 (為了簡潔,在本章其它例子中不再顯示「集合中的行」。)

能夠以大小寫輸入關鍵字(大小寫不敏感)。下列查詢是等價的:

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)

至此顯示的指令是相當短的單行語句。你可以在一行上輸入多條語句,只需要以一個分號間隔開各語句:

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)

不必全在一個行內給出一個命令,較長命令可以輸入到多個行中。 mysql透過尋找終止分號而不是輸入行的結束來決定語句在哪裡結束。 (換句話說,mysql接受自由格式的輸入:它收集輸入行但直到看見分號才執行。)

這裡有一個簡單的多行語句的例子:

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

在這個例子中,在輸入多行查詢的第一行後,要注意提示符如何從mysql>變成->,這正是mysql如何指出它沒見到完整的語句並且正在等待剩餘的部分。提示符號是你的朋友,因為它提供有價值的回饋,如果使用該回饋,總是知道mysql正在等待什麼。

如果你決定不想執行正在輸入過程中的一個命令,輸入\c取消它:

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

這裡也要注意提示符,在你輸入\c以後,它切換回到mysql>,提供回饋以表明mysql準備接受一個新指令。

下表顯示出可以看見的各個提示符號並簡述它們所表示的mysql#的狀態:

提示符號 意義
mysql> #準備好接受新指令。
-> 等待多行指令的下一行。
'> 等待下一行,等待以單引號(“'”)開始的字串的結束。
"> 等待下一行,等待以雙引號(“"”)開始的字串的結束。
`> 等待下一行,等待以反斜點(‘`’)開始的識別符的結束。
/*> 等待下一行,等待以/*開始的註解的結束。

当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,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)! 


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn