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