设为首页 收藏本站
查看: 1060|回复: 0

[经验分享] Oracle学习:Oracle语句基础,操作符,伪列及伪表

[复制链接]

尚未签到

发表于 2016-7-29 07:51:24 | 显示全部楼层 |阅读模式
§1.8 SQL 语句基础
下面给出SQL语句的基本介绍,更详细的描述见后面的章节。
§1.8.1 SQL语句所用符号
操作符 用途 例子
+ - 表示正数或负数,正数可省去 + -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 expertwhere 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 empWhere sal<= all ( 500,800,1200);
Not betweenA 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[Escape ‘char’] 比较两个模式是否相似,当使用like 语句时Oracle不去访问索引。 Select * from empWhere ename like ‘TH%’;
Is [not] null 测试值是否为空。 Select ename,deptno from empWhere comm. Is null or comm.=0;
Not 对结果的否定。 Select * from empWhere 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’;
UNION 用于返回(组合)两个查询中所有唯一的行。 Select ename from emp unionSelect ename from emp;
UNION ALL 用于返回(组合)两个查询中所有所有的行。
INTERSECT 用于返回两个查询中相同的行。 Select ename from emp1 intersect select ename from emp2;
MINUS 用于返回两个查询中的不同的行。

§1.8.2 简单select 查询
当我们可以用SQL*PLUS登录到SQL>下后,我们可以用DESC 显示某表的结构,也可以用select 语句简单查询表中的一些列的内容。
例:要查询EMP表中员工的姓名、工资及出生日期,则:
SQL>select ename, sal, hiredate from emp;

§1.9 伪列及伪表
Oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象(如建表)时由我们完成的,而是在我们建立对象时由自动Oracle完成的。Oracle目前有以下的伪列:
l CURRVAL and NEXTVAL 使用序列号的保留字
l LEVEL 查询数据所对应的级
l ROWID 记录的唯一标识
l 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

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250829-1-1.html 上篇帖子: Oracle数据导入导出imp/exp就相当于oracle数据还原与备份 下篇帖子: 【转】Oracle调优(入门及提高篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表