標籤:mysql 基礎文法
一,其他資料操作(進階操作)
蠕蟲複製(insert into 表名(欄位列表) select *|欄位列表 from 表名)
主鍵重複:insert into 表名(欄位列表)values(值列表)on duplicate key update 欄位1=值1,欄位2=值2…… replace into 表名(欄位列表) values(值列表)
刪除和修改的時候都可以加上order by和limit子句
select選項(all,distinct,預設值是all)
別名:欄位|運算式|表名|子查詢
二,五子句
where:
1. where的文法和流程
2. Mysql運算子(關係運算子,邏輯運算子、between and、in和not in)
3. where子句的其他形式:空值查詢(is[not] null),模糊查詢(like、萬用字元_和%)
4.where子句的本質是將資料從磁碟篩選到記憶體中,而having子句是將記憶體中的資料再次進行篩選
5.where子句後面不能使用統計函數,但是having子句可以,因為只有在記憶體中的資料才能直接參与運 算
b.group by子句:分組統計查詢語句,往往就是配合著統計函數(彙總函式)一起使用
1. 多欄位分組
2. 統計函數:max、min、sum、avg、count
3. 統計函數可以單獨使用,此時相當於把整個表分成一組
4.回溯統計(向上統計),with rollup
c.having子句
d.order by子句:根據某個欄位進行排序,也可以多欄位排序(升序asc,也是預設值,降序desc)
e.limit子句:limitoffset,length,其中位移量是從0開始,如果省略就預設為0!分頁的原理是: limit ($pageNum - 1) * $rowsPerPage,$rowsPerPage
三,聯集查詢
關鍵字:union,union選項是all和distinct,預設值是distinct
應用情境:
1,當商務邏輯出現衝突或者很難在同一個select語句中實現的時候,需要對商務邏輯進行拆分,用多個select語句單獨實現然後再聯合到一起;
2,當一個表的資料量比較大的時候(尤其是超過1000w),往往需要對錶進行“水平分割”(此時多張表的結構是一樣是,只是存放的資料不一樣),此時如果要查詢資料,往往是多個表分別查詢然後再聯合到一起
Mysql 基礎文法3