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 /*查询从第一条数据开始的五条数据*/
以上是SQL函數及查詢 方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!