十個節儉時光的MySQL敕令小結。本站提示廣大學習愛好者:(十個節儉時光的MySQL敕令小結)文章只能為提供參考,不一定能成為您想要的結果。以下是十個節儉時光的MySQL敕令小結正文
固然有很多基於GUI的MySQL客戶端存在,如有名的phpMyAdmin和SQLYog,但我一向愛好原生的MySQL敕令行客戶端,切實其實,在未熟習這些敕令行接口(CLI)之前,我們須要花一些時光來熟習它們,特殊是你日常平凡不是常常在具有壯大的CLI情況的操作體系下任務時,但只需經由一些演習,你便可以經由過程CLI治理用戶,閱讀你的數據庫和履行其它義務,其快感是其它人領會不到的。
在這篇文章中,我將會引見我在任務中積聚起來的一些MySQL敕令行客戶端技能,不論你測驗考試個中一個照樣一切技能,我敢包管你必定會節儉年夜量的時光。
趁便提一下,MySQL敕令行客戶端順應一切操作體系,固然包含Windows,但由於Windows原生CLI情況讓人害怕,是以推舉Windows用戶下載並裝置Console,它是Windows敕令行的一個替換處理計劃,供給了更壯大的功效,如便利的文本選擇,多標簽窗口等。
1、登錄進程主動化
准確設置裝備擺設的MySQL辦事器須要你供給用戶名和暗碼停止身份驗證,平日情形下,我們可以直接在mysql敕令後加上用戶名,出於平安斟酌,暗碼就不跟上了,回車履行時,敕令提醒符會提示你輸出暗碼。
%>mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. ...
經由過程這一個小小的改良,一年可以少輸出幾千次用戶名,累計起來在登錄時光上可以節儉幾個小時,創立一個.my.cnf文件,將其放在你的home目次下,假如是Windows,文件名則為my.ini,而且要放在MySQL裝置目次下,在這個文件中,添加上面的代碼,請應用你的登錄信息調換占位符。
[client] host = your_mysql_server user = your_username password = your_password
必定要准確設置這個文件的權限,避免敏感數據被竊視。
2、主動切換數據庫
登錄客戶端後,你須要切換到目的數據庫,平日我們會應用上面這個敕令來切換數據庫:
mysql>use wjgilmore_dev;
假如你想登錄後主動切換到目的數據庫,可以在上一步引見的文件中添加上面的敕令,留意地位也要放在[client]末節:
database = your_database_name
3、從劇本發送死令
設計一個新數據庫時,我愛好應用MySQL Workbench(MySQL任務台)設計形式和關系,它是一個特殊壯大的對象,你可以在圖形界面下治理你的形式,然後同步到MySQL辦事器,或將SQL敕令導出到一個文件,便利今後再導入到MySQL。
假如你愛好手寫代碼,如創立年夜量的存儲進程,或履行一個很長的銜接,你可以將SQL保留為一個文件,然後將這個文件傳遞給客戶端履行,如:
%>mysql < schema.sql
固然你須要指定銜接字符串,或象後面一樣經由過程設置裝備擺設文件來指定。
4、垂直顯示成果
即便是很簡略的表形式,也會包括幾列字段,例以下面的表由11個字段構成,當我履行一個全構造查詢時,輸出成果以下:
mysql> select * from accounts where username = 'wjgilmore';
+----+-----------+------------------+------------------------------
----+----------+-----------+------------+-----------+--------------
--------------------+---------------------+---------------------+
| id | username | email | password | zip_code | latitude | longitude | confirmed | recovery | created_on | last_login |
+----+-----------+------------------+-------------------------------
---+----------+-----------+------------+-----------+-----------------
-----------------+---------------------+---------------------+
| 7 | wjgilmore | [email protected] | 2b877b4b825b48a9a0950dd5bd1f264d | 43201 | 39.984577 | -83.018692 | 1 | 8bnnwtqlt2289q2yp81tuge82fty501h | 2010-09-16 14:48:41 | 2010-10-27 15:49:44 |
+----+-----------+------------------+----------------------------------
+----------+-----------+------------+-----------+----------------------
------------+---------------------+---------------------+
明顯我們不克不及接收,也沒法浏覽這類顯示成果,應用G敕令將下面丑惡的顯示成果轉換為垂直型。
mysql> select * from accounts where username = 'wjgilmore'G
*************************** 1. row ***************************
id: 7 username: wjgilmore email: [email protected]
password: 2b877b4b825b48a9a0950dd5bd1f264d zip_code: 43201
latitude: 39.984577 longitude: -83.018692
confirmed: 1 recovery: 8bnnwtqlt2289q2yp81tuge82fty501h
created_on: 2010-09-16 14:48:41 last_login: 2010-10-27 15:49:44
如許看起來就更舒暢一點。
5、啟用Tab鍵主動完勝利能
反復輸出表名和字段名無疑是很有趣的,給mysql客戶端傳遞一個--auto-rehash參數,或是在my.ini文件中添加上面的敕令來啟用Tab鍵主動完勝利能。
[mysql] auto-rehash
6、轉變提醒符
我不止一次想檢查或修正原告知表不存在的形式,碰到這類情形我經常會很恐怖,年夜多半時刻我登錯數據庫,招致毛病地刪除不應刪除的表,經由過程修正MySQL客戶端提醒符,讓它顯示以後操作的數據庫名字,從而防止誤操作,為了讓mysql客戶端具有這類交互性,登錄後履行上面的敕令便可:
mysql>prompt [d]> [dev_wjgilmore_com]>
你能夠願望永遠堅持這類後果,簡略,只須要將上面的敕令添加到你的設置裝備擺設文件中便可:
prompt = [d]>
固然不只限於提醒數據庫名字,還可以顯示以後日期和時光,主機名和用戶名,請浏覽MySQL手冊懂得更周全的信息。
7、應用平安更新預防災害
後面我也提到,當表被不測刪除時能夠會惹起恐怖,我信任不止我一小我有相似的閱歷,除不當心履行了DROP TABLE外,更讓人瓦解的是疏忽WHERE子句的UPDATE敕令,例如,假定你想應用上面的敕令修正用戶的用戶名:
mysql>UPDATE users set User = 'wjgilmore' WHERE User = 'wjgilmore-temp';
但當你沖忙地想出去吃飯時,能夠忘卻敲入前面的WHERE子句
mysql>UPDATE users set User = 'wjgilmore';
一旦你按下回車,效果就很嚴重,users表中一切用戶的用戶名全體被修正為wjgilmore了,為了不這類初級,但又會帶來災害性效果的毛病,請在設置裝備擺設文件中添加上面的敕令:
safe-updates
8、應用敕令文檔
很多用戶都曉得mysql客戶真個內置文檔,輸出help敕令時,它會顯示一長串的敕令列表。
mysql>help
... List of all MySQL commands: Note that all text commands must be
first on line and end with ';' ? (?) Synonym
for `help'. clear (c) Clear the current input statement.
connect (r) Reconnect to the server. Optional arguments are db and host. delimiter (d)
Set statement delimiter. ...
假如你不曉得DESCRIBE敕令若何應用,只須要輸出
mysql>help describe;
Name: 'DESCRIBE' Description: Syntax:
{DESCRIBE | DESC} tbl_name [col_name | wild] DESCRIBE provides information about the columns in a table.
It is a shortcut for SHOW COLUMNS FROM. These statements also display information for views. (See [HELP SHOW COLUMNS].) ...
9、應用Pager
有時你能夠想檢查表的某一行數據,但在屏幕上常常會顯示滿屏的數據,除應用LIMIT子句外,開啟客戶端pager,設置你的體系分頁適用法式:
mysql>pager more PAGER set to 'more'
假如要禁用pager,履行nopager敕令便可。
10、將輸入內容轉儲到文件
你能夠偶然須要將SQL履行成果輸入到一個文本文件,可使用SELECT INTO OUTFILE command敕令到達目標,或直接在mysql客戶端中啟用tee敕令,並制訂輸入文件完成異樣的功效,如:
mysql>tee sales_report.txt
小結
不論你是遴選個中一部門照樣測驗考試這10個技能,它們都邑為你節儉年夜量的時光和精神,並會加重你的苦楚,假如你曉得其它MySQL敕令行技能,無妨在評論中一路分享一下吧!
原文出處:http://www.developer.com/db/10-command-line-timesavers-for-mysql-tasks.html