专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > DBA实战 > DBA课程 > DBA基础课程:Oracle基础查询语句和数据排序

DBA基础课程:Oracle基础查询语句和数据排序

文章来源: 更新时间:2016/6/24 11:33:39

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

DBA基础课程:Oracle基础查询语句和数据排序

本文所以练习都是基于Oracle自带提供的一个数据库进行的。数据库中包含员工表emp。部门信息表dept。员工工资工总表

下面是三个表的表结构:

一:基本查询语句

1.最简单的查询所有列语句

Select * from emp;

2.查询指定列表的查询语句

Select empno ,ename,sal from emp;

注意:Oracle默认的字符型和日期型数据是左对齐。而数字数据是右对齐

3.带有简单算术运算符的简单查询:

Select empno ,ename,sal +500 from emp;

注意:Oracle中简单运算符的优先级:

1)先乘除,后加减

2)同一优先级次序是从左到右

3)如使用了括号。先运算括号内

4.在sql语句中使用列的别名

Select empno as "num" ,ename name ,(sal +500)*12 "annual salary" from emp;

从上面sql语句我们可以看出。只需在列名和别名之间放上 as或者空格就可以把列名改为别名。字符串别名需要加上双引号。

5.连接运算符

Select ename || "每年的工资为" || (sal +500)*12 "annual salary" from emp;

Oracle中的连接符是由两个竖线(||),用于把一个或多个列或字符串连接在一起。

6.去重运算符distinct

Select deptno from emp;

Select distinct deptno from emp;

从上面可以看出。查询员工表中所有员工的部门号。在第一个查询语句中。没有用distinct去重。第二个用到distinct去重之后。所有部门号相同的数据都去掉了

二.限制性查询和数据排序

1.where关键字。其后跟限制性条件。条件由列名、字符串和一些比较预算附等组成。

条件格式:表达式 opera 表达式

这里的opera可为:>,>=,<,<=,=,<>(或),!=

除了这些Oracle还提供了between and、in和like限制条件

例句:Select * from emp where sal>=2000;

2.使用between and 比较

Select * from emp where sal between 2000 and 3000;

获得工作在2000和3000之间的所有数据。

值得注意

1.between and 也可以用于时间的比较。此时时间要用单引号。

2.如果想查询不在某一区间的数据。直接在between前面加not就可以

3.使用in比较符

查找工作为saleman、clerk和manager的人

Select * from emp where job in

('SALESMAN','CLERK','MANAGER');

附:如果想查找数据不在所给的元素中。可以直接在in前面加not

4.使用like比较符

Select * from emp where job like 'SA%';

上诉例子指的就是查询工作名以SA开头的所有员工信息。

“%”表示0个或多个字符

“-" 表示一个且只能是一个字符

注意:这里有一点要注意的是。Where后面的 查询条件中的值中字符串是区分大小写的。笔者在刚才做实验的时候。把SA写成sa。一直不出结果。所以请大家注意这一点。

5.转移字符:”\“

6.Order by子句

Select * from emp where job like 'SA%' order by sal;

由上面我们可以发现。我们查询到的结果按工资从小到大排好了顺序。Oracle查询数据中如果用到order by进行排序的话。默认的排序为(ASC)升序。如果想要降序的话用DESC

注意:

1.如果查询中不使用order by。结果次序不确定。即两次查询。次序可能不一样

2.如果使用了order by 子句。其一定是sql语句中的最后一个子句

7.order by 子句中使用别名或表达式。

Select ename ,(500+sal)*12 annualsal from emp where job like 'SA%' order by annualsal;

Oracle进行排序时可以用别名作为排序列。也可以用表达式、

注:

1.Oracle也可以用列号作为排序的规则。但是这种情况很少用。因为用列号排序不太明确

2.Oracle中排序也可以用多列作为排序标准,中间用逗号隔开。

Select ename ,(500+sal)*12 annualsal from emp where job like 'SA%' order by annualsal , ename;

本文地址:http://www.cuug.com.cn/dba/kecheng/12298884982.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1