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