操作符 | 用途 | 例子 |
+ - | 表示正数或负数,正数可省去 + | -1234.56 |
+ | 将两个数或表达式进行相加 | A=c+b |
- | 将两个数或表达式进行相减 | 34-12 |
* | 将两个数或表达式进行相乘 | 12*34 |
/ | 除以一个数或表达式 | 18*11 |
NULL | 空值判断 | Where name is null; |
|| | 字符串连接 | ‘101-’||tel_num |
= | 等于测试 | Select * from emp where name=’赵元杰’; |
!= 或<>或^= | 不等于测试 | Select * from emp where name !=’赵元杰’; |
< | 小于测试 | Select * from emp where sal < 5000; |
> | 大于测试 | Select * from emp where sal > 5000; |
<= | 小于等于测试 | Select * from emp where sal <= 5000; |
>= | 大于等于测试 | Select * from emp where sal >= 5000; |
Not in | 测试某值是否在一个指定的结果集中 | Select name,addr from expert where local not in(‘北京’,’上海’); |
ANY | 将一个值与一组值进行比较,返回满足条件的结果。必须跟!=,<,>,<=,>= | select ename,sal from emp where sal<= any(select sal from emp where deptno=10) |
SOME | 同ANY,必须跟!=,<,>,<=,>= | |
ALL | 将一个值与一组值比较,返回满足条件的所有列值。必须跟!=,<,>,<=,>= | Select name,sal from emp w here sal<= all ( 500,800,1200); |
Not between A and B | 判断某个值是否界于两者之间。 | Select name,sal from emp Where sal between 500 and 1200; |
[not]exists | 判断某个列是否存在于一组值中。 | select dname,deptno from dept where exists (select * from emp where dept.deptno=emp.deptno) |
A[not]like b | 比较两个模式是否相似,当使用like 语句时Oracle不去访问索引。 | Select * from emp Where ename like ‘TH%’; |
Is [not] null | 测试值是否为空。 | Select ename,deptno from emp Where comm. Is null or comm.=0; |
Not | 对结果的否定。 | Select * from emp Where sal not(sal<1000); 等价于select ename,sal from emp where sal>=1000; |
AND | 用于判断两个条件十分都满足。 | Select * from emp where Ename=’SIMTH’ and sal>=1000; |
OR | 用于判断两个条件中是否有一个满足。 | Select * from emp where Ename=’SIMTH’ or ename=’SCOTT’; |
用于返回(组合)两个查询中所有唯一的行。 | Select ename from emp union Select ename from emp; | |
UNION ALL | 用于返回(组合)两个查询中所有所有的行。 | |
INTERSECT | 用于返回两个查询中相同的行。 | Select ename from emp1 intersect select ename from emp2; |
MINUS | 用于返回两个查询中的不同的行。 |
Oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象(如建表)时由我们完成的,而是在我们建立对象时由自动Oracle完成的。Oracle目前有以下的伪列:
CURRVAL and NEXTVAL 使用序列号的保留字
LEVEL 查询数据所对应的级
ROWID 记录的唯一标识
ROWNUM 限制查询结果集的数量
Oracle 还提供了一个DUAL 的伪表,该目的表主要是保证在使用SELECT 语句中语句的完整性而提供的,如:我们要查询当前的系统日期及时间,而系统的日期和时间并是放在一个指定的表里。所以在 from 语句后就没有表名给出。为了使用 from 后有个表名,我们就用DUAL代替。如:
例1:查询Oracle系统日期及时间:
SQL> select to_char( sysdate,'yyyy.mm.dd hh24:mi:ss') from DUAL;
TO_CHAR(SYSDATE,'YY
-------------------
2001.06.02 07:28:09
例2:计算一下 5000+5000*0.1 的结果是多少,则:
SQL> select 5000+5000*0.1 from DUAL;
5000+5000*0.1
-------------------
5500
函 数 | 说 明 |
ASCII | 返回对应字符的十进制值 |
CHR | 给出十进制返回字符 |
CONCAT | 拼接两个字符串,与 || 相同 |
INITCAT | 将字符串的第一个字母变为大写 |
INSTR | 找出某个字符串的位置 |
INSTRB | 找出某个字符串的位置和字节数 |
LENGTH | 以字符给出字符串的长度 |
LENGTHB | 以字节给出字符串的长度 |
LOWER | 将字符串转换成小写 |
LPAD | 使用指定的字符在字符的左边填充 |
LTRIM | 在左边裁剪掉指定的字符 |
RPAD | 使用指定的字符在字符的右边填充 |
RTRIM | 在右边裁剪掉指定的字符 |
REPLACE | 执行字符串搜索和替换 |
SUBSTR | 取字符串的子串 |
SUBSTRB | 取字符串的子串(以字节) |
SOUNDEX | 返回一个同音字符串 |
TRANSLATE | 执行字符串搜索和替换 |
TRIM | 裁剪掉前面或后面的字符串 |
UPPER | 将字符串变为大写 |
NVL | 以一个值来替换空值 |
LPAD(string,Length[,'set'])
TRIM可以使你对给定的字符串进行裁剪(前面,后面或前后)。
如果指定 LEADING, Oracle 从trim_char 中裁剪掉前面的字符;
如果指定TRAILING, Oracle 从trim_char 中裁剪掉尾面的字符;
如果指定两个都指定或一个都没有给出,Oracle从trim_char 中裁剪掉前面及尾面的字符;
如果不指定 trim_character, 缺省为空格符;
如果只指定trim_source, Oracle Oracle从trim_char 中裁剪掉前面及尾面的字符。
例子:将下面字符串中的前面和后面的‘0‘字符都去掉:
SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;
TRIM example
--------------------------------
函数 | 说明 |
Value1 + value2 | 加 |
Value1 - value2 | 减 |
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/64991/viewspace-1006126/ ,如需转载,请注明出处,否则将追究法律责任。
请登录后发表评论
登录
全部评论
|