標籤:
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
oracle 運算式運算子優先順序