oracle 有以下幾種運算符
算數運算符 連接運算符 比較(關系)運算符 邏輯運算符
1.算數運算符
算數運算符有四個, + , - ,* ,/。
SELECT sal,sal*12 from emp; #sal 和sal*12后的值。
2.連接運算符
連接運算符有 || 可以將兩個字符串連接在一起。
SELECT ename || “的工資是” || sal FROM emp; #此||就是將員工和工資連接在一起 bob (ename)“的工資是”1500(sal)
3.比較(關系)運算符
關系運算符有 > 大於,>=大於等於, <小於, <= 小於等於,!= 或 <> 不等於。
SELCET ename,sal,hiredate from emp WHERE hiredate > '01-JAN-91'; #找出1991年01月01日日期以后的記錄。
特殊的關系運算符 "BETWEEN AND" "IN" "LIKE"
BETWEEN AND 為選取一個范圍內的的記錄。例:
SELECT ename,sal FROM emp WHERE sal BETWEEN 1500 AND 3000; #sal列下1500-3000的記錄。
IN 為截取多個記錄。 例:
SELECT ename,sal,hiredate,job FROM emp WHERE job IN ('SALESMAN','CLERAK','MANAGER'); #選取 job值為‘SALESMAN’,'CLERAK','MANAGER'的記錄。
LIKE 結合通配符匹配 例:
SELECT empno,ename,sal,job FROM emp WHERE job LIKE 'SAL%'; #%可以理解為通配符,等同於*號。表示任意字符。
% 代表0個或多個字符
_ 代表單個字符 例:
SELECT ename,sal,job FROM emp WHERE job LIKE 'S_L_S%'; #第一個字符為S,第二個為L,第三個為S,的任意值。
如果匹配的值里包含有%或_,可進行轉義。例:
CREATE TABLE test_dept AS SELECT * FROM dept; #新建一張測試表。 INSERT INTO test_dept VALUES(88,'IT_RESE','BEIJING'); #插入記錄 SELECT * FROM test_dept WHERE dname LIKE 'IT\_%' escape '\'; #escape 定義轉義字符。
4.邏輯運算符
邏輯運算符有 AND (邏輯與) OR(邏輯或) NOT (邏輯非)
T為真,F為假 AND 表達式為 表達式1 AND 表達式2 表達式一、二都成立結果為T,否者為F。
F AND F = F F AND T = F T AND T =T
AND 優先級 F>NULL>T
OR 表達式1 OR 表達式2 只要表達式有一個為真,結果就為真。
F OR F =F F OR T = T T OR T = T
OR 優先級 T >NULL>F
NOT 表達式1 NOT 表達式2 兩邊條件都不成立時,結果為真
F NOT F =T F NOT T = F T NOT T = F
---------------------------------------------------------------------------------------
運算符優先級
算數運算符>連接運算符>關系運算符>IS NULL,IS NOT NULL ,LIKE ,NOT LIKE ,IN ,NOT IN 運算符>BETWEEN ,NOT BETWEEN 運算符>NOT 邏輯運算符>AND 邏輯運算符>OR 邏輯運算符。例:
SELECT ename,empno,sal,job FROM emp WHERE job='CLERK' OR job ='SALESMAN' AND sal>=1500; #AND 表達式據優先級將會先進行運算。
NULL 表示空值,不等同於空格,表達式只要包含NULL ,其結果就為NULL
