MySQL入門--mysql命令

panpong發表於2019-05-27

mysql 命令

1)   呼叫 mysql 客戶機

         在命令列中提供憑證:

shell> mysql -u<name> -p<password>

         在登入路徑中提供憑證:

shell> mysql --login-path=<login-path>

         執行語句:

shell> mysql --login-path=<login-path> -e "<statement>"

         使用特定選項檔案執行:

shell> mysql --defaults-file=<opt_file_name> ...

         使用包含 SQL 語句的文字檔案執行:

shell> mysql ... < <file_name.sql>

         -u<name> (或 --username=<name> ):選項後面可帶或不帶空格。

         -p<password> (或 --password=<password> ):選項後面不帶空格。如果對該選項使用空值,則系統會提示您輸入口令。您也可以將其放在選項檔案中而不是命令列中,或者在登入路徑中提供憑證。

         --login-path=<login-path> :使用此登入路徑(透過 mysql_config_editor 建立)的憑證。

         -e "<statement>" (或 --execute="<statement>" ):呼叫 mysql 客戶機,然後執行 SQL 語句。

例如,要檢視當前的伺服器版本:

shell> mysql --login-path=admin -e "SELECT VERSION()"

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

| VERSION() |

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

| 5.6.10-enterprise-commercial-advanced-log |

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

         透過新增 > <file_name> 將輸出重定向到檔案中。

         透過新增 < <file_name> 來執行“指令碼” 或“批處理” 檔案。檔案必須為純文字格式,其中每個語句都有語句終結符。檔案必須位於執行 mysql 客戶機的主機上。 < -e 是互斥的。不能同時使用。

 

2)   避免過度使用DML語句

在呼叫客戶機時新增 --safe-updates 選項可以避免過度使用 update delete 的風險;

shell> mysql ... --safe-updates

         防止使用者發出具有潛在危險的語句:

UPDATE DELETE 只能與 WHERE LIMIT 一起使用。

—  WHERE 必須使用鍵值指定要修改的記錄。

SELECT 輸出受限。

您可能會不小心發出一些會修改表中多個行的語句或者會返回特別大的結果集的語句。

--safe-updates 選項可幫助防止這些問題。設定安全更新模式可施加以下 SQL 語句限制:

         UPDATE DELETE 僅在包含 WHERE 子句(該子句透過鍵值明確標識了要更新或刪除的記錄)或 LIMIT 子句時才允許使用。

         將單表 SELECT 語句中的輸出限制為不超過 1,000 行,但語句包含 LIMIT 子句時除外。

         僅當 MySQL 為處理查詢所檢查的行不超過 1,000,000 時,才允許使用多表 SELECT 語句。

 

3)   輸出格式

預設情況下,無論是以互動模式還是以批處理模式使用 mysql ,都會生成輸出:

Ø   互動式: 當以互動模式呼叫 mysql 時,會以表格格式顯示查詢輸出,其中使用長條和短劃線顯示在方框列中列出的值。

- --table (或 -t ):生成表格輸出格式,即使在以批處理模式執行時也是如此。這是互動模式的預設格式。

Ø   批處理: 在透過使用檔案作為命令列中的輸入源來呼叫 mysql 時, mysql 會以批處理模式執行,並且在顯示的查詢輸出中使用製表符來分隔資料值。

- --batch (或 -B ):生成批處理模式(用製表符分隔的)輸出(即使在以互動模式執行時也是如此),且不使用歷史檔案。這是批處理模式的預設格式。在批處理模式下,使用 --raw -r 選項可禁止字元轉換(例如,將換行符和回車符轉換為 \n \r 等轉義序列)。在原始模式下,將按字面值輸出字元。

Ø   使用以下選項可選擇不同於以上任一預設格式的輸出格式:

         --html (或 -H ):生成 HTML 格式的輸出

         --xml (或 -X ):生成 XML 格式的輸出

Ø   使用方法示例

mysql --login-path=local -t

mysql --login-path=local --table

mysql --login-path=local -B

mysql --login-path=local –batch

mysql --login-path=local -H

mysql --login-path=local --html

mysql --login-path=local -X

mysql --login-path=local --xml

 

4)   獲取常用命令

         列出所有的 MySQL 客戶機級別命令:

mysql> HELP

         顯示會話狀態資訊:

mysql> STATUS

         日誌會話查詢及其輸出:

mysql> tee my_tee_file.txt

 

5)   有關 SQL 語句的幫助

         檢視完整的 SQL 類別列表:

mysql> HELP CONTENTS

...

Account Management

Administration

Compound Statements

Data Definition

Data Manipulation

Data Types

...

         有關特定 SQL 類別或語句的幫助:

mysql> HELP Data Manipulation

mysql> HELP JOIN

         有關與狀態相關的 SQL 語句的幫助:

mysql> HELP STATUS

您可以在 mysql 客戶機中訪問伺服器端的幫助。伺服器端的幫助可針對特定主題在《 MySQL 參考手冊》中執行查詢(直接透過 mysql> 提示符)。使用 HELP 後跟關鍵字可訪問資訊。要顯示幫助系統最頂層的條目,請使用 CONTENTS 關鍵字。不必逐步瀏覽目錄列表中所列出的項來獲取有關特定主題的幫助。只需給出主題作為關鍵字即可獲得一些提示。例如, HELP STATUS 可生成與狀態相關的 SQL 語句的列表:

...

SHOW

SHOW ENGINE

SHOW MASTER STATUS

...

有關 HELP 語句的更多資訊,請參閱《 MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/help.html

 

6)    SQL 語句終結符

Ø   常用 SQL 終結符

; \g

\g (豎直顯示輸出)

Ø   中止語句

使用 \c 終結符

mysql> SELECT VERSION()\c

mysql>

SQL 語句需要有終結符:

         ; \g 常見的終結符,二者等效,可互換使用。

         \G 用於終止查詢並以垂直方式顯示查詢結果,其中顯示的每個輸出行的每個列值均位於單獨的行中。此終結符在查詢生成的輸出行非常寬的情況下十分有用(因為豎直格式可使結果更易閱讀)。

         \c 如果決定放棄正在編寫的語句,則可取消該語句並返回到新的 mysql> 提示符下。

 

7)   特殊語句終結符

Ø   使用多行語句時:

結尾處需要終結符。

提示符從 mysql> 改為 ->

mysql 中,可以使用多個輸入行輸入單個查詢。這樣可以更加輕鬆地發出長查詢,因為可以使用多個行來輸入長查詢。 mysql 在看到語句終結符之後才傳送查詢以供執行,如以下示例所示:

mysql> SELECT Name, Population FROM City

-> WHERE CountryCode = 'IND'

-> AND Population > 3000000;

如果語句導致了錯誤,則 mysql 會顯示伺服器所返回的錯誤訊息:

mysql> This is an invalid statement;

ERROR 1064 (42000): You have an error in your SQL syntax ; check

the manual that corresponds to your MySQL server version ...

 

Ø   結束會話並退出

使用 \q 終結符或者 QUIT EXIT

mysql> \q

Bye

Ø   其他命令:

         edit (\e) 使用 $EDITOR 編輯命令。

         pager (\P) PAGER 設定為 [to_pager] 。透過 PAGER 輸出查詢結果。

         rehash (\#) 重構完成雜湊。

這些其他命令可在 UNIX Linux 作業系統上執行,但在 Windows 上不受支援。

 

8)   重新定義提示符

         重新定義提示符:

mysql> PROMPT term 1>

term 1>

         在提示符中新增資訊:

mysql> PROMPT(\u@\h) [\d]\>

PROMPT set to '(\u@\h) [\d]\>'

(root@localhost) [test]>

         恢復原始提示符:

(root@localhost) [test]>

mysql> PROMPT

mysql>

mysql> 提示符是主要(或預設)提示符。它表示 mysql 客戶機已準備好,可供輸入新語句。您可以更改預設提示符,將當前資訊放入提示符中,例如使用者 (\u) 、主機 (\h) 和資料庫 (\d) ,如本幻燈片中的示例所示。

例假設以前將資料庫設定為 test

PROMPT 關鍵字之後第一個空格後面的所有內容都將成為提示符字串的一部分,包括其

他空格。該字串可包含特殊序列。要將提示符恢復為預設值,請指定不包含引數的

PROMPT \R

 

9)   使用指令碼檔案

Ø   mysql 中處理輸入檔案:

如果這些檔案包含 SQL 語句,則稱為:

—   “指令碼檔案”

—   “批處理檔案”

Ø   使用 SOURCE 命令:

mysql> SOURCE /usr/stage/world_innodb.sql

Query OK, 0 rows affected (0.00 sec)

...

當以互動模式執行時, mysql 可讀取透過鍵盤輸入的查詢。 mysql 也接受來自檔案的輸入。 MySQL 伺服器將執行檔案中的查詢,並顯示所生成的任何輸出。要執行的包含 SQL 語句的輸入文稱為“指令碼檔案” 或“批處理檔案” 。指令碼檔案應該為純文字檔案,其中所包含語句的格式要與以互動模式輸入的語句的格式相同。具體來說,每個語句都必須以終結符結束。

SOURCE 命令後的檔名無需用引號括起。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2645668/,如需轉載,請註明出處,否則將追究法律責任。

相關文章