天天看點

mysql的幾個知識點

常用指令

原則:能用可視化工具的盡量使用工具,指令行僅限于問題排查。

mysql -u ACCOUNT -pPWD -h IP -P port [-D database]	//連接配接資料庫
show databases; //顯示資料庫清單
use db_name;	//使用資料庫
show tables; //展示所有表
desc table_name; //展示表結構
select XXX from XXX where XXX;
select count(*) from XXX;	//統計總記錄
           

删除資料的兩種方法

delete from tablename [where XXX]; //可以指定條件,删除整表/部分記錄,會傳回被删除記錄數,執行速度不快
truncate TABLE tablename; //不可指定條件,删除整表,傳回記錄數為0,執行非常快,不可以恢複資料
delete from tablename where 1; //删除所有記錄後,自增字段不會恢複為1
           

結論:delete的效果有點像将mysql表中所有記錄一條一條删除到删完,而truncate相當于保留mysql表的結構,重新建立了這個表,所有的狀态都相當于新表。

count(1)、count(*)、count(column)

  • count(*)——對行的數目進行計算,包含NULL
  • count(column)——對特定的列的值具有的行數進行統計,不包含NULL值
  • count(1)——和count(*)效果一樣

關鍵結論:

  1. 列名為主鍵,count(列名)會比count(1)快。
  2. 列名不為主鍵,count(1)會比count(列名)快。
  3. 如果表多個列且沒有主鍵,那麼count(1)比count(*)快.
  4. 如果有主鍵,count(主鍵,聯合主鍵)比count(*)快.
  5. 如果表隻有一個字段,count(*)最快。

\g與\G

  • \g:作用相當于分号“;”
  • \G: 将查到結果的結構旋轉90度變成縱向
mysql> show tables \g
+----------------------------------+
| Tables_XXX    |
+----------------------------------+

mysql> select * from XXX \G
           

作者:AmyZYX

出處:http://www.cnblogs.com/amyzhu/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。