1. 程式人生 > 資料庫 >Mysql實戰(DML增刪改+Select)

Mysql實戰(DML增刪改+Select)

DML(增刪改)

 insert 

   

   

 update

   

 delete

   

     說明:update和delete都要寫清楚where

 truncate(清空表)

  

 區別:

     

 


 


 select (查是最重要的)

 https://www.bilibili.com/video/BV1NJ411J79W?p=27   3:42

 

簡單查詢:

 去重:

 WHERE:配合NOT AND OR

 

 


 模糊查詢:(本質是 比較運算子)

 

Like   %和_分別是:任意個、一個

 

 

 

 In   (後面括號內必須是全稱、並且不能用%和_)

 

 

 


 聯表查詢Join

聯表查詢的關鍵在於兩個表的 "交叉點" ,交叉點在兩個表中都有,所以要分清楚:

 

 (是先join再select麼?)

JOIN ON連線查詢

WHERE等值查詢

ON和WHERE:查詢效果是一樣的,但原理&效率分析,還不清楚

 

 


 父子關係 (pid)

   

 


 

 

分組 GROUP BY過濾 HAVING一般組合使用:

  (用GROUP BY就不用WHERE,而用HAVING來說明 次要條件)

  

 

排序 ORDER BY

     ( ASC+DESC )

 

分頁 LIMIT

   LIMIT 0,10  //startIndex, pageSize  //起始號碼,每頁個數

 

 


 子查詢

  

 兩種方法:

  方式一:先連線,再用select...where篩選(總共只有一個select)

  

 

  方式二:先按條件找到關鍵詞,再根據關鍵詞去進一步select(有2或多個select)

   

 

目測使用多個select的子查詢的方法,不會過於擴大表,提高查詢的總速度??

  再舉一個例子:

  

 

 


 MySQL函式

 

 

 

   獲取使用者、獲取版本:

 

 

  COUNT()  計數:

  

  SUM()  求和

  AVG()  

  MIN()  MAX()

  

 

 


 


MD5加密

原理:Hash函式、不可逆運算

 

 

 

 


索引

  MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質:索引是資料結構。

  

 

   

   時間從O(n)到O(1),一次性就查到了

 

  

 

http://blog.codinglabs.org/articles/theory-of-mysql-index.html

 


 


 Mysql備份

   

 備份方式:

  1.直接拷貝物理檔案:

  

   2.Navicat等視覺化介面裡:右擊,備份匯出

   3.使用命令列mysqldump命令:

  

   例:

 

 


 

JDBC示例

https://www.bilibili.com/video/BV1NJ411J79W?p=38   14:13

 

 

 executeUpdate & executeSelect


 

SQL注入

  例子:

 


 

IDEA連線資料庫(瞭解)

  

然後填寫資料庫資訊(資料庫名、使用者、密碼等)基本上和Navicat一樣流程;

   然後開啟設定,

   之後勾選需要展示的資料庫即可

 

 

 


 

事務

try{

  setAutoCommit(false); //關閉自動提交,

  然後進行需要的操作(需要保持原子性的幾行操作)

  commit();//然後再提交

}

catch exception{

  rollback(); //失敗回滾

}

 


 

連線池

  

 

 

池化技術:準備一些預先的資源,過來就連線準備好的,但用完要釋放

  

 

開源資料來源實現(拿來即用):DBCP   C3P0   Druid

  

     

Druid 

 (後面再仔細學吧~)

https://www.bilibili.com/video/BV1NJ411J79W?p=45

https://www.bilibili.com/video/BV1J4411877m?p=100