熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

MySQL中文參考手冊-- 輸入查詢

2013-11-23 20:58:55  來源: MySQL 

  確保你連接上了服務器如在先前的章節討論的這樣做本身將不選擇任何數據庫來工作但是那很好從這點講知道關於如何出詢問的一點知識比馬上跳至創建表給他們裝載數據並且從他們檢索數據要來的重要寫本節描述輸入命令的基本原則使用幾個查詢你能嘗試讓自己mysql是如何工作的
  
  這是一個簡單的命令要求服務器告訴你它的版本號和當前日期在mysql>提示打入如下命令並按回車鍵
  
  mysql> SELECT VERSION() CURRENT_DATE;
  +++
  | version()  | CURRENT_DATE |
  +++
  | alog |   |
  +++
   row in set ( 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()/) (+)*;
  +++
  | SIN(PI()/) | (+)* |
  +++
  |   |    |
  +++
  
  至今顯示的命令是相當短的單行語句你甚至能在單行上輸入多條語句只是以一個分號結束每一條
  
  mysql> SELECT VERSION(); SELECT NOW();
  ++
  | version()  |
  ++
  | alog |
  ++
  
  ++
  | NOW()        |
  ++
  | :: |
  ++
  
  一個命令不必全在一個單獨行給出所以需要多行的較長命令不是一個問題mysql通過尋找終止的分號而不是尋找輸入行的結束來決定你的語句在哪兒結束(換句話說mysql接受自由格式輸入它收集輸入行但執行他們直到它看見分號
  
  這裡是一個簡單的多行語句的例子
  
  mysql> SELECT
    > USER()
    >
    > CURRENT_DATE;
  +++
  | USER()       | CURRENT_DATE |
  +++
  | joesmith@localhost |   |
  +++
  在這個例子中在你輸入一個多行查詢的第一行後要注意提示符如何從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中你可以寫由字符括起來的字符串 (例如hellogoodbye)並且mysql讓你進入跨越多行的字符串當你看到一個>或>提示符時這意味著你已經輸入了包含以括號字符開始的字符串的一行但是還沒有輸入終止字符串的匹配引號如果你確實正在輸入一個多行字符串很好但是果真如此嗎?不盡然更常見的>和>提示符顯示你粗心地省掉了一個引號字符例如
  
  mysql> SELECT * FROM my_table WHERE name = Smith AND age < ;
    >
  如果你輸入該SELECT語句然後按回車鍵並等待結果什麼都沒有出現不要驚訝為什麼該查詢這麼長呢?注意>提示符提供的線索它告訴你mysql期望見到一個未終止字符串的余下部分(你在語句中看見錯誤嗎?字符串Smith正好丟失第二個引號
  走到這一步你該做什麼?最簡單的是取消命令然而在這種情況下你不能只是打入\c因為mysql作為它正在收集的字符串的一部分來解釋它!相反輸入關閉的引號字符(這樣mysql知道你完成了字符串)然後打入\c
  
  mysql> SELECT * FROM my_table WHERE name = Smith AND age < ;
    > \c
  mysql>
  
  提示符回到mysql>顯示mysql准備好接受一個新命令了
  
  知道>和>提示符意味著什麼是很重要的因為如果你錯誤地輸入一個未終止的字符串任何比你下一步輸入的行好象將要被mysql忽略包括包含QUIT的行!這可能相當含糊特別是在你能取消當前命令前如果你不知道你需要提出終止引號

From:http://tw.wingwit.com/Article/program/MySQL/201311/29378.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.