#字段控制查詢
? ?去除重復(fù)記錄
? ? ? ?去除重復(fù)記錄(兩行或兩行以上記錄中系列的上的數(shù)據(jù)都相同),例如emp表中sal字段就 ? ? ? ? ?存在相同的記錄起胰。當(dāng)只查詢emp表的sal字段時(shí),那么會(huì)出現(xiàn)重復(fù)記錄巫延,那么想去除重復(fù)記 ? ? ? ? ?錄效五,需要使用DISTINCT:
? ? ? select distinct 字段的名字 from 表的名稱地消;
? ?兩列進(jìn)行運(yùn)算(為數(shù)值類型)
? ? ?select ? ?列名1+列名2 ? from ?表名;
? ? ?注意:如果字段中存在null 相加的結(jié)果還是null ? 所以用到了把null轉(zhuǎn)化為0的函數(shù) ifnull
? ? ?select ? ?列名1+ifnull(列名2,0) ?from 表名;
? ?給計(jì)算后的列名添加別名
? ? select 列名1+ifnull(列名2,0) ? 別名 ? from 表名;
#排序 order by
? ?語法 : order by ?列名 ?asc(默認(rèn)的 升序) ?或者 desc (降序)
#聚合函數(shù) ?sum avg max min count?
?count ?語法
? ? select count(*或者列名) ? as 別名 from ? 表名 where 條件語句;?
? ? 注意畏妖,count()函數(shù)中給出的是列犯建,那么只統(tǒng)計(jì)列非NULL的行數(shù)。
sum 和avg 語法
? ?select sum或者avg(列名) from 表名瓜客;
max和min 語法
? select max或者min(列名) from 表名;
#分組查詢 group by?
注:凡和聚合函數(shù)同時(shí)出現(xiàn)的列名适瓦,一定要寫在group by之后
having 子句
? ? ?查詢工資總和大于9000的部門編號(hào)以及工資和:
? ? ?SELECT deptno, SUM(sal) ?FROM emp ? ?GROUP BY deptno ? ? HAVING SUM(sal) > 9000;
注:having與where的區(qū)別:
1.having是在分組后對(duì)數(shù)據(jù)進(jìn)行過濾.
where是在分組前對(duì)數(shù)據(jù)進(jìn)行過濾
2.having后面可以使用聚合函數(shù)(統(tǒng)計(jì)函數(shù))
where后面不可以使用聚合函數(shù)。
WHERE是對(duì)分組前記錄的條件谱仪,如果某行記錄沒有滿足WHERE子句的條件玻熙,那么這行記錄不會(huì)參加分組;而HAVING是對(duì)分組后數(shù)據(jù)的約束疯攒。
#限制查詢 limit?
? 語法:
? ? select * from 表名 ? limit ? 起始行嗦随,總行數(shù);?