1.常用函數:
可以用在select后面,也可以用在where后面。
lower把字段變小寫,upper把字段變大寫,如: SELECT?userId,LOWER(username)?as?變小寫,UPPER(password?)?as?變大寫?from?`user`? substr(字段或字符串,start,length):把字段轉換成大寫?start從1開始?截取的長度,如: SELECT?userId,SUBSTR(username,1,2)?from?`user`
2.分組函數:計算的結果是一個查詢的,不是某一行的。*PS:as(可有可無)是對前一個字段進行重命名(臨時的,只在此次有效,不改變表)*
select?AVG(sal)?as?平均工資水平?from?emp select?empno,ename,AVG(sal)?as?平均工資水平?from?emp select?max(sal)?as?最大值?from?emp select?min(sal)?as?最小值?from?emp select?sum(sal)?as?字段和?from?emp select?count(comm)?as?獎金字段個數,count(sal)?as?工資字段個數?from?emp
3.對查詢結果分組計算:
group?by:對不同的字段值進行分組。 select?deptno?from?emp?GROUP?BY?deptno /*根據deptnot字段對emp表進行分組并顯示各組的deptno字段*/ select?deptno,avg(sal)?as?各組的平均工資?from?emp?GROUP?BY?deptno??/*根據deptnot字段對emp表進行分組并顯示各組deptno字段和各組的平均工資*/ select?deptno,max(sal)?as?各組的最高工資?from?emp?GROUP?BY?deptno??/*根據deptnot字段對emp表進行分組并顯示各組deptno字段和各組的最高工資*/ select?deptno,min(sal)?as?各組的最低工資?from?emp?GROUP?BY?deptno??/*根據deptnot字段對emp表進行分組并顯示各組deptno字段和各組的最低工資*/ select?deptno,count(sal)?as?各組的有多少人有工資?from?emp?GROUP?BY?deptno??/*根據deptnot字段對emp表進行分組并顯示各組deptno字段和各組的有多少人有工資*/ select?deptno,sum(sal)?as?各組的工資總額?from?emp?GROUP?BY?deptno??/*根據deptnot字段對emp表進行分組并顯示各組deptno字段和各組的工資總額*/ 對group?by分組的過濾,不用where,而用hiving。如: select?JOB,avg(sal)?as?平均工資?from?emp?GROUP?BY?JOB?HAVING?平均工資>2000
4.子查詢:子查詢查出來的結果是一張臨時表。如:
SELECT?*?from?(SELECT?*?from?emp)?as?e
5.連表查詢(多表查詢):
92語法:SELECT?b1.col1,b2.col2?from?b?b1,a?b2?where?b.c=a.c 99語法:inner?join查詢兩表都有數據的結果:?SELECT?b1.col1,b2.col2?from?emp?e?INNER?join?dept?d?on?e.deptno=d.deptno left?join查詢左邊表有數據的結果:SELECT?e.*,d.deptno,d.loc?from?emp?e?left?join?dept?d?on?e.deptno=d.deptno right?join查詢右邊表有數據的結果:SELECT?e.*,d.deptno,d.loc?from?emp?e?RIGHT?join?dept?d?on?e.deptno=d.deptno
6.分頁查詢:limit(start,查詢的條數) start從0開始。如:
SELECT?*?from?表名?limit?0,5?/*查詢從第一條數據開始的五條數據*/
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END