1. 程式人生 > >database中的函式及查詢方法

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(計算出查詢結果中該欄位的最大值

) 如:SELECT MAX(sal) from emp

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條記錄)

資料庫資料如下: