database中的函式及查詢方法
常用函式:
1、lower(將所選欄位結果轉換為小寫) 如:SELECT userId,LOWER(username) from user
2、upper(將所選欄位結果轉換為大寫) 如:SELECT userId,UPPER(username) from user
3、substr(擷取欄位) 如:SELECT userId,SUBSTR(username,1,2) from user ,1:開始的位置 2、擷取的個數
分組函式:
1、avg(計算出查詢結果中該欄位的平均值,不可以離開組單獨使用) 如:SELECT AVG(sal) from emp
2、max(計算出查詢結果中該欄位的最大值
3、min(計算出查詢結果中該欄位的最小值) 如:SELECT MIN(sal) from emp
查詢結果分組計算
group by 如:
SELECT deptno from emp GROUP BY deptno //查詢有哪些部門
SELECT deptno,AVG(sal) from emp GROUP BY deptno //查詢每個部門的平均工資
SELECT deptno,MIN(sal) from emp GROUP BY deptno //查詢每個部門的最低工資
SELECT ENAME,deptno from emp where sal in(select MIN(sal) from emp GROUP BY deptno)
SELECT deptno,AVG(sal) from emp GROUP BY deptno HAVING AVG(sal) > 2000 //查詢平均工資大於2000的有哪些部門
子查詢(後面查詢的結果作為前面查詢的條件):
*子查詢的結果是一張表,即使只有一條資料,是臨時的一張表
SELECT * from emp where sal>(SELECT avg(sal) FROM emp) ORDER BY sal
SELECT * FROM(SELECT * from emp) e (e:別名)
SELECT * from emp where empno in (SELECT empno FROM emp WHERE empno=7369 or empno=7499 or empno=7521)
連表查詢:
SELECT e.*,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(92年語法)
SELECT e.*,d.deptno,d.loc from emp e
INNER JOIN dept d on e.deptno=d.deptno(99年語法)(inner join:兩邊表都有即顯示)
SELECT e.*,d.deptno,d.loc from emp e
RIGHT JOIN dept d on e.deptno=d.deptno(right join:只要右邊表有結果便顯示)
分頁limit:
SELECT * FROM emp LIMIT 0,5(從0開始,查詢5條記錄)
資料庫資料如下: