程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 十個節儉時光的MySQL敕令小結

十個節儉時光的MySQL敕令小結

編輯:MySQL綜合教程

十個節儉時光的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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved