-
插入數據
多數據插入
基本語法:insert into 表名[(字段列表)] values(值列表) , (值列表), ...;
主鍵衝突
①主鍵衝突更新
基本語法:insert into 表名[(字段列表)] values(值列表) on duplicate key update 字段 = 新值;
②主鍵衝突替換
基本語法:replace into 表名[(字段列表)] values(值列表);
蠕蟲複製(複製數據)
基本語法:insert into 表名[(字段列表)] select */字段列表 from 表名;
-
更新數據
限制更新數量
基本語法:update 表名 set 字段名 = 新值 [where 判斷條件] limit 數量;
-
刪除操作
限制刪除數量
基本語法:delete from 表名 [where 判斷條件] limit 數量;
重置自動增長(清空數據)
truncate 表名;
-
查詢操作
select select選項 字段列表 from 數據源 where條件 group by 分組 having條件 order by 排序 limit 限制;
select選項:系統如何處理查詢得到的結果
All:默認值,保存所有記錄。
Distinct:去重,去除重複記錄(所有字段都相同),保留一條。
別名
基本語法:字段名/表 [as] 別名;
From 數據源
爲前面的查詢提供數據,數據源只要是一個符合二維表結構的數據即可。
單表數據:from 表名;
多表數據:from 表1,表2,表3,...; //兩張表的記錄數相乘,字段數拼接(笛卡兒積)
動態數據
基本語法:from (select 字段列表 from 表名) as 別名; //子查詢
Where子句
用來從數據表獲取數據的時候進行條件篩選。
Group By子句
根據指定的字段,將數據進行分組,目的是爲了統計。數據按指定字段分組後,只會保存每組的第一條記錄。
分組統計
基本語法:group by 字段名;
統計函數(聚合函數)
count(); //統計每組中的數量
avg(); //求平均值
sum(); //求和
max(); //最大值
min(); //最小值
group_concat(字段); //將指定字段拼接起來
多分組
將數據按照某個字段分組之後,對已經分組的數據進行再次分組
基本語法:group by 字段1,字段2,字段3,...;先按字段1進行排序,再按字段2進行排序,以此類推。
分組排序
基本語法:group by 字段 [asc/desc],字段 [asc/desc],...;
回溯統計
基本語法:group by 字段 [asc/desc] with rollup;
Having子句
本質和where一樣,用來篩選數據,where不能使用聚合函數,但是having可以。
Order by子句
基本語法 order by 字段1 [asc/desc],字段2 [asc/desc],字段3 [asc/desc],...;
Limit子句
限制查詢數目,可用於分頁操作。
基本語法:limit offset,length; //offset偏移量,length獲取的記錄條數
查詢中的運算符
算法運算符:+、-、*、/、% //用於select字段中
比較運算符:>、>=、<、<=、=(<=>)、<>、between 條件1 and 條件2(條件1<條件2)
邏輯運算符:and(邏輯與)、or(邏輯或)、not(邏輯非)
In運算符:基本語法 in(結果1,結果2,結果3,結果4,...) //只要條件在結果集中就返回1
Is運算符:基本語法 is null/is not null
Like運算符:基本語法 like '匹配模式';
兩種佔位符:
_:匹配對應的單個字符
%:匹配對應的多個字符