數據操作(二)

  • 插入數據 

多數據插入
基本語法: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 '匹配模式';
兩種佔位符:
_:匹配對應的單個字符
%:匹配對應的多個字符 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章