標籤:
1.增
insert into 表名 [(欄位)] values (值);
2.刪
刪除資料:delete from 表名 where exp;
清空資料:truncate 表名;
3.改
update 表名 set 欄位=新值,... where exp;
4.查
①where精確查詢
select 欄位1.. from 表名 where id = n;
查詢欄位可為多個,使用*則表示所有欄位
id = n 為運算式,運算式為真,則取出資料,為假,則不取
例:商城中商品是否為新品/精品/熱賣,就在於欄位值為0/1
而在前台查詢時,只需要select語句後加where is_new = 1;
運算式中還可使用的符號有:
!= <> 不等於< 小於<= 小於等於>= 大於等於> 大於
in 在某集合內between 在某範圍內
not ! 非or || 或and && 與
優先順序為:not->and->or
②where模糊查詢
select 欄位1.. from 表名 where 欄位名 like ‘字串%‘;
取出欄位名以‘字串‘開頭的資料
%為萬用字元,匹配任一字元
_用於匹配任意單個字元
③group與統計函數
select max(欄位) from 表名 group by 分組欄位; //尋找組中最大資料
其他統計函數:
min 最小sum 求和avg 平均count 總行數
④having篩選
select 欄位1,(欄位2-欄位3) as 命名欄位 from 表名 having exp;
此時的exp運算式前就不能使用where了,where尋找的是資料庫中的未經處理資料
而未經處理資料中,是沒有‘命名欄位的‘,此時是需要在被提取出的未經處理資料中
再進行篩選,需要使用having
⑤order by 排序
排序是在取出結果集後,再進行的
select 欄位1.. from 表名 where exp order by 排序欄位 desc;
desc => 由高到低 降序
asc => 由低到高 升序
⑥limit
用於限制取出的資料數量
... limit 0,3;
0 為offset 即從位移多少條開始取
3 為N 即取出的條目數
⑦.where 子查詢
select 欄位1.. from 表名 where id = (select max(欄位) from 表名);
⑧.from 子查詢
select * from (select 欄位 from 表名 order by 排序欄位 asc)
as 命名欄位 group by 分組欄位;
⑨.串連查詢
select 欄位1,欄位2 from 表1,表2 where 表1.欄位 = 表2.欄位;
上述為兩表全串連查詢(兩表相乘,資訊量過大,效率太低)
左串連:
假設A表在左側且不動,B表在右側進行豎向滑動
A表與B表通過一個關係來篩選B表的行
例:A表 left join B表 on exp;
當exp為真時,則將B表中的這一行資料取出
@zhnoah
出處:http://www.cnblogs.com/zhnoah/
本文著作權歸本人和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連
接,否則保留追究法律責任的權利。
MySQL學習筆記——4.CURD