上一篇記錄了我對數(shù)據(jù)庫基礎(chǔ)學(xué)習(xí)的一些筆記吕世,因為查詢是數(shù)據(jù)庫中很重要的一部分艺演,所以單獨(dú)列出來作為一篇实牡,很多大型上線項目的數(shù)據(jù)庫讀寫比例都在10以上斋荞,由此可見查詢的重要性荞雏,查詢也是數(shù)據(jù)庫中最難的部分,難在優(yōu)化平酿。
一凤优、查詢:
1、比較運(yùn)算符:大于:select字段 from 表名where 字段>值蜈彼;
小于:select 字段 from 表名where 字段<值筑辨;
等于:select 字段 from 表名where 字段=值;
不等于:select 字段 from 表名where 字段 <>(!=)值幸逆;
邏輯運(yùn)算符:并:select 字段 from 表名where 條件1 and 條件2棍辕;
或:select 字段 from 表名where 條件1 or 條件2;
取反:select 字段 from 表名where not 條件还绘;
模糊查詢:like:select 字段 from 表名where 字段 like ‘%值’楚昭;(%表示任意多個字符,包括0個)
Select 字段 where 字段 like (值)拍顷;(表示任意一個字符)
范圍查詢:select 字段 where 字段 (not)in (范圍)抚太;
Select 字段where 字段 (not)between ..and;(左右值都包含)
空判斷:select from 表名 where 字段 is null;(null區(qū)分大小寫菇怀,不等同于‘’空字符串)
聚合函數(shù):統(tǒng)計:select count(字段)from 表名 where 條件凭舶;(滿足條件的字段總數(shù))
最大值:select max(字段)from 表名;(求字段最大值)
最小值:select min(字段) from 表名爱沟;(求字段最小值)
平均值:select avg(字段) from 表名帅霜;(求字段的平均值)
求和:select sum(字段) from 表名;(求字段之和)
分組:一般配合聚合函數(shù)使用呼伸,分組之后用having對結(jié)果集進(jìn)行操作
Select avg(年齡)from 表名 group by 性別身冀;查詢年齡并通過性別分組
2、 排序:order by 升序(從小到大):select 字段 from表名 order by 字段(esc)括享;
降序(從大到新Ц):select 字段from 表名 order by 字段 desc;
Order by后面可添加多個字段铃辖,按字段先后順序排序
3剩愧、查詢結(jié)果分頁:limit關(guān)鍵字 select 字段 from 表名 limit開始位置(從第0條開始可以省略),顯示幾條記錄娇斩;
查詢第n頁仁卷,每頁m條數(shù)據(jù),select 字段 from 表名 limit (n-1)m犬第,m锦积;
Limit 必須放在查詢語句最后使用;
4歉嗓、 鏈接查詢:內(nèi)連接:返回兩張表的交集:select 字段 from 表1 inner join 表2 on 表1.字段 = 表2.字段丰介;返回兩張表某個字段相等的數(shù)據(jù),就是重合部分
左連接:返回左表的數(shù)據(jù)加上右表字段值跟左表相等的數(shù)據(jù):
Select 字段 from 表1 left join 表2 on 表1.字段=表2.字段鉴分;
返回表1和表2與表1字段相等的結(jié)果哮幢;
右鏈接:與左鏈接相反,實際多用左連接冠场,用到的地方不多
5家浇、 子查詢:一個查詢語句嵌套另一個:select 字段 from 表名 where id=(select max(字段2)from 表名);查詢id最大的記錄某個字段的值
6碴裙、 自關(guān)聯(lián):省市區(qū)查詢表:select * from areas as p inner join areas as c on p.id = c.pid having p.name = ‘山東’;同一張表里有省市區(qū)并且有自己的id钢悲,查詢省份名字為山東并且城市id 等于省份id的城市,相當(dāng)于同一張表用自己兩個不同的字段做內(nèi)連接