一、算術操做符函數
實例:學習
檢索出課程號是’02’的成績+10分後的結果 spa
SELECT sid,cid, score+10 as lastscore Where cid = ‘02’;
二、比較操做符code
實例:blog
①檢索1991年前出生的學生信息ci
SELECT * FROM t_student WHERE sbirthday < '01-1月-91';
②檢索1990年出生的學生信息字符串
SELECT * FROM t_student WHERE sbirthday between ‘01-1月-90‘ and ’31-12月-90’;
③檢索班級是1班或2班的學生信息ast
SELECT * FROM t_student WHERE sclass in (1,2);
3、邏輯操做符class
實例:date
查詢 二班的 90後的學生信息
select * from student where sbirthday >='01-1月-90' and sclass = 2;
4、集合操做符
集合操做符:
將兩個查詢的結果組合成一個結果
一、UNION 操做符:返回兩個查詢的不重複的全部行。(相似or 聯集)
注意:UNION的前提是兩個表的查詢結果條數要一致
二、INTERSECT 操做符:只返回兩個查詢的公共行。(相似於and 交集)
三、MINUS 操做符返回從第一個查詢結果中排除第二個查詢中出現的行。(相似於差集)
實例:
①統計Oracle(01) 和 Jsp(07)都爲良好(70分以上)的同窗學號
select sid from t_score where score>=70 and cid = '01' INTERSECT select sid from t_score where score>=70 and cid = '07';
②統計學習Oracle(01) 或 Jsp(07)的同窗學號
select sid from t_score where score>=70 and cid = '01' UNION select sid from t_score where score>=70 and cid = '07';
③統計Oracle(01)良好但Jsp(07)未達到良好的同窗學號
select sid from t_score where score>=70 and cid = '01' MINUS select sid from t_score where score>=70 and cid = '07'
5、鏈接操做符
SELECT ('學號爲' || SID|| '的同窗姓名是' || SNAME) as SINFO FROM t_student;
操做符的優先級
SQL 操做符的優先級從高到低的順序是:
Oracle 提供一系列用於執行特定操做的函數
SQL 函數帶有一個或多個參數並返回一個值
如下是SQL函數的分類:
①單行函數②分組函數③分析函數
單行函數對於從表中查詢的每一行只返回一個值
能夠出如今 SELECT子句中和 WHERE 子句中
單行函數能夠大體劃分爲:
一、字符函數:
字符函數接受字符輸入並返回字符或數值
如下是一些其它的字符函數
SELECT LENGTH(‘student') FROM dual;
SELECT sname , DECODE(ssex,’m’,‘男’,‘f‘,’女’) as ssex FROM t_student;
二、數字函數:
數字函數接受數字輸入並返回數值結果
日期函數對日期值進行運算,並生成日期數據類型或數值類型的結果
日期函數包括:
三、轉換函數:
轉換函數將值從一種數據類型轉換爲另外一種數據類型
經常使用的轉換函數有:
實例:
Select TO_CHAR(0.123,‘$0.9999') FROM DUAL;
SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS')FROM dual;
SELECT TO_DATE(‘2005-12-06’ , ‘yyyy-mm-dd’)FROM dual;
SELECT TO_NUMBER('100') FROM dual;
四、其它函數
如下是幾個用來轉換空值的函數 (scott.emp)
查詢員工工資和(工資sal+獎金comm)
Select empno ,sal +comm from emp;
Select empno ,sal + nvl(comm,0) from emp;
SELECT empno,sal + nvl2(comm,comm,0) from emp;
SELECT NULLIF(100,200) FROM DUAL;
五、分組函數
分組函數基於一組行來返回結果
爲每一組行返回一個值
六、分析函數
分析函數根據一組行來計算聚合值
用於計算完成彙集的累計排名、移動平均數等
分析函數爲每組記錄返回多個行
ROW_NUMBER 返回連續的排位,不論值是否相等
select ename,job,deptno,sal,row_number() over(order by sal desc) as sal_rank from scott.emp;
RANK 具備相等值的行排位相同,序數隨後跳躍
DENSE_RANK 具備相等值的行排位相同,序號是連續的