MySQL中文參考手冊 獲得資料庫和表的信

2021-05-26 13:17:20 字數 3833 閱讀 7308

確保你連線上了伺服器,如在先前的章節討論的。這樣做本身將不選擇任何資料庫來工作,但是那很好。從這點講,知道關於如何出詢問的一點知識,比馬上跳至建立表、給他們裝載資料並且從他們檢索資料要來的重要寫。本節描述輸入命令的基本原則,使用幾個查詢,你能嘗試讓自己mysql是如何工作的。

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

mysql> select version(), current_date;

+--------------+--------------+

| version()  | current_date |

+--------------+--------------+

| 3.22.20a-log | 1999-03-19  |

+--------------+--------------+

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.707107 |   25 |

+-------------+---------+

至今顯示的命令是相當短的,單行語句。你甚至能在單行上輸入多條語句,只是以乙個分號結束每一條:

mysql> select version(); select now();

+--------------+

| version()  |

+--------------+

| 3.22.20a-log |

+--------------+

+---------------------+

| now()        |

+---------------------+

| 1999-03-19 00:15:33 |

+---------------------+

乙個命令不必全在乙個單獨行給出,所以需要多行的較長命令不是乙個問題。mysql通過尋找終止的分號而不是尋找輸入行的結束來決定你的語句在哪兒結束。(換句話說,mysql接受自由格式輸入:它收集輸入行但執行他們直到它看見分號。)

這裡是乙個簡單的多行語句的例子:

mysql> select

-> user()

-> ,

-> current_date;

+--------------------+--------------+

| user()       | current_date |

+--------------------+--------------+

| joesmith@localhost | 1999-03-18  |

+--------------------+--------------+

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

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

mysql> select

-> user()

-> \c

mysql>

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

下表顯示出你可以看見的各個提示符並總結他們意味著mysql在什麼狀態下:

提示符 意思 

mysql> 準備好接受新命令

-> 等待多行命令的下一行

'> 等待下一行,收集以單引號(「'」)開始的字串 

"> 等待下一行,收集以雙引號(「"」)開始的字串

當你打算在乙個單行上發出乙個命令時,多行語句通常「偶然」出現,但是忘記終止的分號。在這種情況中,mysql等待進一步輸入:

mysql> select user()

->

如果這發生在你身上(你認為你輸完了語句但是唯一的反應是乙個->提示符),很可能mysql正在等待分號。如果你沒有注意到提示符正在告訴你什麼,在認識到你需要做什麼之前,你可能花一會兒時間呆坐在那兒。進入乙個分號完成語句,並且mysql將執行它:

mysql> select user()

-> ;

+--------------------+

| user()       |

+--------------------+

| joesmith@localhost |

+--------------------+

'>和">提示符出現在在字串收集期間。在mysql中,你可以寫由「'」或「"」字元括起來的字串 (例如,'hello'或"goodbye"),並且mysql讓你進入跨越多行的字串。當你看到乙個'>或">提示符時,這意味著你已經輸入了包含以「'」或「"」括號字元開始的字串的一行,但是還沒有輸入終止字串的匹配引號。如果你確實正在輸入乙個多行字串,很好,但是果真如此嗎?不盡然。更常見的,'>和">提示符顯示你粗心地省掉了乙個引號字元。例如:

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

">

如果你輸入該select語句,然後按回車鍵並等待結果,什麼都沒有出現。不要驚訝,「為什麼該查詢這麼長呢?」,注意">提示符提供的線索。它告訴你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中文參考手冊 0?譯者序 1 mysql 一般的資訊 1.1 什麼是 mysql 1.2 關於本手冊 1.2.1 本手冊中使用的約定 1.3 mysql 歷史 1.4 mysql 主要特徵 1.5 mysql 穩定性?1.6 順應 2000 年 1.7 sql 一般資訊和教程 1.8 有用...

FastCGI中文參考手冊

請求已發生次數 count 2.fastcgi程式為長生存期應用程式,如在設計中有缺陷會產生記憶體溢位問題,對伺服器造成安全隱患。且這種溢位是不可預見性。本程式初始化了乙個控制變數,一旦使用者請求次數達到預先設定的數量程式結束,下一次請求將重新初始化。usr bin perl use fcgi us...