mysql3 2 3 2 輸入查詢

2021-10-18 01:50:01 字數 3339 閱讀 2204

3.2. 輸入查詢

確保你連線上了伺服器,如在先前的章節討論的。連線上伺服器並佈代表選擇了任何資料庫,但這樣就可以了。知道關於如何查詢的基本知識,比馬上跳至建立表、給他們裝載資料並且從他們檢索資料更重要。本節描述輸入命令的基本原則,使用幾個查詢,你能嘗試了解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 = 'smith and age < 30;

如果你輸入select語句,然後按enter(回車)鍵並等待結果,什麼都沒有出現。不要驚訝,「為什麼該查詢這麼長呢?」,注意">提示符提供的線索。它告訴你mysql期望見到乙個未終止字串的餘下部分。(你看見語句中的錯誤嗎?字串"smith丟掉了第二個引號。)

走到這一步,你該做什麼?最簡單的是取消命令。然而,在這種情況下,你不能只是輸入\c,因為mysql作為它正在收集的字串的一部分來解釋它!相反,應輸入關閉的引號字元(這樣mysql知道你完成了字串),然後輸入\c:

mysql>select * from my_table where name = 'smith and age < 30;

'>'\c

mysql>

提示符回到mysql>,顯示mysql準備好接受乙個新命令了。

`>提示符類似於

'>和">提示符,但表示你已經開始但沒有結束以`>開始的識別符。

知道'>和">提示符的含義很重要,因為如果你錯誤地輸入乙個未終止的字串,任何後面輸入的行將要被mysql忽略--包括包含quit的行!這可能令人相當困惑,特別是如果取消當前命令前還不知道你需要提供終止引號。

mysql 輸入查詢 mySQL 輸入查詢

確保你連線上了伺服器,如在先前的章節討論的。連線上伺服器並佈代表選擇了任何資料庫,但這樣就可以了。知道關於如何查詢的基本知識,比馬上跳至建立表 給他們裝載資料並且從他們檢索資料更重要。本節描述輸入命令的基本原則,使用幾個查詢,你能嘗試了解mysql是如何工作的。這是乙個簡單的命令,要求伺服器告訴它的...

mysql 輸入查詢 MySQL

3.2.輸入查詢 確保你連線上了伺服器,如在先前的章節討論的。連線上伺服器並佈代表選擇了任何資料庫,但這樣就可以了。知道關於如何查詢的基本知識,比馬上跳至建立表 給他們裝載資料並且從他們檢索資料更重要。本節描述輸入命令的基本原則,使用幾個查詢,你能嘗試了解mysql是如何工作的。這是乙個簡單的命令,...

MYSQL輸入查詢

連線上伺服器並佈代表選擇了任何資料庫,但這樣就可以了。知道關於如何查詢的基本知識,比馬上跳至建立表 給他們裝載資料並且從他們檢索資料更重要。這是乙個簡單的命令,要求伺服器告訴它的版本號和當前日期。在mysql 提示輸入如下命令並按回車鍵 mysql select version current da...